JSON::XS versions from 3.0 before 4.05 for Perl read freed stack memory when a FREEZE result's serialisation grows the Perl stack under allow_tags in encode_rv
Summary
| CVE | CVE-2026-129115 |
|---|---|
| State | PUBLISHED |
| Assigner | CPANSec |
| Source Priority | CVE Program / NVD first with legacy fallback |
| Published | 2026-11-14 12:17:44 UTC |
| Updated | 2026-11-14 12:17:44 UTC |
| Description | JSON::XS versions from 3.0 before 4.05 for Perl read freed stack memory when a FREEZE result's serialisation grows the Perl stack under allow_tags in encode_rv. With allow_tags, an object's FREEZE method is called in list context and each returned value is encoded through a saved Perl stack pointer. When encoding a returned value calls back into Perl, through TO_JSON under convert_blessed or another FREEZE, and that callback grows the stack, the stack is reallocated while the saved pointer still refers to the freed block. Encoding such objects reads freed memory, and encode can return undef without an error. |
Risk And Classification
Problem Types: CWE-416 | CWE-416 CWE-416 Use After Free
There are no known software configurations currently associated with this CVE in NVD or the CVE Program record.
References
| Reference | Source | Link | Tags |
|---|---|---|---|
| metacpan.org/release/MLEHMANN/JSON-XS-4.05/changes | 9b29abf9-4ab0-4765-b253-1875cd9b441e | metacpan.org | |
| CVE Program record | CVE.ORG | www.cve.org | canonical |
| NVD vulnerability detail | NVD | nvd.nist.gov | canonical, analysis |
Vendor Comments And Credit
Discovery Credit
CNA: Albert Gierlach (rivit) (en)
Additional Advisory Data
| Source | Time | Event |
|---|---|---|
| CNA | 2026-11-13T00:00:00.000Z | Version 4.05 released with fix. |
Solutions
CNA: Upgrade to JSON-XS 4.05 or later.
There are currently no legacy QID mappings associated with this CVE.