fix(docker): bump wolfi-base digest for busybox 1.38.0-r1 and openssl 3.6.3-r5 - #37950
Merged
yuneng-berri merged 1 commit intoAug 22, 2026
Conversation
… 3.6.3-r5 The pinned base (built 2026-07-02) ships busybox 1.37.0-r61 and libcrypto3/libssl3 3.6.3-r3. Grype reports 16 fixable findings against those revisions, 8 of them High, so the image-scan gate fails once it gets past the migration step. The runtime stage's `apk upgrade` cannot clear them. wolfi-base writes an exact `=version` constraint for every package it ships into /etc/apk/world, so `apk upgrade` is a no-op even though the fixed revisions are in the repo. Advancing them means moving the digest. The new digest carries busybox 1.38.0-r1, libcrypto3/libssl3 3.6.3-r5 and glibc 2.43-r15, which is at or above the fix revision Wolfi's secdb records for every finding. Verified with cosign against chainguard-images/images release.yaml, and grype reports no fixable findings on the rebuilt image. CVE-2026-14456, CVE-2026-54876, CVE-2026-38752, CVE-2026-38753, CVE-2026-38754, CVE-2026-38755
Contributor
Greptile SummaryThe PR consistently refreshes the pinned Wolfi base-image digest across all six Docker image definitions while preserving existing build and runtime behavior.
Confidence Score: 5/5The PR appears safe to merge because the digest refresh is consistent across all affected images and no concrete blocking or non-blocking defect was identified. The changes only replace the pinned Wolfi base digest, preserve the existing Dockerfile logic, and include representative build and scan evidence for the updated image.
|
| Filename | Overview |
|---|---|
| Dockerfile | Updates the builder and runtime Wolfi base-image digest consistently; no actionable defect identified. |
| backend/Dockerfile | Updates both component image stages to the new pinned digest without changing package installation or runtime behavior. |
| docker/Dockerfile.database | Applies the same digest refresh to the database image's builder and runtime stages. |
| docker/Dockerfile.non_root | Applies the verified digest refresh to both stages of the non-root image. |
| gateway/Dockerfile | Updates both gateway stages consistently while retaining the existing package and non-root-user setup. |
| migrations/Dockerfile | Updates both migration-image stages consistently without altering migration execution behavior. |
Reviews (1): Last reviewed commit: "fix(docker): bump wolfi-base digest for ..." | Re-trigger Greptile
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
yucheng-berri
approved these changes
Aug 22, 2026
yuneng-berri
enabled auto-merge (squash)
August 22, 2026 18:35
yuneng-berri
merged commit Aug 22, 2026
490c9f9
into
litellm_internal_staging
70 of 72 checks passed
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.
TLDR
Problem this solves:
apk upgradecannot advance themHow it solves it:
User Flow
Before: an operator scanning the published image sees fixable High findings they cannot clear by rebuilding
litellm/litellmimageAfter: the same scan comes back clean
litellm/litellmimageRelevant issues
Linear ticket
Pre-Submission checklist
Screenshots / Proof of Fix
Both runs build
docker/Dockerfile.non_rootand scan it with the same pinned grype the gate uses,grype IMG --only-fixed --fail-on high.Before (28887f1)
docker build -f docker/Dockerfile.non_root -t litellm-base-before:local .grype litellm-base-before:local --only-fixed --fail-on highapk upgradecannot clear these:docker run --rm --entrypoint sh cgr.dev/chainguard/wolfi-base@sha256:42df77a9... -c "apk upgrade -a; cat /etc/apk/world"The base writes an exact
=versionconstraint for every package it ships, so the upgrade is a no-op even thoughapk policy busyboxlists 1.38.0-r1 as available.After (f46dd40)
docker build -f docker/Dockerfile.non_root -t litellm-digestbump:local .grype litellm-digestbump:local --only-fixed --fail-on high; echo "exit=$?"cosign verify --certificate-oidc-issuer=https://token.actions.githubusercontent.com --certificate-identity=https://github.com/chainguard-images/images/.github/workflows/release.yaml@refs/heads/main cgr.dev/chainguard/wolfi-base@sha256:a31344ab...grype cgr.dev/chainguard/wolfi-base@sha256:a31344ab... --platform linux/amd64 --only-fixedType
🚄 Infrastructure
Caveats (if any)