fix: allowlist three new cryptography advisories in the sidecar scan - #400
Merged
Conversation
The `scan` job went from green at 16:24 to red at 22:27 on 2026-08-03 with no commit in between. Three advisories against cryptography 46.0.7 were published upstream between 21:17 and 21:27 UTC, and pip-audit fetches the advisory database live on every run, so the same tree flips colour the moment they land: GHSA-g6cj-pr64-35w5 high CVE-2026-69247 PKCS#7 Bleichenbacher oracle GHSA-jwv3-5hgf-82ww high CVE-2026-69249 exponential path building GHSA-m2h6-j472-rp4c medium CVE-2026-69248 wildcard DNS name constraints All three are in TLS and X.509 code paths the redaction sidecar never enters. cryptography is not declared in requirements.txt, it arrives only as a transitive dependency of presidio-anonymizer, and the service imports no part of it: no ssl, no x509, no pkcs7. It is stateless, publishes no ports, speaks plain HTTP behind the model-gateway seam, terminates no TLS and parses no certificates. That is the same reasoning already recorded for GHSA-537c-gmf6-5ccf. Bumping the pin is not available. presidio-anonymizer 2.2.363 requires cryptography <47.0.0, and its newest release, 2.2.364, only widens that to <49.0.0, while the fixes land in 49.0.0 and 50.0.0. No published presidio release permits a cryptography that resolves them, so the allowlist is the only route until upstream widens the constraint. The comment records that constraint as the revisit trigger rather than a date, and notes it is also when the hash-locked tree should be regenerated. Verified locally on Python 3.12, matching the sidecar base image: `No known vulnerabilities found, 4 ignored`, exit 0.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
scanonmainis red, and no commit caused it.What happened
The job was green at 16:24 on 2026-08-03 and red at 22:27 the same day, with nothing Python-related in between. Three advisories against
cryptography 46.0.7were published upstream between 21:17 and 21:27 UTC, andpip-auditfetches the advisory database live on every run, so an unchanged tree flips colour the moment they land. The four open Dependabot PRs are failing on the identical step, which is the confirmation that this is time-based rather than commit-based.GHSA-g6cj-pr64-35w5GHSA-jwv3-5hgf-82wwGHSA-m2h6-j472-rp4cWhy they are not reachable here
All three are in TLS and X.509 code paths:
EnvelopedDatadecryption. The sidecar decrypts no PKCS#7.permittedSubtreesname constraints. The sidecar verifies no certificates.cryptographyis not declared inrequirements.txt; it arrives only as a transitive dependency ofpresidio-anonymizer. The service imports no part of it (nossl, nox509, nopkcs7anywhere inapp/), publishes no ports, speaks plain HTTP behind the model-gateway seam, terminates no TLS and parses no certificates. That is the same reasoning already recorded forGHSA-537c-gmf6-5ccf.Why the pin is not simply bumped
The ceiling is upstream, not ours:
The fixes land in 49.0.0 and 50.0.0, so no published presidio release permits a
cryptographythat resolves any of the three. Upgrading presidio would clear the previously allowlistedGHSA-537c-gmf6-5ccf(fixed in 48.0.1) but none of the new ones. The allowlist is the only route until upstream widens the constraint, and the comment records that constraint as the revisit trigger rather than a calendar date, noting it is also when the hash-locked tree should be regenerated.Verification
Run locally on Python 3.12, matching the sidecar base image and the
setup-pythonpin, with the exact CI command:Resolving the lock on an older Python fails on unrelated grounds, exactly as the comment above
setup-pythonpredicts:exceptiongroupis a version-conditional dependency and is not hash-pinned.Scope
Comments and four
--ignore-vulnflags in.github/workflows/ci.yml. No application code, no lock file, no threshold lowered. The Trivy andnpm auditgates are untouched.Separate, not fixed here
Dependabot PR #296 (
nodebase image digest bump) failsdocker-buildwithapk add ... exit code 127: the bumped digest is not Alpine, so the OCR packages the vision half added cannot install.main'sdocker-buildis green. That PR should not be merged as-is.