{"id":"CVE-2026-75870","aliases":["EUVD-2026-64294","GHSA-3679-xr9w-9625"],"status":"published","title":"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","description":"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.\n\nThe 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.\n\nAn 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.","severity":{"version":"3.1","score":9.1,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N","level":"critical","assessor":"adp","from":"cve"},"epss":{"day":"2026-11-10","score":0.00495,"percentile":0.42818,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":false},"cwes":["CWE-1394"],"published":"2026-08-22T13:35:58Z","modified":"2026-10-14T13:10:00Z","references":[{"url":"https://metacpan.org/release/LNATION/Punk-0.17/source/include/punk/punk_session.h","tags":["technical-description"]},{"url":"https://metacpan.org/release/LNATION/Punk-0.17/view/lib/Punk.pm","tags":["technical-description"]},{"url":"https://metacpan.org/release/LNATION/Punk-0.18/source/Changes","tags":["release-notes"]},{"url":"http://www.openwall.com/lists/oss-security/2026/08/22/5"},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-75870"},{"url":"https://github.com/advisories/GHSA-3679-xr9w-9625"}],"sources":{"cve":[{"id":"CVE-2026-75870","title":"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","description":"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.\n\nThe 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.\n\nAn 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.","status":"published","published":"2026-08-22T13:35:58.346Z","modified":"2026-08-25T19:28:36.443Z","cvss":[{"version":"3.1","score":9.1,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N","level":"critical","assessor":"adp"}],"cwes":["CWE-1394"],"updated_at":"2026-11-02T14:20:07.260654Z"}],"euvd":[{"id":"EUVD-2026-64294","description":"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.\n\nThe 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.\n\nAn 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.","status":"published","published":"2026-08-22T13:35:58Z","modified":"2026-08-25T19:28:36Z","cvss":[{"version":"3.1","score":9.1,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N","level":"critical"}],"updated_at":"2026-11-02T18:01:31.718552Z"}],"ghsa":[{"id":"GHSA-3679-xr9w-9625","title":"Punk versions before 0.18 for Perl allow session cookie forgery via an empty default HMAC key...","description":"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.\n\nThe 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.\n\nAn 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.","status":"published","published":"2026-08-22T15:31:03Z","modified":"2026-08-25T21:31:22Z","cvss":[{"version":"3.1","score":9.1,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N","level":"critical"}],"cwes":["CWE-1394"],"updated_at":"2026-11-02T15:10:58.645101Z"}],"nvd":[{"id":"CVE-2026-75870","description":"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.\n\nThe 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.\n\nAn 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.","status":"published","published":"2026-08-22T14:16:33.813Z","modified":"2026-10-14T13:10:00.187Z","cvss":[{"version":"3.1","score":9.1,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N","level":"critical","assessor":"secondary"}],"cwes":["CWE-1394"],"updated_at":"2026-11-02T14:12:40.665005Z"}]}}
