Skip to main content

Data::NDArray::Shared EUVDEUVD-2026-46372

| CVE-2026-64616 LOW
Incorrect Permission Assignment for Critical Resource (CWE-732)
2026-07-21 CPANSec GHSA-8xr7-6jgf-m2rq
3.3
CVSS 3.1 · Vendor: CPANSec
View

Attack ChainAIDerived

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

  1. Access
    Obtain local user account on multi-user host
  2. Delivery
    Identify or predict Data::NDArray::Shared segment path in /tmp or /dev/shm
  3. Exploit
    Plant symlink or pre-existing file at segment path before victim process starts
  4. Execution
    Victim process opens path without O_EXCL or O_NOFOLLOW
  5. Persist
    Read world-readable mmap backing file
  6. Impact
    Extract IPC payload contents

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V13 - Configuration Permission assignment review
Exploitation Conditions

Exploitation requires a local user account on the same host as the process using Data::NDArray::Shared before 0.02 (CVSS PR:L, AV:L). The module must be actively creating shared memory segments, and those segments must be placed in a world-writable directory such as /tmp or /dev/shm - the default behavior. Two distinct attack paths exist with different prerequisites: (1) Passive read - no race required; the attacker simply reads the 0644 backing file at any point after it is created, requiring only that they know or can discover the segment path; (2) Pre-creation race or symlink plant - the attacker must create a file or symlink at the expected segment path before the victim process does, which requires write access to the containing directory (satisfied by /tmp or /dev/shm) and either predictable path naming or filesystem monitoring. Exploitation is entirely precluded on systems with only a single trusted local user, in containers with private /tmp namespaces (unshared mount namespaces), or where the backing file is placed in a directory with restricted permissions. The impact is limited to reading whatever data the application stores in the shared segment (CVSS C:L); there is no integrity or availability impact.

Impact

The CVSS 3.1 score of 3.3 (Low) with vector AV:L/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N correctly characterizes the constrained attack surface: exploitation is local-only (AV:L) and requires at minimum a standard user account (PR:L). The passive disclosure path - simply reading the world-readable backing file after it is created - requires no race and no special skill, making AC:L appropriate for that vector; the pre-plant and symlink attacks add timing requirements but do not raise the overall AC given the simpler passive path also exists. The EPSS score of 0.16% at the 6th percentile is consistent with the niche deployment footprint of this obscure CPAN module and the local-only attack surface. There is no CISA KEV listing and no known POC, reinforcing that this is not under active exploitation. Real-world risk is highest in shared-hosting, CI/CD pipeline workers, or HPC cluster environments where multiple untrusted Unix users coexist on the same host and the module is used to pass data of any sensitivity between cooperating processes. In single-user or containerized environments with proper namespace isolation, practical risk is negligible.

Exploit ScenarioDerived

A local attacker with a standard Unix account on a shared system identifies the predictable path that a target process will use for its Data::NDArray::Shared backing file in /tmp. Before the target process starts, the attacker plants a symlink at that path pointing to a file the attacker owns and can read; when the victim process opens the path without O_NOFOLLOW, it follows the symlink, and the attacker subsequently reads the mmap contents containing the shared IPC payload. Alternatively, the attacker simply waits for the backing file to be created and reads it directly, exploiting the world-readable 0644 permissions without any race condition. No public exploit code has been identified at time of analysis.

Monitor Track and reassess. Why: LOW severity (CVSS 0.1-3.9).
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 30, 2026

World-readable shared memory segments in Data::NDArray::Shared before 0.02 expose IPC payloads to any local user on the system. The module's ndarray.h creates mmap backing files in shared directories such as /tmp or /dev/shm with effective permissions 0644 (world-readable under umask 022) and omits both O_EXCL and O_NOFOLLOW from the open call, enabling passive eavesdropping on shared memory contents and a pre-creation race or symlink-redirect attack by any unprivileged local account. No public exploit has been identified and the EPSS score of 0.16% (6th percentile) indicates very low exploitation probability; risk is concentrated in multi-tenant or shared-hosting environments where untrusted local users coexist with processes passing sensitive data through this module.

RemediationAI

Upgrade to Data::NDArray::Shared version 0.02 or later via CPAN (cpan install Data::NDArray::Shared or cpanm Data::NDArray::Shared), which is the vendor-released fix confirmed by the published diff and changelog at https://metacpan.org/release/EGOR/Data-NDArray-Shared-0.02/changes. If immediate upgrade is not feasible, operators should redirect the module's backing-file directory to a private path owned exclusively by the running process user (mode 0700) rather than the default /tmp or /dev/shm; this prevents other local users from reading or pre-planting files, though it requires application-level configuration and limits sharing to processes running under the same UID. A secondary compensating control is to avoid passing highly sensitive credentials or cryptographic material through this shared segment, reducing the confidentiality impact of any residual exposure. No trade-off-free workaround exists short of upgrading, as the world-readable permission and missing flags are inherent to the pre-0.02 open call in ndarray.h.

Affected VersionsENISA

Data::NDArray::Shared 0 <0.02

Affected Packages

euvd data_ndarray_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

Data::NDArray::Shared is a Perl CPAN module (CPE: cpe:2.3:a:egor:data::ndarray::shared) that enables inter-process sharing of N-dimensional arrays via memory-mapped files. The vulnerable code in ndarray.h calls open(path, O_RDWR|O_CREAT, 0666); the mode 0666 is reduced by the process umask (typically 022) to 0644, leaving the backing file world-readable. CWE-732 (Incorrect Permission Assignment for Critical Resource) is the root-cause class. The absence of O_EXCL means that if a file already exists at the path, the open silently proceeds against it rather than failing, enabling an attacker to pre-plant a file before the legitimate process creates its segment. The absence of O_NOFOLLOW means a symlink planted at the expected path is transparently followed, redirecting the segment to an attacker-controlled location. Because shared segments are by design placed in world-writable directories (/tmp, /dev/shm), local users have the write access needed to plant files or symlinks at arbitrary paths within those directories.

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 3.3 LOW
AV:L/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N
vuln.today AI 3.3 LOW

AV:L and PR:L because exploitation requires a local standard user account; C:L only as impact is limited to reading IPC payloads; I:N and A:N confirmed by description.

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

Primary rating from Vendor (CPANSec).

CVSS VectorVendor: CPANSec

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

Lifecycle Timeline

3
CVSS changed
Jul 30, 2026 - 19:22 NVD
3.3 (LOW)
Patch available
Jul 21, 2026 - 21:18 EUVD
CVE Published
Jul 21, 2026 - 19:06 cve.org
UNKNOWN (no severity yet)

DescriptionCVE.org

Data::NDArray::Shared versions before 0.02 for Perl create a world-readable mmap backing file and open it without O_EXCL or O_NOFOLLOW.

The segment is created in ndarray.h with open(path, O_RDWR|O_CREAT, 0666). The mode is 0666, so under the default umask 022 the file is created mode 0644 (world-readable). O_NOFOLLOW is absent, so a symlink planted at the path is followed, and O_EXCL is absent, so the open silently uses a pre-planted file instead of failing.

A "Shared" segment naturally lives in a shared directory such as /tmp or /dev/shm, where any local user can read the IPC payloads stored in the world-readable segment, and a pre-planted file or symlink at the path lets a local attacker win a pre-creation race or redirect the open.

Threat Intelligence Overview

EPSS Score
0.2%
Top 94% exploitable
Prevalence
Rare
Obscure Perl CPAN module, niche scientific computing use
Data Quality
5 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 LOW
CISA KEV No
Public POC No
EPSS 0.2%
Patch available Yes
Active threat No
Deciding rule
LOW severity (CVSS 0.1-3.9)
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
Defer
Exploitation· derived
None
System Exposure· derived
Small
Automatable· derived
No
Human Impact· derived
Low

Priority Score

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

Attack Technique

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-59145 CRITICAL
9.1 Jul 21

Out-of-bounds memory disclosure in Data::Intern::Shared before 0.02, a Perl shared-memory string interning module, lets

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

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