Repository navigation
chore: clear trivy and zizmor security scan findings - #361
Merged
Merged
Conversation
docs/sphinx/requirements.txt had drifted far enough behind its
pip-compile inputs that trivy reported 83 vulnerabilities (47 HIGH,
2 CRITICAL) against it, all in transitive pins: gitpython 3.1.43,
tornado 6.5, pyjwt 2.8.0, urllib3 2.6.0, cryptography 42.0.7,
soupsieve 2.5 and jupyter-core 5.7.2.
requirements.in only constrains rocm-docs-core (tracked as a git
branch ref), so the fix is a straight recompile rather than a
hand-edit:
uv pip compile requirements.in --python-version 3.10 --upgrade \
--output-file requirements.txt
Verified with trivy 0.70.0 (the version the security baseline pins):
0 findings at every severity, down from 83.
Verified the docs still build and render identically: sphinx builds
with both the old and new pin sets produce the same 20 pages and the
same 36 warnings, and the extracted article text of index.html,
install/build_from_source.html and reference/presets.html is
character-for-character identical between the two builds.
Co-authored-by: Pi Agent
zizmor 1.30.0 (the version the ROCm security baseline pins) reports 13 findings at HIGH against the two existing workflows, which is enough to fail the security-scan gate that #360 introduces: 10x unpinned-uses build-relocatable-packages.yml, codeql.yml 2x unpinned-images build-relocatable-packages.yml, codeql.yml 1x excessive-permissions build-relocatable-packages.yml unpinned-uses / unpinned-images: every action is pinned to the commit SHA its current major tag resolves to, with the resolved version in a trailing comment, and both container images are pinned by digest. The major versions are deliberately unchanged (checkout stays on v4, not v7), so behaviour is identical and the upgrades are left to dependabot once the github-actions ecosystem is enabled. excessive-permissions: id-token: write was set at workflow level for the OIDC S3 upload, which also handed an OIDC-minting token to the release-summary job that only writes a step summary and uploads a markdown file. Moved to the two build jobs that run aws-actions/configure-aws-credentials. Verified: zizmor drops from 13 HIGH to 0 HIGH; actionlint reports the same 5 pre-existing shellcheck style findings before and after; all four action SHAs were confirmed to be the commit their version comment names, and both image digests return HTTP 200 from their registries. The 3 remaining MEDIUM artipacked findings (checkout without persist-credentials: false) are left alone - they are below the gate's HIGH threshold and are a separate change. Co-authored-by: Pi Agent
gilbertlee-amd
approved these changes
Oct 14, 2026
alex-breslow-amd
self-requested a review
October 14, 2026 20:29
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.
Clears every finding that would fail the
trivyandzizmorjobs of the security scanning gate proposed in #360. Without these changes that gate is red on arrival, and stays red on every subsequent pull request.trivy: 83 findings -> 0docs/sphinx/requirements.txthad drifted far behind its inputs, producing 83 vulnerabilities (47 HIGH, 2 CRITICAL), all in transitive pins:gitpython3.1.43,tornado6.5,pyjwt2.8.0,urllib32.6.0,cryptography42.0.7,soupsieve2.5 andjupyter-core5.7.2.requirements.inonly constrainsrocm-docs-core, which is tracked as a git branch ref rather than a version, so the fix is a straight recompile rather than a hand-edit:The
--python-version 3.10matches thetools.pythonsetting in.readthedocs.yaml.zizmor: 13 HIGH -> 0 HIGHThree audits were failing against the two pre-existing workflows.
unpinned-uses(10 findings): every action is now pinned to the commit SHA that its current major tag resolves to, with the resolved version recorded in a trailing comment. The major versions are deliberately unchanged (actions/checkoutstays on v4 rather than jumping to v7), so this is a pinning change with no behavioural difference; the upgrades are left to dependabot once thegithub-actionsecosystem is enabled by #360.unpinned-images(2 findings): both container images are pinned by digest, with the floating tag retained for readability. Forrocm/dev-ubuntu-22.04the digest is also tagged10.1.0-full, which is recorded in a comment so the ROCm version is not lost.excessive-permissions(1 finding):id-token: writewas set at workflow level inbuild-relocatable-packages.ymlfor the OIDC S3 upload, which also handed an OIDC-minting token to therelease-summaryjob that only writes a step summary and uploads a markdown file. It now sits on the two build jobs that actually runaws-actions/configure-aws-credentials.The 3 remaining MEDIUM
artipackedfindings (actions/checkoutwithoutpersist-credentials: false) are left alone: they are below the gate's HIGH threshold and are a separate hardening change. The MEDIUMdependabot-cooldownfinding is fixed by #360 itself.Testing
Both scanners were run locally at the versions the security baseline pins,
trivy0.70.0 andzizmor1.30.0, using the config files from #360.trivy fsreports 0 vulnerabilities at every severity, down from 83, and the HIGH/CRITICAL gate exits 0.zizmorreports 0 HIGH, down from 13.The documentation was built twice in a Python 3.10 virtualenv, once with the old pin set and once with the new one. Both builds succeed, emit an identical set of 36 warnings, and produce the same 20 pages. The extracted article text of
index.html,install/build_from_source.htmlandreference/presets.htmlis character-for-character identical between the two builds, including the 105 KB generated presets reference, despitesphinxmoving from 7.3.7 to 8.1.3.actionlintreports the same 5 pre-existing shellcheck style findings before and after the workflow changes, so no new workflow issues were introduced. All four action SHAs were confirmed against the GitHub API to be exactly the commit their version comment names, and both image digests return HTTP 200 from their registries.