Skip to content
Closed
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion packages/stack/src/Artifacts.ts
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,7 @@ const definitions: Readonly<Record<ServiceKind, ArtifactDefinition>> = {
imgproxy: definition(
"imgproxy",
"v3.8.0",
"ghcr.io/supabase/cli/imgproxy:v3.8.0",
"ghcr.io/supabase/cli/imgproxy:v3.8.0@sha256:75fcf5f5a72bc4bce354d1b5dfb4636a2e6979f0ce68cdacc51ed1bce2ab494e",

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 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:

  1. Update the version string on line 101 from "v3.8.0" to the patched version (e.g. "v3.15.0").
  2. 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.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 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:

  1. Update the defaultVersion string (line 101) from "v3.8.0" to the target version (e.g. "v3.14.0").
  2. 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.

"bin/imgproxy",
),
functions: definition(
Expand Down
Loading