{"id":"CVE-2026-110680","kind":"vulnerability","aliases":["CVE-2026-110680"],"related":[],"title":"Cpanel::JSON::XS: out-of-bounds write during canonical hash encoding can crash Perl","description":"Cpanel::JSON::XS versions from 4.20 before 4.80 for Perl write out of bounds when a tied or shared hash grows during canonical encoding in encode_hv.\n\nWith canonical, the keys of a tied or threads::shared hash are counted before a second pass collects them for sorting. The encoder uses a fixed 64-entry stack array or, for larger counts, a heap array sized from the first pass. If the second pass exceeds that capacity, entries are written out of bounds before the counts are compared.\n\nThis corrupts stack or heap memory and can crash the process.","summary":"Cpanel::JSON::XS versions 4.20 through 4.79 for Perl write past the end of a buffer when a tied or shared hash changes size during canonical encoding. The memory corruption can crash the process, and the sources do not say whether it allows code execution.","severity":"unknown","cvss":null,"epss":null,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["cpanel-json-xs","package","perl","threads"],"not_affected_if":["no-canonical-encoding","no-tied-or-shared-hashes","version-4.80-or-later"],"how_to_check":"- Run `perl -MCpanel::JSON::XS -e 'print $Cpanel::JSON::XS::VERSION'` and check whether the result is between `4.20` and `4.79`\n- Search dependency files for `Cpanel::JSON::XS` to find where it is used with canonical encoding on tied or threads::shared hashes","fix":"- Upgrade Cpanel::JSON::XS to `4.80` or later\n- Until upgraded, avoid canonical encoding of tied or threads::shared hashes (unknown whether this is a complete workaround)","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:47+00:00","updated_at":"2026-10-25T05:10:47+00:00","category":"package","confidence":0.6,"triage":{"at":"2026-10-25T05:10:47Z","model":"claude-haiku-5-5","output":{"fix":"- Upgrade Cpanel::JSON::XS to `4.80` or later\n- Until upgraded, avoid canonical encoding of tied or threads::shared hashes (unknown whether this is a complete workaround)","reach":"unknown","title":"Cpanel::JSON::XS: out-of-bounds write during canonical hash encoding can crash Perl","impact":"medium","summary":"Cpanel::JSON::XS versions 4.20 through 4.79 for Perl write past the end of a buffer when a tied or shared hash changes size during canonical encoding. The memory corruption can crash the process, and the sources do not say whether it allows code execution.","category":"package","nicknames":[],"who_cares":["perl","cpanel-json-xs","threads"],"confidence":0.6,"needs_auth":"unknown","worst_case":"Memory corruption crashes the Perl process, code execution unknown","analyst_note":"Check the NVD entry and the upstream Cpanel::JSON::XS changelog to confirm whether the overflow is exploitable beyond a crash and what the CVSS score is.","how_to_check":"- Run `perl -MCpanel::JSON::XS -e 'print $Cpanel::JSON::XS::VERSION'` and check whether the result is between `4.20` and `4.79`\n- Search dependency files for `Cpanel::JSON::XS` to find where it is used with canonical encoding on tied or threads::shared hashes","needs_analyst":true,"not_affected_if":["version-4.80-or-later","no-canonical-encoding","no-tied-or-shared-hashes"],"who_is_affected":"Applications that use Cpanel::JSON::XS in the 4.20 to 4.79 range and encode hashes with canonical output while the hash is tied or shared between threads. Programs that only encode plain hashes, or do not use canonical encoding, are not described as affected. Teams on 4.80 or later can skip it.","user_interaction":"unknown","needs_special_setup":"yes","severity_if_unknown":"unknown"},"cost_usd":0.000692,"input_tokens":3408,"output_tokens":702,"severity_before":"unknown"},"analyst_status":null,"analyst_note":null,"search":"'-110680':18A,21A '-2026':17A,20A '4.20':33B,79C '4.79':35B '4.80':81C '64':127C 'allow':71B 'array':130C,137C 'bound':7A,87C,155C 'buffer':44B 'canon':10A,54B,96C,102C 'capac':149C 'chang':51B 'code':72B 'collect':118C 'compar':160C 'corrupt':58B,162C 'count':113C,134C,158C 'cpanel':1A,23B,29B,74C 'cpanel-json-x':22B 'crash':14A,60B,169C 'cve':16A,19A 'encod':12A,55B,97C,99C,123C 'end':41B 'entri':128C,150C 'exceed':147C 'execut':73B 'first':141C 'fix':126C 'grow':94C 'hash':11A,50B,93C,111C 'heap':136C,165C 'hv':100C 'json':2A,24B,30B,75C 'key':104C 'larger':133C 'memori':57B,166C 'out-of-bound':4A 'packag':26B 'pass':117C,142C,146C 'past':39B 'perl':15A,27B,37B,83C 'process':62B,171C 'say':68B 'second':116C,145C 'share':49B,92C,110C 'size':52B,138C 'sort':121C 'sourc':65B 'stack':129C,163C 'thread':28B,109C 'tie':47B,90C,107C 'use':124C 'version':32B,77C 'whether':69B 'write':8A,38B,84C 'written':152C 'xs':3A,25B,31B,76C","nicknames":[],"mitigations":[],"who_affected":"Applications that use Cpanel::JSON::XS in the 4.20 to 4.79 range and encode hashes with canonical output while the hash is tied or shared between threads. Programs that only encode plain hashes, or do not use canonical encoding, are not described as affected. Teams on 4.80 or later can skip it.","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-110680","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-110680","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"}