IT SBIT Services
Schneeberger
DEEN
CVE tracker

Cpanel::JSON::XS: Use-after-free in threads due to shared Perl scalars

CVE-2026-110681High 8.1

← All vulnerabilities

Summary

Cpanel::JSON::XS for Perl before version 4.80 copies a parser object into a new ithread without duplicating the callback and buffer scalars that belong to the parent interpreter. The child thread then uses and frees memory the parent may already have freed, which can call freed callbacks, corrupt reference counts and crash the process. The problem occurs when a parser is created before a thread starts and used inside that thread. The CVSS vector requires low privileges and no user interaction, and rates the impact on integrity and availability as high.

Affected

  • Cpanel-JSON-XS versions 0 to before 4.80 (per the CVE record)
  • Only Perl programs that use ithreads and share a parser object created before a thread starts are affected

Fixed in

  • Cpanel-JSON-XS 4.80 or later

Workaround

  • No vendor workaround is listed. Upgrading to 4.80 or later is the only remedy in the sources.
  • Until upgrading, create the parser inside each thread instead of before it starts.
  • If threads are not needed, disable them in the application.

Exploitation

  • CISA SSVC: exploitation none, automatable yes, technical impact total.
  • No public exploitation is reported in the sources.

Our recommendation

  • Check whether Cpanel::JSON::XS is installed and which version is in use, including indirect use through JSON.pm with the Cpanel backend.
  • Upgrade to Cpanel::JSON::XS 4.80 or later, or to a distribution package that includes the fix.
  • Until then, avoid sharing parser objects across thread creation and monitor application crashes.

Public exploits

PoC-in-GitHub, Metasploit and Exploit-DB list nothing for this CVE.

Research sources

Researched and written up in English and German by an AI (Claude by Anthropic) based on NVD, CISA, EPSS and the sources listed. The vendor information is authoritative. Researched on 1 Nov 2026, 18:43.

Original description (NVD)

Cpanel::JSON::XS versions before 4.80 for Perl use the parent interpreter's scalars from a parser object cloned into a new ithread. A parser object holds its callbacks and its incremental parse buffer as raw scalar pointers. When a thread is created, these are copied into the new interpreter unchanged, so the child's parser uses, and later frees, scalars that belong to the parent and may already have been freed there. A parser created before a thread starts and used inside it can call freed callbacks, corrupt reference counts and crash the process.

NVD references (2)

Sources

The tracker combines official, freely usable data sources – updated continuously:

This product uses data from the NVD API but is not endorsed or certified by the NVD. EPSS data © FIRST.org.

Affected? We can help.

We check whether your systems are affected, install updates and close the gap – continuously with the System Health Checker if you wish.