Skip to content

Update module github.com/sigstore/rekor to v1.5.2 [SECURITY] - #365

Open
renovate-update-app[bot] wants to merge 1 commit into
masterfrom
renovate/go-github.com-sigstore-rekor-vulnerability
Open

renovate-update-app[bot] wants to merge 1 commit into
masterfrom
renovate/go-github.com-sigstore-rekor-vulnerability

Conversation

@renovate-update-app

Copy link
Copy Markdown

This PR contains the following updates:

Package Change Age Confidence
github.com/sigstore/rekor v1.3.6 → v1.5.2 age confidence

Warning

Some dependencies could not be looked up. Check the warning logs for more information.


Rekor's COSE v0.0.1 entry type nil pointer dereference in Canonicalize via empty Message

CVE-2026-23831 / GHSA-273p-m2cw-6833

More information

Details

Summary

Rekor’s cose v0.0.1 entry implementation can panic on attacker-controlled input when canonicalizing a proposed entry with an empty spec.message. validate() returns nil (success) when message is empty, leaving sign1Msg uninitialized, and Canonicalize() later dereferences v.sign1Msg.Payload.

Impact

A malformed proposed entry of the cose/v0.0.1 type can cause a panic on a thread within the Rekor process. The thread is recovered so the client receives a 500 error message and service still continues, so the availability impact of this is minimal.

Patches

Upgrade to v1.5.0

Workarounds

None

Severity

  • CVSS Score: 5.3 / 10 (Medium)
  • Vector String: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L

References

This data is provided by the GitHub Advisory Database (CC-BY 4.0).


Rekor affected by Server-Side Request Forgery (SSRF) via provided public key URL

CVE-2026-24117 / GHSA-4c4x-jm2x-pf9j

More information

Details

Summary

/api/v1/index/retrieve supports retrieving a public key via a user-provided URL, allowing attackers to trigger SSRF to arbitrary internal services.

Since the SSRF only can trigger GET requests, the request cannot mutate state. The response from the GET request is not returned to the caller so data exfiltration is not possible. A malicious actor could attempt to probe an internal network through Blind SSRF.

Impact
  • SSRF to cloud metadata (169.254.169.254)
  • SSRF to internal Kubernetes APIs
  • SSRF to any service accessible from Fulcio's network
Patches

Upgrade to v1.5.0. Note that this is a breaking change to the search API and fully disables lookups by URL. If you require this feature, please reach out and we can discuss alternatives.

Workarounds

Disable the search endpoint with --enable_retrieve_api=false.

Severity

  • CVSS Score: 5.3 / 10 (Medium)
  • Vector String: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N

References

This data is provided by the GitHub Advisory Database (CC-BY 4.0).


Rekor has an OOM Condition due to Unbounded gzip Decompression in Alpine APK Parsing Logic

CVE-2026-48702 / GHSA-47q9-m4ww-924m

More information

Details

Description

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)
  • POST /api/v1/log/entries/retrieve (searchLogQuery)

Both invoke V001Entry.Canonicalize() → fetchExternalEntities() → apk.Unmarshal(packageData), which performs the unbounded decompression.

Workarounds

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.

Severity

  • CVSS Score: 7.5 / 10 (High)
  • Vector String: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H

References

This data is provided by the GitHub Advisory Database (CC-BY 4.0).


Rekor's COSE v0.0.1 entry type nil pointer dereference in Canonicalize via empty Message

CVE-2026-23831 / GHSA-273p-m2cw-6833 / GO-2026-4354

More information

Details

Summary

Rekor’s cose v0.0.1 entry implementation can panic on attacker-controlled input when canonicalizing a proposed entry with an empty spec.message. validate() returns nil (success) when message is empty, leaving sign1Msg uninitialized, and Canonicalize() later dereferences v.sign1Msg.Payload.

Impact

A malformed proposed entry of the cose/v0.0.1 type can cause a panic on a thread within the Rekor process. The thread is recovered so the client receives a 500 error message and service still continues, so the availability impact of this is minimal.

Patches

Upgrade to v1.5.0

Workarounds

None

Severity

  • CVSS Score: 5.3 / 10 (Medium)
  • Vector String: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L

References

This data is provided by OSV and the GitHub Advisory Database (CC-BY 4.0).


Rekor affected by Server-Side Request Forgery (SSRF) via provided public key URL

CVE-2026-24117 / GHSA-4c4x-jm2x-pf9j / GO-2026-4355

More information

Details

Summary

/api/v1/index/retrieve supports retrieving a public key via a user-provided URL, allowing attackers to trigger SSRF to arbitrary internal services.

Since the SSRF only can trigger GET requests, the request cannot mutate state. The response from the GET request is not returned to the caller so data exfiltration is not possible. A malicious actor could attempt to probe an internal network through Blind SSRF.

Impact
  • SSRF to cloud metadata (169.254.169.254)
  • SSRF to internal Kubernetes APIs
  • SSRF to any service accessible from Fulcio's network
Patches

Upgrade to v1.5.0. Note that this is a breaking change to the search API and fully disables lookups by URL. If you require this feature, please reach out and we can discuss alternatives.

Workarounds

Disable the search endpoint with --enable_retrieve_api=false.

Severity

  • CVSS Score: 5.3 / 10 (Medium)
  • Vector String: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N

References

This data is provided by OSV and the GitHub Advisory Database (CC-BY 4.0).


Rekor's COSE v0.0.1 entry type nil pointer dereference in Canonicalize via empty Message in github.com/sigstore/rekor

CVE-2026-23831 / GHSA-273p-m2cw-6833 / GO-2026-4354

More information

Details

Rekor's COSE v0.0.1 entry type nil pointer dereference in Canonicalize via empty Message in github.com/sigstore/rekor

Severity

Unknown

References

This data is provided by OSV and the Go Vulnerability Database (CC-BY 4.0).


Rekor affected by Server-Side Request Forgery (SSRF) via provided public key URL in github.com/sigstore/rekor

CVE-2026-24117 / GHSA-4c4x-jm2x-pf9j / GO-2026-4355

More information

Details

Rekor affected by Server-Side Request Forgery (SSRF) via provided public key URL in github.com/sigstore/rekor

Severity

Unknown

References

This data is provided by OSV and the Go Vulnerability Database (CC-BY 4.0).


Rekor has an OOM Condition due to Unbounded gzip Decompression in Alpine APK Parsing Logic

CVE-2026-48702 / GHSA-47q9-m4ww-924m / GO-2026-5778

More information

Details

Description

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)
  • POST /api/v1/log/entries/retrieve (searchLogQuery)

Both invoke V001Entry.Canonicalize() → fetchExternalEntities() → apk.Unmarshal(packageData), which performs the unbounded decompression.

Workarounds

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.

Severity

  • CVSS Score: 7.5 / 10 (High)
  • Vector String: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H

References

This data is provided by OSV and the GitHub Advisory Database (CC-BY 4.0).


Rekor has an OOM Condition due to Unbounded gzip Decompression in Alpine APK Parsing Logic in github.com/sigstore/rekor

CVE-2026-48702 / GHSA-47q9-m4ww-924m / GO-2026-5778

More information

Details

Rekor has an OOM Condition due to Unbounded gzip Decompression in Alpine APK Parsing Logic in github.com/sigstore/rekor

Severity

Unknown

References

This data is provided by OSV and the Go Vulnerability Database (CC-BY 4.0).


Release Notes

sigstore/rekor (github.com/sigstore/rekor)

v1.5.2

Compare Source

Features

  • Support restricting kinds on insertion (#​2814)

Bug Fixes

  • alpine: Enforce max size limit on decompression (#​2831)
  • fix(trillianclient): strip dns:/// scheme from TLS ServerName in gRPC dial (#​2812)
  • Fix internal error detail leakage in 500 responses (#​2801)
  • add checks to ensure returned entries match client inputs to rekor-cli (#​2799)
  • add defensive check to ensure tid is in config ahead of getting client (#​2795)
  • add nil pointer check to resolve fuzzing crash (#​2807)

Improvements

  • restapi: include inactiveShards in the homepage total count (#​2797)
  • client: surface last-response details after retries are exhausted (#​2796)

v1.5.1

Compare Source

Features

  • optimize memory for DSSE v0.0.1 processing (#​2766)

Bug Fixes

  • Type assert the entry bundle when verifying inclusion proof (#​2755)
  • return correct errors in rare failure situations (#​2753)
  • raise error if decoding hash fails during inclusion proof (#​2754)

v1.5.0

Compare Source

This release fixes GHSA-273p-m2cw-6833 and GHSA-4c4x-jm2x-pf9j. Note that this
drops support for fetching public keys via URL when querying the search API.

Vulnerability Fixes

  • Handle malformed COSE and DSSE entries (#​2729)
  • Drop support for fetching public keys by URL in the search index (#​2731)

Features

  • Add support for a custom TLS config for clients (#​2709)

v1.4.3

Compare Source

This release reduces dependencies for a number of exported packages.

This release also changes the format of the binary and container signature, which is now a
Sigstore bundle. To verify a release, use the
latest Cosign 3.x, verifying with
cosign verify-blob --bundle <artifact>-keyless.sigstore.json <artifact>.

Improvements

  • use interruptable context to elegantly handle signals in rekor-cli (#​2681)
  • restapi: Don't log client errors as errors (#​2680)
  • pkg: separate pki types from implementations (#​2668)
  • e2e: don't mix e2e and regular utilities (#​2672)
  • pkg: remove viper config from spec definitions (#​2669)
  • log: remove zap & go-chi dependecy from pkg/types (#​2667)
  • chore: update go-openapi/runtime to v0.29.0 (#​2670)
  • chore: remove double imported mapstructure pkg (#​2671)
  • remove archived dependency and use stdlib slices (#​2650)

Documentation

  • (docs): guard unsafe int/uint conversions flagged by gosec (#​2679)

Contributors

  • AdamKorcz
  • Bob Callaway
  • Jussi Kukkonen
  • Sachin Sampras M
  • Tõnis Tiigi

v1.4.2

Compare Source

This release includes some performance optimizations and a bug fix for publishing events to a pub/sub topic.

Fixes

  • use pubsub client to check IAM permissions (#​2605)
  • process type contents serially (#​2604)
  • move to direct decoding instead of mapstructure (#​2598)
  • optimize performance of regex operations (#​2603)

Contributors

  • Bob Callaway

v1.4.1

Compare Source

This release includes updated dependencies for known CVEs, as well as some optimizations to minimize gRPC traffic between Rekor and Trillian.

Fixes

  • use less expensive gRPC call to implement GetLeafAndProofByHash (#​2581)
  • move to per-shard trillian client manager (#​2564)
  • use cheaper gRPC endpoint when we already have the inclusion proof (#​2580)
  • simplify hash and signature verification in rekord type (#​2579)
  • use correct type; just look for len() instead of nil check (#​2576)
  • return correct error if GetLeafAndProofByHash fails (#​2574)
  • fix incorrect client lb policy in test config (#​2551)
  • numerous upgraded dependencies

Contributors

  • Bob Callaway
  • Carlos Alexandro Becker

v1.4.0

Compare Source

This is a minor version release given the removal of the stable checkpoint feature. To our knowledge, this was not
used effectively anywhere and therefore was removed from Rekor v1. Witnessing will be added as part of the upcoming
Rekor v2 release.

Features

  • enable retries and timeouts on GCP KMS calls (#​2548)
  • allow configuring gRPC default service config for trillian client load balancing & timeouts (#​2549)
  • move context handling in trillian RPC calls to be request based and idiomatic (#​2536)

Fixes

  • Fix docker compose up --wait failing when Trillian server isn't healthy (#​2473)
  • better mysql healthcheck (#​2459)
  • numerous upgraded dependencies, including moving to go 1.24

Removed

  • remove stable checkpoint feature (#​2537)
  • Don't initialize index storage with stable checkpoint publishing (#​2486)

Contributors

  • Bob Callaway
  • Carlos Tadeu Panato Junior
  • Emmanuel Ferdman
  • Hayden B
  • Ramon Petgrave

v1.3.10

Compare Source

Note that Rekor v1 is in maintenance mode as we are actively developing
its successor, Rekor v2, designed to be easy to maintain and cheaper to operate.. See the
README
for more information.

Features

  • Added --client-signing-algorithms flag (#​1974)

Fixes / Misc

  • emit unpopulated values when marshalling (#​2438)
  • pkg/api: better logs when algorithm registry rejects a key (#​2429)
  • chore: improve mysql readiness checks (#​2397)

Contributors

  • Bob Callaway
  • cangqiaoyuzhuo
  • Carlos Tadeu Panato Junior
  • cpanato
  • Hayden B
  • Praful Khanduri
  • Ramon Petgrave
  • Riccardo Schirone
  • rubyisrust
  • Sascha Grunert

v1.3.9

Compare Source

Features

  • Cache checkpoint for inactive shards (#​2332)
  • Support per-shard signing keys (#​2330)

Contributors

  • Hayden B

v1.3.8

Compare Source

Bug Fixes

Quality Enhancements

  • chore: relax go directive to permit 1.22.x
  • fetch minisign from homebrew instead of custom ppa (#​2329)
  • fix(ci): simplify GOVERSION extraction
  • chore(deps): bump actions pins to latest
  • Updates go and golangci-lint (#​2302)
  • update builder to use go1.23.4 (#​2301)
  • clean up spaces
  • log request body on 500 error to aid debugging (#​2283)

Contributors

  • Appu Goundan
  • Bob Callaway
  • Carlos Tadeu Panato Junior
  • Dominic Evans
  • sgpinkus

v1.3.7

Compare Source

New Features

  • log request body on 500 error to aid debugging (#​2283)
  • Add support for signing with Tink keyset (#​2228)
  • Add public key hash check in Signed Note verification (#​2214)
  • update Trillian TLS configuration (#​2202)
  • Add TLS support for Trillian server (#​2164)
  • Replace docker-compose with plugin if available (#​2153)
  • Add flags to backfill script (#​2146)
  • Unset DisableKeepalive for backfill HTTP client (#​2137)
  • Add script to delete indexes from Redis (#​2120)
  • Run CREATE statement in backfill script (#​2109)
  • Add MySQL support to backfill script (#​2081)
  • Run e2e tests on mysql and redis index backends (#​2079)

Bug Fixes

  • remove unneeded value in log message (#​2282)
  • Add error message when computing consistency proof (#​2278)
  • fix validation error handling on API (#​2217)
  • fix error in pretty-printed inclusion proof from verify subcommand (#​2210)
  • Fix index scripts (#​2203)
  • fix failing sharding test
  • Better error handling in backfill script (#​2148)
  • Batch entries in cleanup script (#​2158)
  • Add missing workflow for index cleanup test (#​2121)
  • hashedrekord: fix schema $id (#​2092)

Contributors

  • Aditya Sirish
  • Bob Callaway
  • Colleen Murphy
  • cpanato
  • Firas Ghanmi
  • Hayden B
  • Hojoung (Brian) Jang
  • William Woodruff

Configuration

📅 Schedule: (UTC)

  • Branch creation
    • At any time (no schedule defined)
  • Automerge
    • At any time (no schedule defined)

🚦 Automerge: Enabled.

♻ Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR has been generated by Mend Renovate CLI.

@renovate-update-app
renovate-update-app Bot enabled auto-merge (squash) October 24, 2026 01:32
@renovate-update-app

renovate-update-app Bot commented Oct 24, 2026 •

Copy link
Copy Markdown
Author

ℹ️ Artifact update notice

File name: go.mod

In order to perform the update(s) described in the table above, Renovate ran the go get command, which resulted in the following additional change(s):

  • 18 additional dependencies were updated

Details:

Package Change
github.com/golang/mock v1.6.0 -> v1.7.0-rc.1
github.com/hashicorp/go-retryablehttp v0.7.7 -> v0.7.8
github.com/hashicorp/hcl v1.0.1-vault-5 -> v1.0.1-vault-7
github.com/spf13/afero v1.11.0 -> v1.15.0
github.com/spf13/cast v1.7.0 -> v1.10.0
google.golang.org/genproto v0.0.0-20240903143218-8af14fe29dc1 -> v0.0.0-20260319201613-d00831a3d3e7
github.com/containerd/stargz-snapshotter/estargz v0.16.3 -> v0.18.1
github.com/docker/docker v28.2.2+incompatible -> v28.5.2+incompatible
github.com/google/certificate-transparency-go v1.1.8 -> v1.3.2-0.20250507091337-0eddb39e94f8
github.com/google/go-containerregistry v0.20.6 -> v0.20.7
github.com/google/wire v0.6.0 -> v0.7.0
github.com/jellydator/ttlcache/v3 v3.3.0 -> v3.4.0
github.com/redis/go-redis/v9 v9.5.1 -> v9.18.0
github.com/secure-systems-lab/go-securesystemslib v0.10.0 -> v0.11.0
github.com/sigstore/sigstore v1.8.3 -> v1.10.6
github.com/spf13/viper v1.19.0 -> v1.21.0
github.com/vbatts/tar-split v0.12.1 -> v0.12.2
gopkg.in/ini.v1 v1.67.0 -> v1.67.2

@renovatee-approver-stackvista renovatee-approver-stackvista Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Auto-approving verified Renovate commits with native automerge enabled.

@renovate-update-app
renovate-update-app Bot force-pushed the renovate/go-github.com-sigstore-rekor-vulnerability branch from a2da2b3 to 32bf093 Compare October 24, 2026 08:29

@renovatee-approver-stackvista renovatee-approver-stackvista Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Auto-approving verified Renovate commits with native automerge enabled.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants