CVE-2026-85644: CWE-843 Access of Resource Using Incompatible Type ('Type Confusion')
XS::Parse::Infix versions from 0.40 through 0.49 for Perl treat a number as an array reference. The wrapper function XS::Parse::Infix generates for a list-associative infix operator checks whether arguments are array references, but it tests using SvRV() rather than SvROK(). SvRV() reads a union slot that only holds a referent once SvROK(sv) is true, so the guard never validates that it is a reference. For an IV or NV that slot holds the number itself, SvRV() returns the caller's value and SvTYPE() dereferences it at offset 12. This will generally result in a segmentation fault. An application that hands the wrapper a list built from decoded input (for example, from JSON) lets whoever supplies a number in that list choose the address that the interpreter dereferences. An ordinary string's byte 12 is rarely SVt_PVAV so the guard croaks by luck, but an attacker-crafted string carrying 0x0b there passes, and the buffer is then used as an AV head, with AvARRAY taken from bytes 16-23 and its entries pushed onto the Perl stack as live SVs. A simple proof-of-concept uses the zip operator: use Syntax::Operator::Zip 'zip'; my @args = ([1], 2); zip(@args);
AI Analysis
Technical Summary
XS::Parse::Infix versions 0.40 through 0.49 for Perl contain a type confusion vulnerability due to improper reference checking in the wrapper function generated for list-associative infix operators. The function uses SvRV() to check if arguments are array references instead of the correct SvROK(), causing it to treat numbers as array references. This leads to dereferencing invalid memory locations, typically resulting in segmentation faults. Attackers supplying crafted input can influence the address dereferenced, potentially causing crashes or other unintended behavior. The vulnerability is demonstrated with the zip operator and specific argument lists.
Potential Impact
The vulnerability can cause segmentation faults and crashes in applications using affected versions of XS::Parse::Infix. By supplying crafted input, an attacker may influence memory dereferencing, which could lead to denial of service or potentially other undefined behaviors. There is no confirmed evidence of exploitation in the wild or further impact such as code execution.
Mitigation Recommendations
Patch status is not yet confirmed — check the vendor advisory for current remediation guidance. Until a fix is available, avoid processing untrusted input with affected versions of XS::Parse::Infix or apply application-level input validation to prevent passing numbers where array references are expected.
CVE-2026-85644: CWE-843 Access of Resource Using Incompatible Type ('Type Confusion')
Description
XS::Parse::Infix versions from 0.40 through 0.49 for Perl treat a number as an array reference. The wrapper function XS::Parse::Infix generates for a list-associative infix operator checks whether arguments are array references, but it tests using SvRV() rather than SvROK(). SvRV() reads a union slot that only holds a referent once SvROK(sv) is true, so the guard never validates that it is a reference. For an IV or NV that slot holds the number itself, SvRV() returns the caller's value and SvTYPE() dereferences it at offset 12. This will generally result in a segmentation fault. An application that hands the wrapper a list built from decoded input (for example, from JSON) lets whoever supplies a number in that list choose the address that the interpreter dereferences. An ordinary string's byte 12 is rarely SVt_PVAV so the guard croaks by luck, but an attacker-crafted string carrying 0x0b there passes, and the buffer is then used as an AV head, with AvARRAY taken from bytes 16-23 and its entries pushed onto the Perl stack as live SVs. A simple proof-of-concept uses the zip operator: use Syntax::Operator::Zip 'zip'; my @args = ([1], 2); zip(@args);
AI-Powered Analysis
Machine-generated threat intelligence
Technical Analysis
XS::Parse::Infix versions 0.40 through 0.49 for Perl contain a type confusion vulnerability due to improper reference checking in the wrapper function generated for list-associative infix operators. The function uses SvRV() to check if arguments are array references instead of the correct SvROK(), causing it to treat numbers as array references. This leads to dereferencing invalid memory locations, typically resulting in segmentation faults. Attackers supplying crafted input can influence the address dereferenced, potentially causing crashes or other unintended behavior. The vulnerability is demonstrated with the zip operator and specific argument lists.
Potential Impact
The vulnerability can cause segmentation faults and crashes in applications using affected versions of XS::Parse::Infix. By supplying crafted input, an attacker may influence memory dereferencing, which could lead to denial of service or potentially other undefined behaviors. There is no confirmed evidence of exploitation in the wild or further impact such as code execution.
Mitigation Recommendations
Patch status is not yet confirmed — check the vendor advisory for current remediation guidance. Until a fix is available, avoid processing untrusted input with affected versions of XS::Parse::Infix or apply application-level input validation to prevent passing numbers where array references are expected.
Technical Details
- Data Version
- 5.2
- Assigner Short Name
- CPANSec
- Date Reserved
- 2026-09-04T12:35:22.410Z
- State
- PUBLISHED
Threat ID: 6aba96ccf7a7c54106ee8aec
Added to database: 09/28/2026, 16:33:16 UTC
Last enriched: 09/28/2026, 16:47:58 UTC
Last updated: 09/29/2026, 02:52:33 UTC
Views: 14
Community Reviews
0 reviewsCrowdsource mitigation strategies, share intel context, and vote on the most helpful responses. Sign in to add your voice and help keep defenders ahead.
Want to contribute mitigation steps or threat intel context? Sign in or create an account to join the community discussion.
Actions
Updates to AI analysis require Pro Console access. Upgrade inside Console → Billing.
Need more coverage?
Upgrade to Pro Console for AI refresh and higher limits.
For incident response and remediation, OffSeq services can help resolve threats faster.
Latest Threats
Check if your credentials are on the dark web
Instant breach scanning across billions of leaked records. Free tier available.