CVE-2026-48702
Vulnerability Summary
Timeline
Description
Rekor is a software supply chain transparency log. Starting in version 0.3.0 and prior to version 1.5.2, the `Package.Unmarshal()` function in `pkg/types/alpine/apk.go` decompresses the signature and control gzip members of an APK file into in-memory buffers without bounding the total decompressed size. The existing `max_apk_metadata_size` check (default 1MB) is only applied to individual tar entry header sizes after decompression completes, so it does not prevent a decompression bomb from consuming unbounded heap memory. An attacker can craft a gzip stream that compresses at a ~1000:1 ratio (e.g., 2MB compressed zeros → 2GB decompressed). When submitted as spec.package.content in an Alpine `ProposedEntry`, the server decompresses the full payload into memory during request processing, triggering a fatal Go runtime out-of-memory error or OS OOM-kill that cannot be caught by the server's recover() middleware. This is reachable via two unauthenticated endpoints, `POST /api/v1/log/entries (createLogEntry)` and `POST /api/v1/log/entries/retrieve (searchLogQuery)`. Both invoke `V001Entry.Canonicalize()` → `fetchExternalEntities()` → `apk.Unmarshal(packageData)`, which performs the unbounded decompression. Version 1.5.2 patches the issue. There is no effective workaround. Setting `max_request_body_size` reduces but does not eliminate exposure due to the ~1000:1 compression ratio (a 1MB body limit still allows ~1GB heap allocation). Setting `max_apk_metadata_size` has no effect on this vulnerability since the check is applied after decompression.
CVSS Metrics
- v3.1•HIGH•Score: 7.5CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
EPSS Trends
Current EPSS score: 0.32%• Percentile: 26%
Techniques & Countermeasures
- CWE-770•Allocation of Resources Without Limits or Throttling
The product allocates a reusable resource or group of resources on behalf of an actor without imposing any intended restrictions on the size or number of resources that can be allocated.
Affected Systems
- chainguard•aactl
< 0.4.12-r60
- chainguard•chainctl-fips
< 0.2.292-r1
- chainguard•cloudbeat-8.17
< 8.17.10-r31
- chainguard•cloudbeat-9.0
< 9.0.8-r33
- chainguard•cloudbeat-9.1
< 9.1.10-r23
- chainguard•cloudbeat-9.2
< 9.2.8-r12
- chainguard•cloudbeat-9.4
< 9.4.2-r5
- chainguard•cloudbeat-fips-8.17
< 8.17.10-r37
- chainguard•cloudbeat-fips-9.0
< 9.0.8-r37
- chainguard•cloudbeat-fips-9.1
< 9.1.10-r29
- chainguard•cloudbeat-fips-9.2
< 9.2.8-r12
- chainguard•cloudbeat-fips-9.4
< 9.4.2-r6
- chainguard•commercial-chainloop-backend
all
- chainguard•commercial-chainloop-cli
all
- chainguard•commercial-kyverno-1.13
all
- chainguard•commercial-kyverno-1.14
all
- chainguard•commercial-kyverno-1.15
all
- chainguard•commercial-kyverno-1.16
all
- chainguard•commercial-kyverno-1.17
all
- chainguard•commercial-kyverno-background-controller-1.13
all
- chainguard•commercial-kyverno-background-controller-1.14
all
- chainguard•commercial-kyverno-background-controller-1.15
all
- chainguard•commercial-kyverno-background-controller-1.16
all
- chainguard•commercial-kyverno-background-controller-1.17
all
- chainguard•commercial-kyverno-cleanup-controller-1.13
all
- chainguard•commercial-kyverno-cleanup-controller-1.14
all
- chainguard•commercial-kyverno-cleanup-controller-1.15
all
- chainguard•commercial-kyverno-cleanup-controller-1.16
all
- chainguard•commercial-kyverno-cleanup-controller-1.17
all
- chainguard•commercial-kyverno-reports-controller-1.13
all
- chainguard•commercial-kyverno-reports-controller-1.14
all
- chainguard•commercial-kyverno-reports-controller-1.15
all
- chainguard•commercial-kyverno-reports-controller-1.16
all
- chainguard•commercial-kyverno-reports-controller-1.17
all
- chainguard•commercial-kyvernopre-1.13
all
- chainguard•commercial-kyvernopre-1.14
all
- chainguard•commercial-kyvernopre-1.15
all
- chainguard•commercial-kyvernopre-1.16
all
- chainguard•commercial-kyvernopre-1.17
all
- chainguard•crossplane-1.20
< 1.20.10-r4
- chainguard•crossplane-2.0
< 2.0.8-r8
- chainguard•crossplane-2.1
< 2.1.7-r2
- chainguard•crossplane-2.2
< 2.2.3-r2
- chainguard•crossplane-2.3
< 2.3.3-r2
- chainguard•crossplane-2.3-crank
< 2.3.3-r2
- chainguard•crossplane-fips-1.20
< 1.20.10-r2
- chainguard•crossplane-fips-2.0
< 2.0.8-r8
- chainguard•crossplane-fips-2.1
< 2.1.7-r2
- chainguard•crossplane-fips-2.2
< 2.2.3-r2
- chainguard•crossplane-fips-2.3
< 2.3.3-r2
Showing first 50 affected entries in server-rendered view.
References (8)
- https://github.com/sigstore/rekor/security/advisories/GHSA-47q9-m4ww-924m
- https://github.com/sigstore/rekor
- https://ubuntu.com/security/CVE-2026-48702
- https://www.cve.org/CVERecord?id=CVE-2026-48702
- https://github.com/sigstore/rekor/pull/2831
- https://security-tracker.debian.org/tracker/CVE-2026-48702
- https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/48xxx/CVE-2026-48702.json
- https://nvd.nist.gov/vuln/detail/CVE-2026-48702