← All vulnerabilities
CVE-2026-89320

HmacShaCryptor.Hash never hashes its input — returns constant HMAC_K("") for all inputs, voiding CBC-HMAC JWE integrity

Published
Last modified
Status
published
Known exploitation
Not listed in CISA KEV
Public exploit
None on Exploit-DB

Summary

The affected software is gose, a Go library for JSON Object Signing and Encryption, specifically its AES-CBC-HMAC JSON Web Encryption (JWE) functionality. A flaw in its HMAC hashing routine meant the authentication tag no longer depended on the message, so encrypted data could be modified or forged without detection.

Summarized by anthropic/claude-haiku-5.5. Verify details against the original sources.

Read the original description

`HmacShaCryptor.Hash` never hashed its input. For any input it returned `HMAC_K("")` — the MAC of the empty message under the key. Every AES-CBC-HMAC JWE produced or verified by gose therefore carried an authentication tag that is constant per key and independent of the message, removing ciphertext integrity entirely.

Affected versions

  • github.com/ThalesGroup/gose

    From 0.9.0 · through 0.13.0-rc1

  • github.com/eclipse-keypont/gose

    fixed in 1.0.0-rc1

References 1

GitHub · eclipse-keypont/gose