Skip to content

fix(security): hash-lock the fuzz build, ignore the unfixed nltk advisory - #226

Merged
imran-siddique merged 1 commit into
mainfrom
fix/scorecard-followup-2026-09-25
Sep 25, 2026
Merged

imran-siddique merged 1 commit into
mainfrom
fix/scorecard-followup-2026-09-25

Conversation

@imran-siddique

Copy link
Copy Markdown
Member

Two Scorecard follow-ups left after #225.

#178, PinnedDependencies, .clusterfuzzlite/build.sh. The build installed agentrust-capture-core and agentrust-trace-adapters and let pip pull their dependencies unhashed. Those dependencies (agentrust-trace, cryptography and 14 transitive packages) now come from requirements/fuzz.txt with --require-hashes, compiled with uv at Python 3.11 because that is what base-builder-python ships (3.11.13). The two packages then go in with --no-deps. atheris, pyinstaller and setuptools are installed by the base image's install_python.sh, so they stay out of the lock. cflite_pr.yml now also triggers on requirements/fuzz.txt.

Verified: fresh 3.11 venv, pip install --require-hashes -r requirements/fuzz.txt, both packages with --no-deps, pip check clean, and every import the three fuzz targets make succeeds. osv-scanner 2.6.0 on the new lock: no issues.

#34, Vulnerabilities, nltk GHSA-8mgp-746c-j5xp. nltk reaches integrations/llamaindex/requirements-interop.txt through llama-index-core==0.14.24. OSV lists it as last_affected: 3.10.3, and 3.10.3 is the newest release on PyPI, so there is nothing to bump to. integrations/llamaindex/osv-scanner.toml ignores that one ID until 2026-12-24 with the reason written in the file, and the README note gains a line pointing at it.

The file sits next to the manifest, not at the repo root. osv-scanner applies a config only to manifests in its own directory, and a root copy left the finding in place when I ran it. With the file in integrations/llamaindex/, osv-scanner 2.6.0 reports "GHSA-8mgp-746c-j5xp and 2 aliases have been filtered out". Scorecard's Vulnerabilities check calls osv-scanner's DoScan with no config override, and its docs say to put osv-scanner.toml next to the manifest, so it should clear on the next Scorecard run.

Checks: validate_integrations.py (41 integrations, 0 failures), the six validate pytest files (28 passed), validate_compatibility.py, both --check generators, and ruff with the lint.yml selection, all clean.

Generated with Claude Code

.clusterfuzzlite/build.sh installed the two first-party packages with
their dependencies unhashed (Scorecard #178). Their runtime deps now come
from requirements/fuzz.txt with --require-hashes, compiled at 3.11 (the
base-builder-python interpreter), and the packages go in with --no-deps.
atheris and pyinstaller stay with the base image.

integrations/llamaindex/osv-scanner.toml ignores GHSA-8mgp-746c-j5xp
(Scorecard #34) until 2026-12-24. nltk reaches that directory through
llama-index-core and 3.10.3, the latest release, is still affected.
osv-scanner reads the file per directory, so a root copy would not apply.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@imran-siddique
imran-siddique requested review from a team and carloshvp as code owners September 25, 2026 23:28
@imran-siddique
imran-siddique merged commit fd3619a into main Sep 25, 2026
23 checks passed
@imran-siddique
imran-siddique deleted the fix/scorecard-followup-2026-09-25 branch September 25, 2026 23:38
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