Skip to content

chore(build): isolate Checkov 3.3.16 upgrade - #797

Draft
Marcel Bindseil (bindsi) wants to merge 1 commit into
mainfrom
chore/checkov-3.3.16-split
Draft

Marcel Bindseil (bindsi) wants to merge 1 commit into
mainfrom
chore/checkov-3.3.16-split

Conversation

@bindsi

Copy link
Copy Markdown
Member

Pull Request

IMPORTANT: This is a draft, not a merge-ready dependency update. The newly introduced ecdsa dependency is affected by GHSA-wj6h-64fc-37mp / CVE-2024-23342. No security exception has been added.

Description

Isolated the Checkov upgrade from #794 so the other four Python dependency updates can proceed independently. Updated Checkov from locked version 3.2.531 to 3.3.16, bc-detect-secrets from 1.5.47 to 1.5.50, and added Checkov's ecdsa 0.19.2 dependency.

Related Issue

Relates to #794. No separate issue is linked.

Type of Change

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • Blueprint modification or addition
  • Component modification or addition
  • Documentation update
  • CI/CD pipeline change
  • Other (please describe): isolated security-scanner dependency update

Implementation Details

Changed only root requirements.in and requirements.txt. Retained the existing dependency hashes from the original reviewed Checkov update. Left GitPython, python-hcl2, NumPy, dotenv and all ROS2 requirements unchanged relative to main.

The inspected Checkov consumer performs public-key signature verification, which the advisory explicitly excludes. Exploitable signing behavior has not been demonstrated. The dependency nevertheless fails the repository's security policy; this draft tracks the update without suppressing that policy.

Testing Performed

  • Terraform plan/apply
  • Blueprint deployment test
  • Unit tests
  • Integration tests
  • Bug fix includes regression test (see Test Policy)
  • Manual validation
  • Other: Linux x86_64 / Python 3.12 constrained dependency resolution succeeded for 97 packages; git diff --check passed

The original grouped update's package hashes, hash-enforced installation, dependency consistency and Checkov startup were reviewed previously. The independent branch was checked for resolution and exact scope; its security gate is expected to reject ecdsa. No deployment or cloud integration test was run.

Validation Steps

  1. Confirm the diff contains only Checkov and its two affected transitive dependencies.
  2. Resolve the ecdsa policy blocker through an upstream dependency change. Keep this draft blocked until the advisory is remediated; no exception is proposed.
  3. Require passing Dependency Scan, Security Scan and PR Validation Gate on the final head before marking ready or merging.

Checklist

  • I have updated the documentation accordingly
  • I have added tests to cover my changes
  • All new and existing tests passed
  • I have run terraform fmt on all Terraform code
  • I have run terraform validate on all Terraform code
  • I have run az bicep format on all Bicep code
  • I have run az bicep build to validate all Bicep code
  • I have checked for any sensitive data/tokens that should not be committed
  • Lint checks pass (run applicable linters for changed file types)

Security Review

  • No credentials, secrets, or tokens are hardcoded or logged
  • RBAC and identity changes follow least-privilege principles
  • No new network exposure or public endpoints introduced without justification
  • Dependency additions or updates have been reviewed for known vulnerabilities
  • Container image changes use pinned digests or SHA references

Known blocking advisory: GHSA-wj6h-64fc-37mp. The checked dependency-review item means the advisory was examined, not that it was accepted or remediated.

Additional Notes

Keep this PR in draft. #794 retains GitPython 3.1.61, python-hcl2 8.1.3, NumPy 2.5.2 and python-dotenv 1.2.3 without this Checkov upgrade. No merge is requested for the Checkov-only draft.

Screenshots (if applicable)

Not applicable.

@github-actions

github-actions Bot commented Sep 9, 2026

Copy link
Copy Markdown

Dependency Review

The following issues were found:
  • ❌ 1 vulnerable package(s)
  • ✅ 0 package(s) with incompatible licenses
  • ✅ 0 package(s) with invalid SPDX license definitions
  • ✅ 0 package(s) with unknown licenses.
See the Details below.

Vulnerabilities

requirements.txt

NameVersionVulnerabilitySeverity
ecdsa0.19.2Minerva timing attack on P-256 in python-ecdsahigh
Only included vulnerabilities with severity high or higher.

OpenSSF Scorecard

PackageVersionScoreDetails
pip/ecdsa 0.19.2 🟢 5
Details
CheckScoreReason
Maintained⚠️ 00 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0
Security-Policy🟢 10security policy file detected
Binary-Artifacts🟢 10no binaries found in the repo
Dangerous-Workflow🟢 10no dangerous workflow patterns detected
Code-Review🟢 3Found 5/15 approved changesets -- score normalized to 3
Packaging⚠️ -1packaging workflow not detected
Token-Permissions⚠️ 0detected GitHub workflow tokens with excessive permissions
Pinned-Dependencies⚠️ 0dependency not pinned by hash detected -- score normalized to 0
CII-Best-Practices⚠️ 0no effort to earn an OpenSSF best practices badge detected
Fuzzing🟢 10project is fuzzed
License🟢 9license file detected
Signed-Releases⚠️ -1no releases found
Branch-Protection⚠️ 0branch protection not enabled on development/release branches
SAST🟢 8SAST tool detected but not run on all commits
pip/bc-detect-secrets 1.5.50 UnknownUnknown
pip/checkov 3.3.16 🟢 7
Details
CheckScoreReason
Maintained🟢 1030 commit(s) out of 30 and 7 issue activity out of 30 found in the last 90 days -- score normalized to 10
Code-Review🟢 311 out of last 30 changesets reviewed before merge -- score normalized to 3
Vulnerabilities🟢 10no vulnerabilities detected
CII-Best-Practices⚠️ 2badge detected: in_progress
Signed-Releases⚠️ -1no releases found
Branch-Protection🟢 6branch protection is not maximal on development and all release branches
Token-Permissions⚠️ 0non read-only tokens detected in GitHub workflows
Security-Policy🟢 10security policy file detected
License🟢 10license file detected
Dependency-Update-Tool🟢 10update tool detected
Dangerous-Workflow🟢 10no dangerous workflow patterns detected
Fuzzing⚠️ 0project is not fuzzed
SAST🟢 10SAST tool is run on all commits
Binary-Artifacts🟢 10no binaries found in the repo
Packaging🟢 10publishing workflow detected
Pinned-Dependencies⚠️ 0dependency not pinned by hash detected -- score normalized to 0

Scanned Files

  • requirements.txt

Marcel Bindseil (bindsi) added a commit that referenced this pull request Sep 9, 2026
# Pull Request

## Description

Updated GitPython to 3.1.61, python-hcl2 to 8.1.3, NumPy to 2.5.2 and
python-dotenv to 1.2.3. Split the Checkov upgrade into draft #797,
retaining Checkov 3.2.531 here and removing its newly introduced ecdsa
dependency.

Added commit b13917f to fix the
remaining high-severity findings blocking Security Scan. Updated all
locked js-yaml v4 copies to 4.3.2 and the docs dependencies to svgo
3.3.5, qs 6.16.0, colord 2.10.0 and joi 17.13.7. No scan thresholds,
suppressions, permissions, or workflow failure handling were changed.

## Related Issue

Relates to draft #797, which keeps the Checkov-only update blocked
pending advisory remediation.

## Type of Change

- [x] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing
functionality to not work as expected)
- [ ] Blueprint modification or addition
- [ ] Component modification or addition
- [ ] Documentation update
- [ ] CI/CD pipeline change
- [x] Other (please describe): Python and npm dependency security
maintenance

## Implementation Details

The Checkov removal was published as additive commit
bfa7d59. The CI fix changes four npm
lockfiles (root tools, docs, markdown link checker, chat application)
and the docs override floors. Lockfile package sets and root metadata
were preserved; only the five identified npm packages changed.

Checkov 3.2.531 requires asteval==1.0.6. Its two medium-severity
findings remain visible, below the unchanged high-severity Grype failure
threshold. Upgrading asteval independently would violate Checkov's
declared requirements, so this PR does not force an incompatible
dependency or add an exception.

## Testing Performed

- [ ] Terraform plan/apply
- [ ] Blueprint deployment test
- [x] Unit tests
- [ ] Integration tests
- [ ] Bug fix includes regression test (see [Test
Policy](docs/contributing/testing-validation.md))
- [x] Manual validation
- [x] Other: dependency resolution, clean installs, builds and
vulnerability scan

Validation on the CI-fix tree:

- Grype 0.116.0 passed using the existing .grype.yaml high-severity
policy; only the two medium asteval findings remained. Local generated
node_modules/.git/target directories were excluded to represent a clean
CI checkout. Hosted CI uses its pinned scanner version and remains
authoritative.
- Docs: clean npm ci, 3 suites / 15 tests passed, TypeScript typecheck
passed, production build passed. Existing broken-link warnings remain.
- Chat application: clean npm ci, 6 suites / 38 tests passed,
server/client production build passed.
- Root and markdown link checker: clean npm ci and local
YAML/XML/link-checker smoke checks passed.
- Structured lockfile assertions confirmed patched dependency versions,
unchanged package sets/root metadata and no local filesystem
dependencies. git diff --check and editor diagnostics passed.
- Earlier Python validation: root Linux x86_64 / Python 3.12 resolution
and hash-enforced sync passed for 96 packages, uv pip check passed,
Checkov startup returned 3.2.531, and ecdsa was removed. Unchanged ROS2
split files previously passed hash-enforced installation and
NumPy/dotenv smoke checks.

Fresh hosted CI was triggered by the latest push; no all-green hosted
result is claimed yet. No cloud deployment or full ROS2 integration
build was run.

## Validation Steps

1. Verify Checkov remains at 3.2.531 and ecdsa is absent.
2. Verify all js-yaml v4 copies are at least 4.3.2 and docs dependencies
meet the patched override floors.
3. Require passing Dependency Scan, Security Scan and PR Validation Gate
on the final up-to-date head before merging. The user will perform the
merge.

## Checklist

- [ ] I have updated the documentation accordingly
- [ ] I have added tests to cover my changes
- [ ] All new and existing tests passed
- [ ] I have run `terraform fmt` on all Terraform code
- [ ] I have run `terraform validate` on all Terraform code
- [ ] I have run `az bicep format` on all Bicep code
- [ ] I have run `az bicep build` to validate all Bicep code
- [x] I have checked for any sensitive data/tokens that should not be
committed
- [ ] Lint checks pass (run applicable linters for changed file types)

## Security Review

- [x] No credentials, secrets, or tokens are hardcoded or logged
- [ ] RBAC and identity changes follow least-privilege principles
- [x] No new network exposure or public endpoints introduced without
justification
- [x] Dependency additions or updates have been reviewed for known
vulnerabilities
- [ ] Container image changes use pinned digests or SHA references

No new vulnerability suppressions or reduced enforcement. The two medium
asteval advisories remain disclosed; #797 retains the separately blocked
ecdsa/Checkov update.

## Additional Notes

#797 remains draft and was not changed by this CI fix. No branches were
rebased or force-pushed and no PR was merged.

## Screenshots (if applicable)

Not applicable.

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Marcel Bindseil <marcelbindseil@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant