Skip to main content

Data::Intern::Shared CVE-2026-59145

| EUVDEUVD-2026-46366 CRITICAL
Out-of-bounds Read (CWE-125)
2026-07-21 CPANSec GHSA-wwq3-v3pc-8w9p
9.1
CVSS 3.1 · Vendor: CPANSec
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Gain local write access to backing file
  2. Delivery
    Poison slot/reverse/arena index, keep header valid
  3. Exploit
    Victim calls id_of/intern/string lookup
  4. Execution
    si_idx_find dereferences chain out of bounds
  5. Persist
    string() returns file-controlled bytes
  6. Impact
    Disclose adjacent process memory

Vulnerability Assessment

Weakness
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Bounds checking, read limits
MITRE ATT&CK

1 technique across 1 tactic: Collection

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Exploitation requires local write access to the module's shared memory-mapped backing file: the attacker must be a local peer able to modify that segment while leaving si_validate_header's header checks satisfied (valid magic, version, offsets, total_size, count, arena_used) and poison one of the unvalidated values - a slot id, a reverse arena offset, or an arena record length prefix. Exploitation is also gated on a victim process subsequently calling id_of, intern, or a string lookup on the tampered table, so a live consumer of the shared segment must perform a lookup after the file is poisoned. Limiting factors: no network reachability (the published AV:N is contradicted by the 'local peer that can write the backing file' requirement), the attacker needs pre-existing write permission to the file, and impact is confined to reads of adjacent memory rather than code execution or integrity loss.

Impact

The signals conflict sharply and this is the most important caveat for triage. The published CVSS 9.1 vector is AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:H, implying remote unauthenticated network exploitation, but the description explicitly requires 'a local peer that can write the backing file' - a local, authenticated-write prerequisite that is inconsistent with AV:N/PR:N. Treat the network/unauthenticated framing as unreliable; the realistic vector is local with write access to the shared segment. Supporting a lower real-world priority: EPSS is only 0.17% (7th percentile), the vulnerability is not in CISA KEV, and no public exploit code is identified. Technical impact is genuine (adjacent process memory disclosure, CWE-125) but gated behind the ability to tamper with the mmap'd file, which typically means the attacker already shares a trust boundary with the victim process. Net assessment: a legitimate confidentiality bug worth patching, but not an internet-facing, mass-exploitable emergency despite the 9.1 headline score.

Exploit ScenarioDerived

A low-privileged local user who shares write access to the interning module's backing file leaves the header structurally valid but overwrites a slot id, a reverse offset, or an arena length prefix with attacker-chosen values. When a higher-privileged process using Data::Intern::Shared performs an id_of, intern, or string lookup, si_idx_find follows the poisoned arena[reverse[slots[i].id]] chain out of bounds and string() returns a file-controlled byte length from adjacent process memory, disclosing secrets to the attacker. No public exploit is identified at time of analysis, and low CVSS attack complexity means the write-and-trigger sequence is straightforward once file write access is obtained.

Act Now Prioritize within 24-48h. Why: CRITICAL severity.
Patch available 0.2% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Jul 22, 2026

Out-of-bounds memory disclosure in Data::Intern::Shared before 0.02, a Perl shared-memory string interning module, lets a local peer who can write the shared backing file leak adjacent process memory. The attach-time validator (si_validate_header) checks header magic, version, offsets, total_size and counts but never bounds-checks the slot, reverse, and arena arrays it subsequently trusts, so a poisoned index in si_idx_find drives a triple-indirection read past valid bounds. No public exploit is identified at time of analysis and EPSS risk is low (0.17%), but a vendor patch (0.02) is available.

RemediationAI

Vendor-released patch: upgrade Data::Intern::Shared to 0.02 or later from CPAN, which adds validation of the slot, reverse, and arena arrays that 0.01 trusted (see the 0.01-to-0.02 intern.h diff and changes file on MetaCPAN). Until upgrading, the practical compensating control is to protect the shared backing file: ensure only the owning process and trusted principals have write permission to the mmap'd segment (restrictive filesystem permissions/ownership and, where possible, a private or per-user directory), since the entire attack depends on a local peer writing poisoned indices into that file. Avoid placing the backing file in world- or group-writable locations such as shared temp directories, and verify no untrusted local account can open it for writing; the trade-off is purely operational tightening with no functional loss. Do not rely on the header being valid as a defense, because the header can be left valid while the arrays are poisoned.

Affected VersionsENISA

Data::Intern::Shared 0 <0.02

Affected Packages

euvd data_intern_shared fix: 0.02

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

The module implements a memory-mapped, shared string-interning table in C (intern.h) where lookups resolve a string through a triple indirection: arena[reverse[slots[i].id]]. The root cause is CWE-125 (Out-of-bounds Read): si_validate_header thoroughly validates the fixed header and layout (magic, version, section offsets, total_size, count, arena_used) but performs no validation of the three variable-length arrays it then relies on. Consequently si_idx_find never bounds slots[i].id against count, never checks the reverse[id] arena offset against arena_used, and never validates the arena record's length prefix. Because string() returns a file-controlled length of bytes from the arena, an attacker who controls those on-disk values dictates both the read location and the number of bytes returned. The affected package is identified by CPE cpe:2.3:a:egor:data::intern::shared covering all versions before 0.02.

Know when Data gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (CPANSec) PRIMARY 9.1 CRITICAL
AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:H
vuln.today AI 6.1 MEDIUM

Attack is local via write access to the shared backing file (AV:L, PR:L), low complexity; primary impact is memory disclosure (C:H), possible crash on bad read (A:L), no integrity loss.

3.1 AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:L
4.0 AV:L/AC:L/AT:N/PR:L/UI:N/VC:H/VI:N/VA:L/SC:N/SI:N/SA:N

Primary rating from Vendor (CPANSec).

CVSS VectorVendor: CPANSec

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
None
Availability
High

Lifecycle Timeline

4
CVSS changed
Jul 22, 2026 - 20:22 NVD
9.1 (CRITICAL)
Patch available
Jul 21, 2026 - 21:18 EUVD
CVE Published
Jul 21, 2026 - 19:04 cve.org
UNKNOWN (no severity yet)
CVE Published
Jul 21, 2026 - 19:04 cve.org
CRITICAL 9.1

DescriptionCVE.org

Data::Intern::Shared versions before 0.02 for Perl allow an out-of-bounds read via unvalidated slot, reverse and arena indices in si_idx_find.

The attach-time validator si_validate_header is thorough about the header and layout (magic, version, section offsets, total_size, count and arena_used) but does not validate the three arrays it then trusts. Every lookup in si_idx_find walks a triple indirection read straight from the mmap'd segment, arena[reverse[slots[i].id]], with no bound on slots[i].id against count, on the reverse[id] arena offset against arena_used, or on the arena record's length prefix.

A local peer that can write the backing file can leave the header valid while poisoning a slot id, a reverse offset or an arena length prefix, so an id_of, intern or string lookup dereferences the chain out of bounds; because string() returns a file-controlled length of bytes from the arena, adjacent process memory can be disclosed.

Executive ViewAI

Why It Matters

Organizations running Perl applications with Data::Intern::Shared module versions before 0.02 face a critical data exposure risk; the vulnerability allows local attackers with file-write privileges to leak sensitive information from other processes in shared environments. This poses particular concern in containerized and multi-tenant deployments. Immediate patching to version 0.02 is required to eliminate this exposure.

Business Impact: High
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.2%
Top 93% exploitable
Prevalence
Rare
brand-new niche Perl CPAN module, negligible production footprint
Data Quality
4 sources
Confidence: Medium

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity CRITICAL
CISA KEV No
Public POC No
EPSS 0.2%
Patch available Yes
Active threat No
Deciding rule
CRITICAL severity
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation· derived
None
System Exposure· derived
Open
Automatable· derived
Yes
Human Impact
High

Priority Score

46
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +46
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

A buffer overflow occurs when a program writes more data to a memory buffer than it was allocated to hold, causing the excess data to spill into adjacent memory regions.

Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.

More in Data

View all
CVE-2021-29662 HIGH POC
7.5 Mar 31

The Data::Validate::IP module through 0.29 for Perl does not properly consider extraneous zero characters at the beginni

CVE-2026-59144 CRITICAL
9.8 Jul 21

Stack buffer overflow in the Perl module Data::RingBuffer::Shared before 0.04 lets a local peer with write access to the

CVE-2026-59147 CRITICAL
9.8 Jul 21

Out-of-bounds read and write in the Perl module Data::DisjointSet::Shared before version 0.02 lets a local actor who can

CVE-2026-59146 HIGH
7.8 Jul 21

Out-of-bounds read and write in the Perl module Data::SpatialHash::Shared before 0.02 lets a local peer with write acces

CVE-2026-18536 HIGH
7.5 Aug 01

Entropy source compromise in Data::Entropy (Perl) before version 0.010 allows any on-path network attacker to fully cont

CVE-2026-59143 MEDIUM
6.3 Jul 21

Out-of-bounds read in Data::RoaringBitmap::Shared before version 0.02 for Perl allows a local peer with write access to

CVE-2026-64613 MEDIUM
6.2 Jul 21

World-readable mmap backing files and absent O_NOFOLLOW protection in Data::Buffer::Shared for Perl (versions before 0.0

CVE-2026-65065 MEDIUM
5.5 Jul 21

Information disclosure in Data::RoaringBitmap::Shared Perl module before 0.02 allows local attackers to read sensitive I

CVE-2026-65069 MEDIUM
4.0 Jul 21

Insecure mmap backing-file creation in Data::DisjointSet::Shared (Perl/CPAN) before 0.02 exposes inter-process IPC paylo

CVE-2026-64614 LOW
3.8 Jul 21

Information disclosure in the Perl Data::Deque::Shared module before version 0.06 exposes inter-process communication qu

CVE-2026-65068 LOW
3.8 Jul 21

World-readable IPC segment exposure in Data::SpatialHash::Shared (Perl) before version 0.02 allows any local user on a m

CVE-2026-65067 LOW
3.8 Jul 21

Insecure file creation in Data::Intern::Shared for Perl (all versions before 0.02) exposes shared memory IPC payloads to

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy