Description
Data::SortedSet::Shared versions before 0.03 for Perl allow an out-of-bounds read via unvalidated node indices in the rank and min/max query paths.

The attach-time validator ss_validate_header bounds only the root index against the node pool (node_capacity). The order-statistics and min/max queries then follow children[], leftmost and rightmost node indices read raw from the mmap'd segment without bounding them against node_capacity. A full structural check (ss_validate_tree) exists but runs only via an explicit validate method, not on attach.

A local peer that can write the backing file can leave the header valid while poisoning the tree links, so the next rank, min or max query dereferences an out-of-bounds node index, reading adjacent memory or crashing the process.
Published: 2026-07-21
Score: 9.1 Critical
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

Data::SortedSet::Shared implements rank and min/max queries against a memory‑mapped backing file. It bounds only the root node index before traversing child pointers; the child node indices are read directly from the file without validating them against the pool size. An attacker who can alter the backing file may corrupt the tree links so that subsequent queries dereference an out‑of‑bounds index, causing a read of adjacent memory or a process crash. The CVE description specifies the out‑of‑bounds read; whether exposed data is sensitive is inferred from the fact that the read may access arbitrary memory.

Affected Systems

Any installation of the EGOR:Data::SortedSet::Shared module for Perl running a version earlier than 0.03 is affected. Applications that use this module to maintain ordered sets backed by the shared file are at risk if the module is attached without the later safeguards.

Risk and Exploitability

The vulnerability carries a CVSS score of 9.1, indicating a severe weakness. The EPSS score is listed as <1%, suggesting exploitation is currently rare, but the flaw only requires an ability to write to the module’s shared backing file, which is a local privilege. The vulnerability is not yet listed in the CISA KEV catalog. An attacker who controls write access can trigger an out‑of‑bounds read or force a crash, potentially exposing memory contents or causing denial of service. The lack of bounds checks in the query paths is the root cause of the risk.

Generated by OpenCVE AI on August 4, 2026 at 17:52 UTC.

Remediation

Vendor Solution

Upgrade to Data::SortedSet::Shared 0.03 or later, which bounds every node index against the node pool before dereferencing it.


Vendor Workaround

For deployments that cannot upgrade to 0.03, place the backing file in a directory writable only by the owning user, so a local peer cannot tamper with the tree the query paths traverse.


OpenCVE Recommended Actions

  • Upgrade to Data::SortedSet::Shared 0.03 or later, which validates all node indices before dereferencing them.
  • Restrict write permissions on the module’s backing file to the owning user only, so that a local peer cannot tamper with the tree.
  • When attaching to the module, explicitly call its validation routine (ss_validate_tree) before performing queries to detect any corrupted structures.

Generated by OpenCVE AI on August 4, 2026 at 17:52 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Thu, 23 Jul 2026 21:45:00 +0000

Type Values Removed Values Added
First Time appeared Egor
Egor data::sortedset::shared
Vendors & Products Egor
Egor data::sortedset::shared

Wed, 22 Jul 2026 20:30:00 +0000

Type Values Removed Values Added
Metrics cvssV3_1

{'score': 9.1, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:H'}

ssvc

{'options': {'Automatable': 'yes', 'Exploitation': 'none', 'Technical Impact': 'partial'}, 'version': '2.0.3'}


Tue, 21 Jul 2026 19:15:00 +0000

Type Values Removed Values Added
Description Data::SortedSet::Shared versions before 0.03 for Perl allow an out-of-bounds read via unvalidated node indices in the rank and min/max query paths. The attach-time validator ss_validate_header bounds only the root index against the node pool (node_capacity). The order-statistics and min/max queries then follow children[], leftmost and rightmost node indices read raw from the mmap'd segment without bounding them against node_capacity. A full structural check (ss_validate_tree) exists but runs only via an explicit validate method, not on attach. A local peer that can write the backing file can leave the header valid while poisoning the tree links, so the next rank, min or max query dereferences an out-of-bounds node index, reading adjacent memory or crashing the process.
Title Data::SortedSet::Shared versions before 0.03 for Perl allow an out-of-bounds read via unvalidated node indices in the rank and min/max query paths
Weaknesses CWE-125
References

Subscriptions

Egor Data::sortedset::shared
cve-icon MITRE

Status: PUBLISHED

Assigner: CPANSec

Published:

Updated: 2026-07-22T19:18:01.325Z

Reserved: 2026-07-02T16:24:17.912Z

Link: CVE-2026-59140

cve-icon Vulnrichment

Updated: 2026-07-22T19:17:25.615Z

cve-icon NVD

No data.

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-08-04T18:00:14Z

Weaknesses