JSON::XS versions before 4.05 for Perl leak the decoded part of a rejected long string in decode_str.

A string is decoded through a fixed-size buffer (16 KiB in 4.04), and each time the buffer fills its contents move into a new scalar. Nothing frees that scalar when the string is then rejected for a control character, an invalid escape, malformed UTF-8 or the end of the input.

A process that keeps running after a failed decode retains the decoded part of each rejected string, with its size chosen by the sender. Repeated requests exhaust process memory.

Project Subscriptions

No data.

Advisories

No advisories yet.

Fixes

Solution

Upgrade to JSON-XS 4.05 or later.


Workaround

No workaround given by the vendor.

History

Sat, 14 Nov 2026 12:00:00 +0000

Type Values Removed Values Added
Description JSON::XS versions before 4.05 for Perl leak the decoded part of a rejected long string in decode_str. A string is decoded through a fixed-size buffer (16 KiB in 4.04), and each time the buffer fills its contents move into a new scalar. Nothing frees that scalar when the string is then rejected for a control character, an invalid escape, malformed UTF-8 or the end of the input. A process that keeps running after a failed decode retains the decoded part of each rejected string, with its size chosen by the sender. Repeated requests exhaust process memory.
Title JSON::XS versions before 4.05 for Perl leak the decoded part of a rejected long string in decode_str
Weaknesses CWE-401
References

Projects

Sign in to view the affected projects.

cve-icon MITRE

Status: PUBLISHED

Assigner: CPANSec

Published:

Updated: 2026-11-14T11:53:12.301Z

Reserved: 2026-11-08T12:32:39.559Z

Link: CVE-2026-124541

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-11-14T12:17:43.777

Modified: 2026-11-14T12:17:43.777

Link: CVE-2026-124541

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-11-14T20:15:08Z

Weaknesses