Skip to content
Heist/ feed
Unrated

XS::Parse::Infix versions from 0.40 through 0.49 for Perl treat a number as an array reference

Type: advisorySource: Official CVE List1 source record

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);

Announced Group revision 1
Original source ↗

CVE-2026-85644

Primary source · Revision 1

Imported from structured advisory data. Source references identify upstream records or fields; verify affected versions and your deployed configuration.

Security context

Source reference: cve:CVE-2026-85644

Structured affected-version data

Original package identities and version rules from this source.

[
  {
    "modules": [
      "XS::Parse::Infix"
    ],
    "versions": [
      {
        "status": "affected",
        "version": "0.40",
        "versionType": "custom",
        "lessThanOrEqual": "0.49"
      }
    ],
    "packageURL": "pkg:cpan/XS-Parse-Keyword",
    "packageName": "XS-Parse-Keyword",
    "programFiles": [
      "src/infix.c"
    ],
    "collectionURL": "https://cpan.org/modules",
    "defaultStatus": "unaffected",
    "programRoutines": [
      {
        "name": "pp_push_defav_with_count"
      }
    ]
  }
]
Related CVEs
CVE-2026-85644

Source reference: /cveMetadata/cveId

Publisher severity

No explicit severity was provided.

Event
#4869 · Revision 1
Added to Heist Feed
Publisher date
Read the original announcement