CVE-2026-124536

JSON::XS versions before 4.05 for Perl allow memory exhaustion by buffering incremental input past max_size after a NUL byte in incr_parse

Published Nov 14, 2026 CVSS n/a EPSS n/a KEV · Not listed
Description
JSON::XS versions before 4.05 for Perl allow memory exhaustion by buffering incremental input past max_size after a NUL byte in incr_parse.

The parser appends each chunk to its buffer and compares max_size with how far it has progressed, not with the buffer length. It treats a NUL byte as the end of the input, so a NUL within the first max_size bytes keeps it short of the limit. The buffer keeps growing, and incr_skip cannot remove the NUL.

A peer streaming data to an incr_parse consumer can exhaust process memory regardless of max_size.

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 allow memory exhaustion by buffering incremental input past max_size after a NUL byte in incr_parse. The parser appends each chunk to its buffer and compares max_size with how far it has progressed, not with the buffer length. It treats a NUL byte as the end of the input, so a NUL within the first max_size bytes keeps it short of the limit. The buffer keeps growing, and incr_skip cannot remove the NUL. A peer streaming data to an incr_parse consumer can exhaust process memory regardless of max_size.
Title JSON::XS versions before 4.05 for Perl allow memory exhaustion by buffering incremental input past max_size after a NUL byte in incr_parse
Weaknesses CWE-770
References

Subscriptions

No data.

Weaknesses

Sources

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