Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessGain local user shell on shared host
-
ExploitIdentify mmap backing file path in /tmp or /dev/shm
-
ExecutionRead world-readable 0644 segment file directly
-
ImpactExtract IPC ring buffer payloads from target process
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 a process using Data::RingBuffer::Shared before 0.04, and the module must be actively in use (i.e., a process has created and is writing to the shared ring buffer segment). The shared segment must reside in a world-accessible directory such as /tmp or /dev/shm, which is the module's intended deployment pattern for 'Shared' segments. For the direct information disclosure path, no race condition or special timing is required - the attacker simply reads the existing 0644-mode backing file. For the pre-creation or symlink redirect attacks, the attacker must be able to write to the backing file directory before the target process initializes the segment. Remote exploitation is not possible (AV:L); root or elevated privilege is not required. Exploitation is limited to environments where untrusted local users share the same host as processes exchanging sensitive data through this IPC mechanism. |
| Impact | The CVSS 3.1 vector AV:L/AC:L/PR:L/UI:N/S:C/C:L/I:N/A:N (score 3.8) accurately reflects the attack profile: local access with low privilege, yielding limited confidentiality impact with scope change. The scope change (S:C) is justified because the permissioning flaw in the module exposes data owned by separate, potentially higher-privileged processes. The EPSS of 0.16% at the 6th percentile is consistent with real-world risk: this is a niche Perl CPAN module with a small enterprise footprint, no KEV listing, and no public POC. CVSS at 3.8 is an honest reflection - meaningful in multi-user shared systems (HPC clusters, shared application servers) where co-tenant local users could passively read sensitive IPC data without any race condition, but not broadly weaponizable or automatable. The symlink attack adds a secondary vector requiring timing but introduces no additional impact category beyond what the direct read already provides. This is a genuine but narrow-scope defect with real consequences only in multi-user deployment environments. |
| Exploit ScenarioDerived | A local attacker on a shared multi-user system (such as an HPC node or shared application server) identifies the mmap backing file path used by a target process in /tmp or /dev/shm, then directly reads the world-readable 0644 file to extract all IPC payloads stored in the ring buffer without any race or privilege escalation. Alternatively, before the target process starts, the attacker plants a symlink at the expected path; the absence of O_NOFOLLOW causes the module to silently follow the link, redirecting the open to an attacker-controlled file and exposing or manipulating IPC data. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Jul 23, 2026
World-readable mmap backing file creation and missing symlink/exclusivity guards in Data::RingBuffer::Shared before version 0.04 expose inter-process IPC payloads to any local user on the host. The module creates its shared segment in ring.h with mode 0666 (effective 0644 under default umask 022), making contents in /tmp or /dev/shm readable by all local users; omission of O_EXCL and O_NOFOLLOW further enables pre-creation race and symlink-redirect attacks. No public exploit has been identified at time of analysis, and the EPSS score of 0.16% (6th percentile) reflects low exploitation probability commensurate with the module's niche deployment footprint.
RemediationAI
Vendor-released patch: version 0.04. Upgrade Data::RingBuffer::Shared to 0.04 or later via CPAN (cpan Data::RingBuffer::Shared or cpanm Data::RingBuffer::Shared); the full changelog is available at https://metacpan.org/release/EGOR/Data-RingBuffer-Shared-0.04/changes. If immediate upgrade is not feasible, restrict the backing file directory to a private path owned exclusively by the application user (mode 0700) rather than /tmp or /dev/shm, which eliminates both the world-readable disclosure and the symlink/pre-creation attack surface - note this requires application-level configuration and may not be supported by all module versions without patching. Applying a restrictive process umask (e.g., 0177) at the process level reduces the world-readable risk but does not address the missing O_EXCL and O_NOFOLLOW flags; it should be treated as a partial compensating control only. Additional VulDB advisory context is available at https://vuldb.com/vuln/381045.
Affected VersionsENISA
Affected Packages
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::RingBuffer::Shared is a Perl CPAN module (CPE: cpe:2.3:a:egor:data::ringbuffer::shared) implementing a shared-memory ring buffer via mmap-backed files, designed for inter-process communication and typically stored in world-accessible directories such as /tmp or /dev/shm. The root cause is classified as CWE-732 (Incorrect Permission Assignment for Critical Resource): the segment creation call in ring.h is open(path, O_RDWR|O_CREAT, 0666), which under the standard umask of 022 yields a file with mode 0644 - world-readable. Two compounding flag omissions exist: the absence of O_EXCL means a pre-existing file at the target path is silently adopted rather than triggering an error (enabling pre-creation attacks), and the absence of O_NOFOLLOW means a symbolic link planted at the target path is transparently followed (enabling path-redirection attacks). Both attack vectors are feasible against the IPC data of any process using the module on a shared host.
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
AV:L/AC:L/PR:L/UI:N/S:C/C:L/I:N/A:N
Local low-privileged user reads world-accessible shared memory file; scope change reflects cross-process data exposure; no integrity or availability impact applies.
Primary rating from Vendor (CPANSec).
CVSS VectorVendor: CPANSec
Lifecycle Timeline
3DescriptionCVE.org
Data::RingBuffer::Shared versions before 0.04 for Perl create a world-readable mmap backing file and open it without O_EXCL or O_NOFOLLOW.
The segment is created in ring.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
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.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
The Data::Validate::IP module through 0.29 for Perl does not properly consider extraneous zero characters at the beginni
Stack buffer overflow in the Perl module Data::RingBuffer::Shared before 0.04 lets a local peer with write access to the
Out-of-bounds read and write in the Perl module Data::DisjointSet::Shared before version 0.02 lets a local actor who can
Out-of-bounds memory disclosure in Data::Intern::Shared before 0.02, a Perl shared-memory string interning module, lets
Out-of-bounds read and write in the Perl module Data::SpatialHash::Shared before 0.02 lets a local peer with write acces
Entropy source compromise in Data::Entropy (Perl) before version 0.010 allows any on-path network attacker to fully cont
Out-of-bounds read in Data::RoaringBitmap::Shared before version 0.02 for Perl allows a local peer with write access to
World-readable mmap backing files and absent O_NOFOLLOW protection in Data::Buffer::Shared for Perl (versions before 0.0
Information disclosure in Data::RoaringBitmap::Shared Perl module before 0.02 allows local attackers to read sensitive I
Insecure mmap backing-file creation in Data::DisjointSet::Shared (Perl/CPAN) before 0.02 exposes inter-process IPC paylo
Information disclosure in the Perl Data::Deque::Shared module before version 0.06 exposes inter-process communication qu
World-readable IPC segment exposure in Data::SpatialHash::Shared (Perl) before version 0.02 allows any local user on a m
EUVD-2026-46379
GHSA-v6hr-647x-cg64
NVD
CVE.org
EPSS
VulDB
Exploit-DB