Medium, CVSS 5.4npmAmendedPublished
@sigstore/core has DSSE payloadType type-binding failure
CVE-2026-48758 · GHSA-jfc7-64v2-mr8c
- Affected
- npm @sigstore/core <= 3.2.0
- Fixed in
- 3.2.1· Vendor fix available
- Issue
- Impact The preAuthEncoding function in @sigstore/core uses Node.js 'ascii' encoding when converting the PAE (Pre-Authentication Encoding) string to bytes. This allows payloadType to be mutated after signing without invalidating the signature, breaking the type-binding guarantee that DSSE is designed to provide. In packages/core/src/dsse.ts, the PAE function builds a string containing payloadType and then encodes it with Buffer.from(prefix, 'ascii'). In Node.js, 'ascii' encoding for string-to-Buffer is equivalent to 'latin1', which truncates characters above U+00FF to their low byte. This means for any ASCII character, there exist Unicode characters (at U+01xx, U+02xx, etc.) that produce the identical encoded byte: | Original | Codepoint | Mutant | Codepoint | Encoded byte | |----------|-----------|--------|-----------|--------------| | t | U+0074 | Ŵ | U+0174 | 0x74 | | e | U+0065 | ť | U+0165 | 0x65 | An attacker can substitute every character in payloadType with a Unicode variant…
Recommended action: Upgrade to 3.2.1 or later, then redeploy and verify.A vendor fix does not resolve your finding until you verify it in your own systems.