CVE-2026-124541

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

Published Nov 14, 2026 CVSS n/a EPSS n/a KEV · Not listed
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.

Remediation

Vendor Solution

Upgrade to JSON-XS 4.05 or later.

Tracking

Sign in to view the affected projects.

Advisories

No advisories available
History
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

Subscriptions

No data.

Weaknesses

Sources

Status
PUBLISHED
Assigner
CPANSec
Published
Updated
Nov 14, 2026, 11:53 AM
Reserved
Nov 8, 2026, 12:32 PM
Status
Received
Published
Nov 14, 2026, 12:17 PM
Modified
Nov 14, 2026, 12:17 PM