Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessIdentify application using Data::Deque::Shared on shared host
-
ExploitLocate or predict mmap backing file path in /tmp or /dev/shm
-
ExecutionRead world-readable 0644 backing file directly
-
ImpactExtract IPC queue payloads
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 a multi-user POSIX host running an application built with Data::Deque::Shared versions before 0.06. The passive attack path - directly reading the world-readable mmap backing file - requires only filesystem read access to /tmp or /dev/shm and knowledge (or guessing) of the backing file name; no race condition or special timing is needed. The symlink/pre-creation attack additionally requires the attacker to plant a symlink or file at the exact backing file path before the target process first initializes the segment, requiring knowledge of the file path naming convention. Exploitation is limited to single-host scenarios where /tmp or /dev/shm is shared across user accounts; containerized deployments with private /tmp namespaces, single-user workstations, and environments with sticky-bit directories that restrict cross-user symlink creation (e.g., Linux protected_symlinks sysctl enabled) substantially reduce or eliminate practical exploitability. |
| Impact | The CVSS 3.1 score of 3.8 (Low) with vector AV:L/AC:L/PR:L/UI:N/S:C/C:L/I:N/A:N accurately characterizes the risk envelope: local access with a standard user account is required (AV:L, PR:L), and the impact is limited to confidentiality of the IPC segment contents (C:L). The scope change (S:C) reflects the cross-process data leakage boundary. EPSS at 0.16% in the 6th percentile confirms that virtually no observed exploitation activity exists for this class of flaw, consistent with the niche deployment footprint of this Perl library. The vulnerability is not in CISA KEV and no POC code has been identified in the provided data. Despite the low severity score, contextual risk is non-trivial for applications using this module to share sensitive data (credentials, session tokens, business logic payloads) between processes on a multi-user host: the passive attack path requires no race condition at all - the attacker simply reads the backing file. Single-user hosts and containerized deployments with isolated /tmp namespaces are not at practical risk, which substantially limits the real-world population of affected deployable configurations. |
| Exploit ScenarioDerived | A local attacker with a standard user account on a shared Linux host identifies that an application is using Data::Deque::Shared and predicts the mmap backing file path in /tmp. Without any race condition, the attacker simply reads the world-readable 0644 backing file directly, extracting the full contents of the IPC deque - including any sensitive payloads the application has enqueued. Alternatively, the attacker pre-plants a symlink at the expected backing file path before the target process starts; when the application calls open() without O_NOFOLLOW, the kernel follows the symlink to an attacker-controlled file, redirecting the segment. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Jul 23, 2026
Information disclosure in the Perl Data::Deque::Shared module before version 0.06 exposes inter-process communication queue contents to any local user due to a world-readable mmap backing file and unsafe open() flags. The shared segment is created in /tmp or /dev/shm with mode 0644 (after umask 022), and the absence of O_NOFOLLOW and O_EXCL permits symlink-following and pre-creation race attacks against the backing file path. Any local account on a multi-user host can passively read sensitive IPC payloads, or actively redirect the segment open via a pre-planted symlink. No active exploitation has been identified - EPSS is 0.16% (6th percentile) and the vulnerability is not in CISA KEV.
RemediationAI
Upgrade to Data::Deque::Shared version 0.06 or later, which is available on CPAN and constitutes the vendor-released patch for this vulnerability. The specific fix can be reviewed at https://metacpan.org/release/EGOR/Data-Deque-Shared-0.06/diff/EGOR/Data-Deque-Shared-0.05#deque.h and the changelog is at https://metacpan.org/release/EGOR/Data-Deque-Shared-0.06/changes. If immediate patching is not feasible, two compensating controls reduce exposure with trade-offs: first, configuring a restrictive umask (e.g., umask 0177) for processes using the module reduces the backing file to mode 0400 (owner-read only), eliminating the passive read path, but does not address the O_NOFOLLOW/O_EXCL race conditions and will affect all files created by that process; second, placing the shared segment in a dedicated directory with mode 0700 owned by the application user - rather than /tmp or /dev/shm - eliminates access by other local users entirely, but requires configuration changes to the application's segment path and may require application restart. Neither workaround substitutes for patching.
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
The vulnerable code is in deque.h, the C-level backing implementation of the Data::Deque::Shared Perl module (CPE: cpe:2.3:a:egor:data::deque::shared). The mmap segment file is created with open(path, O_RDWR|O_CREAT, 0666), which under the standard umask of 022 results in a world-readable 0644 file. CWE-732 (Incorrect Permission Assignment for Critical Resource) is the root cause: the backing file holds IPC queue payloads that are readable by all local users. The missing O_NOFOLLOW flag means the kernel follows any symlink at the target path, and the missing O_EXCL flag means a pre-existing file silently wins instead of triggering an error, enabling TOCTOU symlink-substitution attacks. Because 'Shared' segments are designed to live in directories like /tmp or /dev/shm that are world-writable and shared across all local users, both the passive read path and the race-condition path are accessible to any unprivileged local account.
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 standard-user access required; scope change reflects cross-process IPC leakage; no integrity or availability impact applies.
Primary rating from Vendor (CPANSec).
CVSS VectorVendor: CPANSec
Lifecycle Timeline
3DescriptionCVE.org
Data::Deque::Shared versions before 0.06 for Perl create a world-readable mmap backing file and open it without O_EXCL or O_NOFOLLOW.
The segment is created in deque.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
World-readable IPC segment exposure in Data::SpatialHash::Shared (Perl) before version 0.02 allows any local user on a m
Insecure file creation in Data::Intern::Shared for Perl (all versions before 0.02) exposes shared memory IPC payloads to
EUVD-2026-46370
GHSA-j7qm-25rr-qxjr
NVD
CVE.org
EPSS
Exploit-DB