CVE-2026-75870
N/A
Summary
Punk versions before 0.18 for Perl allow session cookie forgery via an empty default HMAC key when a session is declared without a secret.
The session keyword freezes its options onto the application as given: it does not require a secret, warn, or refuse to start when one is absent. The cookie read and the write-back both default that key to the empty string, so a declaration with no secret option, or with an undefined or empty one, signs and verifies with a zero-length HMAC-SHA256 key.
An attacker who knows the cookie format can then mint one offline carrying any contents the session holds, such as a user identifier or a role. Nothing marks the misconfiguration at runtime: cookies are well formed and sessions round-trip as expected.
Affected Software
| Vendor | Product | Version Range | Status |
|---|---|---|---|
0 < 0.18 | affected |
Weaknesses
- CWE-1394: CWE-1394 Use of Default Cryptographic Key
Workarounds
For deployments that cannot upgrade to 0.18, declare the session keyword with a non-empty secret. The secret keyword fails closed, so sourcing the key through it turns a missing configuration path or an unset environment variable into a startup error.
ADP Enrichment
CVE Program Container
Additional References
References
- https://metacpan.org/release/LNATION/Punk-0.17/source/include/punk/punk_session.h
- https://metacpan.org/release/LNATION/Punk-0.17/view/lib/Punk.pm
- https://metacpan.org/release/LNATION/Punk-0.18/source/Changes
Feedback
Was this page helpful?
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.