Merged
Conversation
- aiohttp: >=3.13.3 (CVE-2025-69223, CVE-2025-69227/28/29) - urllib3: >=2.6.3 (CVE-2025-66418, CVE-2025-66471, CVE-2026-21441) - protobuf: >=6.33.5 (CVE-2026-0994) - cryptography: >=46.0.5 added explicitly (CVE-2026-26007) - wheel: uninstalled after pip install in Dockerfile (CVE-2026-24049) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
cargo-chef now pulls cargo-platform@0.3.2 (requires rustc 1.88) and cargo_metadata@0.23.1 / guppy@0.17.25 (require rustc 1.86). The previous rust:1.85-alpine image can no longer build these tools. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
There was a problem hiding this comment.
Pull request overview
This PR updates Python dependencies and the Docker build to remediate reported CVEs in the runtime image, primarily by bumping minimum versions and reducing installed packaging tooling in the final container.
Changes:
- Bump minimum versions for
aiohttp,urllib3, andprotobuf, and addcryptographyas an explicit dependency inrequirements.txt. - Update the Rust build stage image version.
- Uninstall
wheel(in addition topipandsetuptools) from the final Docker image layer after dependency installation.
Reviewed changes
Copilot reviewed 1 out of 2 changed files in this pull request and generated no comments.
| File | Description |
|---|---|
| requirements.txt | Raises minimum versions for vulnerable deps and adds explicit cryptography. |
| Dockerfile | Updates Rust builder base image and removes wheel from final runtime layer post-install. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
You can also share your feedback on Copilot code review. Take the survey.
omer9564
approved these changes
Mar 18, 2026
omer9564
approved these changes
Mar 18, 2026
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.
Summary
aiohttp,urllib3,protobuf, and addcryptographyas explicit dependency inrequirements.txtto resolve known CVEswheelfrom final Docker image after pip install to remove CVE-2026-24049apk upgradeis already in the DockerfilePython dependency changes (
requirements.txt)aiohttp>=3.12.14,<4>=3.13.3,<4urllib3>=2.5.0,<3>=2.6.3,<3protobuf>=3.20.2>=6.33.5cryptography>=46.0.5,<47cryptographywas already imported directly inhorizon/startup/offline_mode.pybut was not declared as an explicit dependency — it was pulled in transitively. Adding it explicitly ensures the minimum version is enforced regardless of what transitive resolution produces.The
protobuflower bound was>=3.20.2(pinned by Snyk years ago). The version actually installed in the image was 6.33.1, so bumping to>=6.33.5reflects reality and fixes the CVE.Dockerfile changes
wheeluninstall: Addedwheelto thepip uninstallcleanup step.wheelis only needed at build time for building Python packages and has no runtime purpose. Removing it eliminates CVE-2026-24049 from the final image.Alpine OS packages (no code change needed)
CVE-2025-15467 (CRITICAL) and 6 HIGH CVEs affect
libcrypto3/libssl3(OpenSSL 3.5.4-r0). The Dockerfile already runsapk upgradewhich pulls the latest packages from Alpine repos. The fixed version3.5.5-r0is available in Alpine 3.22 repos, so a fresh Docker build resolves all 8 OpenSSL CVEs automatically.Out of scope
3 CVEs in Go libraries compiled into the OPA binary (
containerd,mapstructure) must be fixed in thepermitio/permit-oparepository. Tracked separately in PER-14186.Linear Issue
PER-14185
Test plan
Tests
Generated with Claude Code