Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessGain low-privilege local account
-
DeliveryIdentify mmap backing file path in /tmp or /dev/shm
-
ExploitOptionally plant symlink or pre-created file at path
-
ExecutionTarget process opens file via vulnerable open() lacking O_EXCL/O_NOFOLLOW
-
ImpactRead world-readable IPC payloads from segment file
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 account with low (unprivileged) access on the same multi-user system running an application that uses Data::SortedSet::Shared before 0.03, with the module's mmap backing file located in a shared directory such as /tmp or /dev/shm (the module's natural default). The passive disclosure path - reading the world-readable 0644 file - requires no race condition and no special timing; any local user can simply open and read the file after it is created by the legitimate process. The symlink/pre-creation race path additionally requires the attacker to plant a symlink or pre-created file at the expected path before the target process first opens it. Exploitation is strictly limited to local system access; no network vector exists. Risk is further limited by the niche footprint of the module and the requirement that the targeted application store sensitive data in the shared segment. |
| Impact | The CVSS 3.1 base score of 3.8 with vector AV:L/AC:L/PR:L/UI:N/S:C/C:L/I:N/A:N correctly captures a local, low-privilege, no-interaction attack with a scope change (cross-process IPC data disclosure) but only low confidentiality impact and no integrity or availability impact. EPSS at 0.16% (6th percentile) reflects the very low probability of automated or widespread exploitation, consistent with the niche nature of this Perl CPAN module. No CISA KEV listing and no known POC further reinforce that this is not currently being actively exploited. Real-world risk is constrained to multi-user Linux/Unix systems where the targeted application uses this specific module and stores sensitive data in the shared segment; cloud-native or containerized single-tenant deployments are largely unaffected. The score is appropriate and there is no conflict between CVSS signals and the description - both point to a local, low-severity information disclosure with a limited but real scope-change consequence. |
| Exploit ScenarioDerived | A local attacker with a standard unprivileged account on a multi-user Linux system identifies the file path used by Data::SortedSet::Shared in /tmp or /dev/shm. In the passive path, the attacker simply reads the world-readable 0644 backing file to extract IPC payloads after the legitimate process creates it. In the active path, the attacker plants a symlink at the expected file path before the application starts; because O_NOFOLLOW and O_EXCL are absent, the legitimate process follows the symlink or silently reuses the pre-planted file, granting the attacker full visibility into all data written to the shared segment. No public exploit code has been identified at time of analysis. |
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 in Data::SortedSet::Shared before 0.03 exposes IPC payloads to any local user and enables symlink or pre-creation race attacks on the same host. The module's sortedset.h opens the shared segment file with mode 0666 (yielding 0644 after umask), no O_EXCL, and no O_NOFOLLOW, meaning a local attacker can passively read any data written to the segment or actively redirect the open() to an attacker-controlled file. No public exploit has been identified at time of analysis; EPSS is 0.16% at the 6th percentile, consistent with the niche footprint of this Perl CPAN module.
RemediationAI
Vendor-released patch: Data::SortedSet::Shared 0.03, which corrects the open() call in sortedset.h to use restrictive permissions and add O_EXCL and O_NOFOLLOW. Upgrade via CPAN: cpan install Data::SortedSet::Shared or cpanm Data::SortedSet::Shared@0.03. The corrected diff is available at https://metacpan.org/release/EGOR/Data-SortedSet-Shared-0.03/diff/EGOR/Data-SortedSet-Shared-0.02#sortedset.h. If immediate upgrade is not possible, configure the application to place its mmap backing file in a private, application-owned directory (e.g., a tmpfs mount or subdirectory with mode 0700) rather than /tmp or /dev/shm, ensuring no other local user can reach the file path. This mitigates both the passive read path and the symlink race, but requires application-level configuration changes and may not be straightforward for all deployments. Restricting /tmp permissions globally would affect other system services and is not recommended.
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
CWE-732 (Incorrect Permission Assignment for Critical Resource) describes exactly this class of flaw: a resource shared across security boundaries is created with permissions that allow unintended access. The module implements a sorted set backed by a memory-mapped file for inter-process communication. The file is created in sortedset.h via open(path, O_RDWR|O_CREAT, 0666); after the default umask of 022 is applied, the on-disk file is mode 0644 - world-readable. Two additional flags are absent: O_EXCL would cause open() to fail if the file already exists (preventing silent reuse of a pre-planted file), and O_NOFOLLOW would prevent the kernel from following a symlink at the target path. Because shared segments are typically placed in /tmp or /dev/shm - directories writable by all local users - both the passive disclosure path and the TOCTOU symlink path are viable. Affected CPE: cpe:2.3:a:egor:data::sortedset::shared:*:*:*:*:*:*:*:*.
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 access and a low-privilege account are required; world-readable file enables cross-process IPC disclosure (scope change), but impact is limited to low confidentiality with no integrity or availability effect.
Primary rating from Vendor (CPANSec).
CVSS VectorVendor: CPANSec
Lifecycle Timeline
3DescriptionCVE.org
Data::SortedSet::Shared versions before 0.03 for Perl create a world-readable mmap backing file and open it without O_EXCL or O_NOFOLLOW.
The segment is created in sortedset.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-46375
GHSA-fm5w-8q32-74c2
NVD
CVE.org
EPSS
VulDB
Exploit-DB