{"id":"CVE-2026-110684","kind":"vulnerability","aliases":["CVE-2026-110684"],"related":[],"title":"Cpanel::JSON::XS: encoding stringify values leaks memory until the process exhausts memory","description":"Cpanel::JSON::XS versions from 3.0202 before 4.80 for Perl leak memory and retain overloaded objects when encoding values as strings in encode_stringify.\n\nencode_stringify writes a value in its string form under allow_stringify, under convert_blessed for objects without TO_JSON, and under allow_bignum. For an array or hash object with a \"\" overload, and from 4.20 a scalar object, it takes an extra reference that is never released, so the object and everything it references are never freed. From 4.10 it also never frees its copy of the string.\n\nRepeatedly encoding data that contains such values grows process memory without bound.","summary":"Cpanel::JSON::XS versions from 3.0202 before 4.80 never release references to overloaded objects and string copies when encoding values as strings. Repeatedly encoding such data grows process memory without bound, which can exhaust memory and crash the service.","severity":"low","cvss":null,"epss":null,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["cpanel-json-xs","long-running-services","package","perl"],"not_affected_if":["no-stringify-options","version-4.80-or-later"],"how_to_check":"- Run `perl -MCpanel::JSON::XS -e 'print $Cpanel::JSON::XS::VERSION'` and check whether the version is at least `4.80`\n- Check `cpanfile`, `Makefile.PL`, or `cpanm --info Cpanel::JSON::XS` for the pinned version\n- Look for use of `allow_stringify`, `convert_blessed`, or `allow_bignum` on long-running encoders","fix":"- Upgrade Cpanel::JSON::XS to `4.80` or later\n- Restart long-running Perl processes after upgrading so the old module is unloaded","status":"open","published_at":"2026-10-19T19:17:21+00:00","first_seen_at":"2026-10-23T21:57:18+00:00","triaged_at":"2026-10-25T05:10:46+00:00","updated_at":"2026-10-25T05:10:46+00:00","category":"package","confidence":0.6,"triage":{"at":"2026-10-25T05:10:46Z","model":"claude-haiku-5-5","output":{"fix":"- Upgrade Cpanel::JSON::XS to `4.80` or later\n- Restart long-running Perl processes after upgrading so the old module is unloaded","reach":"unknown","title":"Cpanel::JSON::XS: encoding stringify values leaks memory until the process exhausts memory","impact":"low","summary":"Cpanel::JSON::XS versions from 3.0202 before 4.80 never release references to overloaded objects and string copies when encoding values as strings. Repeatedly encoding such data grows process memory without bound, which can exhaust memory and crash the service.","category":"package","nicknames":[],"who_cares":["perl","cpanel-json-xs","long-running-services"],"confidence":0.6,"needs_auth":"unknown","worst_case":"Process memory grows until the service runs out of memory","analyst_note":"","how_to_check":"- Run `perl -MCpanel::JSON::XS -e 'print $Cpanel::JSON::XS::VERSION'` and check whether the version is at least `4.80`\n- Check `cpanfile`, `Makefile.PL`, or `cpanm --info Cpanel::JSON::XS` for the pinned version\n- Look for use of `allow_stringify`, `convert_blessed`, or `allow_bignum` on long-running encoders","needs_analyst":false,"not_affected_if":["version-4.80-or-later","no-stringify-options"],"who_is_affected":"Perl applications that use Cpanel::JSON::XS in versions 3.0202 through 4.79 and encode data with the allow_stringify, convert_blessed, or allow_bignum options, especially objects with a \"\" overload. Long-running workers and servers that encode many such values over time are the ones that grow in memory. Short-lived scripts and applications that never encode these values are unlikely to be affected.","user_interaction":"no","needs_special_setup":"yes","severity_if_unknown":"low"},"cost_usd":0.000674,"input_tokens":3427,"output_tokens":663,"severity_before":"unknown"},"analyst_status":null,"analyst_note":null,"search":"'-110684':16A,19A '-2026':15A,18A '3.0202':35B,74C '4.10':152C '4.20':128C '4.80':37B,76C 'allow':103C,115C 'also':154C 'array':119C 'bignum':116C 'bless':107C 'bound':60B,173C 'contain':166C 'convert':106C 'copi':46B,158C 'cpanel':1A,21B,30B,69C 'cpanel-json-x':20B 'crash':66B 'cve':14A,17A 'data':55B,164C 'encod':4A,48B,53B,86C,91C,93C,163C 'everyth':145C 'exhaust':12A,63B 'extra':135C 'form':101C 'free':156C 'freed':150C 'grow':56B,169C 'hash':121C 'json':2A,22B,31B,70C,112C 'leak':7A,79C 'long':25B 'long-running-servic':24B 'memori':8A,13A,58B,64B,80C,171C 'never':38B,139C,149C,155C 'object':43B,84C,109C,122C,131C,143C 'overload':42B,83C,125C 'packag':28B 'perl':29B,78C 'process':11A,57B,170C 'refer':40B,136C,147C 'releas':39B,140C 'repeat':52B,162C 'retain':82C 'run':26B 'scalar':130C 'servic':27B,68B 'string':45B,51B,89C,100C,161C 'stringifi':5A,92C,94C,104C 'take':133C 'valu':6A,49B,87C,97C,168C 'version':33B,72C 'without':59B,110C,172C 'write':95C 'xs':3A,23B,32B,71C","nicknames":[],"mitigations":[],"who_affected":"Perl applications that use Cpanel::JSON::XS in versions 3.0202 through 4.79 and encode data with the allow_stringify, convert_blessed, or allow_bignum options, especially objects with a \"\" overload. Long-running workers and servers that encode many such values over time are the ones that grow in memory. Short-lived scripts and applications that never encode these values are unlikely to be affected.","tier":"C","verified":{},"analyst_revisit_at":null,"first_public_at":"2026-10-19T19:17:21+00:00","kev":null,"cvss_vector":null,"cvss_by":null,"poc_count":0,"sources":[{"source":"nvd","external_id":"CVE-2026-110684","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-110684","severity":null,"published_at":"2026-10-19T19:17:21+00:00","modified_at":"2026-10-19T20:50:17+00:00","first_seen_at":"2026-10-23T21:57:18+00:00","fetched_at":"2026-10-23T22:28:57+00:00","note":null}],"documents":[],"notice":"Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai"}