Repository navigation
chore(stack): pin imgproxy to v3.8.0 - #6752
supabase-cli-releaser[bot] wants to merge 1 commit into
Conversation
d16cffa to
eec9807
Compare
| "imgproxy", | ||
| "v3.8.0", | ||
| "ghcr.io/supabase/cli/imgproxy:v3.8.0", | ||
| "ghcr.io/supabase/cli/imgproxy:v3.8.0@sha256:75fcf5f5a72bc4bce354d1b5dfb4636a2e6979f0ce68cdacc51ed1bce2ab494e", |
There was a problem hiding this comment.
🟡 Severity: MEDIUM
While the digest pin improves reproducibility, it locks the stack to imgproxy v3.8.0, affected by CVE-2023-30019. A caller-controlled image source from Storage reaches imgproxy’s fetcher; its vulnerable URL handling can request loopback/internal services and return their contents, enabling SSRF.
Helpful? Add 👍 / 👎
💡 Fix Suggestion
Suggestion: Upgrade imgproxy from v3.8.0 to v3.15.0 or later to remediate CVE-2023-30019. The fix requires two coordinated changes in the imgproxy: definition(...) block:
- Update the version string on line 101 from
"v3.8.0"to the patched version (e.g."v3.15.0"). - Update the image reference on line 102 to match the new version tag and its corresponding SHA256 digest from
ghcr.io/supabase/cli/imgproxy(the Supabase-mirrored image). The new digest must be fetched from the registry (e.g.docker manifest inspect ghcr.io/supabase/cli/imgproxy:v3.15.0 --verbose | jq '.[0].Descriptor.digest') to maintain digest pinning. The dispatch workflow that created this PR (mirror-slim-image) should be re-run targeting v3.15.0 or newer to automatically populate the correct version string and digest.
| "imgproxy", | ||
| "v3.8.0", | ||
| "ghcr.io/supabase/cli/imgproxy:v3.8.0", | ||
| "ghcr.io/supabase/cli/imgproxy:v3.8.0@sha256:75fcf5f5a72bc4bce354d1b5dfb4636a2e6979f0ce68cdacc51ed1bce2ab494e", |
There was a problem hiding this comment.
🟡 Severity: MEDIUM
While the digest pin improves reproducibility, it locks the stack to imgproxy v3.8.0, affected by CVE-2023-1496. A malicious uploaded SVG can flow through Storage’s image-transformation request into imgproxy’s SVG renderer, whose generated response is returned to the requester, enabling script execution through the transformed image.
Helpful? Add 👍 / 👎
💡 Fix Suggestion
Suggestion: Upgrade the imgproxy pin from v3.8.0 to v3.14.0 or later to remediate CVE-2023-1496. This requires two coordinated updates in the same definition block:
- Update the
defaultVersionstring (line 101) from"v3.8.0"to the target version (e.g."v3.14.0"). - Update the image reference (line 102) to the new tag and its corresponding SHA-256 digest, e.g.
"ghcr.io/supabase/cli/imgproxy:v3.14.0@sha256:<digest>".
The correct digest must be retrieved from the GHCR registry for the Supabase CLI wrapper image (ghcr.io/supabase/cli/imgproxy) at the chosen version. You can obtain it by running:
docker manifest inspect ghcr.io/supabase/cli/imgproxy:v3.14.0 --verbose | jq '.[0].Descriptor.digest'
or by inspecting the package page at https://github.com/supabase/cli/pkgs/container/cli%2Fimgproxy. Do not remove the digest pin when upgrading, as it is important for supply-chain integrity.
Pins
packages/stack/src/Artifacts.tsto theimgproxyv3.8.0slim-services release and its image digest.
Opened from the
mirror-slim-imagedispatch.artifactForderives thenative release tag, asset names, and URLs from service + version, so this
pin is the whole change.