CVE-2026-124541 PUBLISHED

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

Assigner: CPANSec
Reserved: 08.11.2026 Published: 14.11.2026 Updated: 14.11.2026

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.

Product Status

Package Collection https://cpan.org/modules
Package Name JSON-XS
Versions Default: unaffected
  • affected from 0 to 4.05 (excl.)

Solutions

Upgrade to JSON-XS 4.05 or later.

References

Problem Types

  • CWE-401 Missing Release of Memory after Effective Lifetime CWE