Skip to main content

Data::SpatialHash::Shared CVE-2026-65068

| EUVDEUVD-2026-46381 LOW
Incorrect Permission Assignment for Critical Resource (CWE-732)
2026-07-21 CPANSec GHSA-fm8j-jqfj-cvjh
3.8
CVSS 3.1 · Vendor: CPANSec
View

Attack ChainAIDerived

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

  1. Access
    Gain local shell access
  2. Delivery
    Identify mmap backing file path in /tmp or /dev/shm
  3. Exploit
    Pre-plant symlink or file at target path (for race variant)
  4. Execution
    Wait for victim process to initialize segment
  5. Persist
    Read world-readable segment file
  6. Impact
    Extract IPC payload data

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, low-privileged user account on the same system as a process using Data::SpatialHash::Shared before version 0.02. The shared segment must be located in a directory accessible to the attacker, such as /tmp or /dev/shm - the typical deployment pattern for shared IPC. For passive eavesdropping (world-readable file), the attacker only needs to read the file after it is created, with no timing constraint. For the pre-creation attack (absent O_EXCL), the attacker must plant a file or symlink at the target path before the vulnerable process first opens it. For the symlink redirect (absent O_NOFOLLOW), the attacker must control the path entry before the open call. Single-user systems, containers with isolated /tmp namespaces, or deployments where the segment path is in a private directory (mode 0700) owned by the application user are not exploitable. Network-level access is not required; exploitation is local only.

Impact

The CVSS 3.1 base score of 3.8 (Low) accurately reflects the constrained real-world impact: attack vector is local (AV:L), privileges required are low (PR:L), and the confidentiality impact is limited (C:L). EPSS at 0.16% and the 6th percentile confirms negligible observed exploitation interest. The vulnerability is not listed in CISA KEV and no public proof-of-concept code has been identified. The S:C scope change in the vector is meaningful - a low-privileged local user can read IPC data belonging to a different, potentially more-privileged process - but this is bounded by the sensitivity of whatever data the target application stores in the shared segment. In practice, risk is concentrated in multi-tenant or shared-hosting Linux environments where untrusted local users coexist with applications using this module. Single-user systems and containerized deployments with isolated namespaces are largely unaffected. No conflicting signals between data sources; CVSS, EPSS, and KEV absence all converge on low real-world priority.

Exploit ScenarioDerived

A local attacker on a multi-user system identifies that a target application uses Data::SpatialHash::Shared and determines the expected mmap backing file path (e.g., /tmp/sphash_<name>). Before the target process initializes, the attacker plants a symlink at that path pointing to a file they control or simply waits for the world-readable segment to be created, then reads the mmap backing file directly to extract IPC payloads being exchanged between the target process and its peers. No public exploit code has been identified.

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 23, 2026

World-readable IPC segment exposure in Data::SpatialHash::Shared (Perl) before version 0.02 allows any local user on a multi-user system to read the contents of shared memory payloads written by other processes using the module. The root cause is a combination of overly permissive file creation mode (0666, yielding 0644 under default umask) and the absence of O_EXCL and O_NOFOLLOW flags when opening the mmap backing file in sphash.h, enabling both passive eavesdropping and pre-creation file/symlink attacks. No active exploitation has been identified (EPSS: 0.16%, 6th percentile; not in CISA KEV), and the fix is available in version 0.02.

RemediationAI

Upgrade Data::SpatialHash::Shared to version 0.02 or later via CPAN (cpanm Data::SpatialHash::Shared or cpan Data::SpatialHash::Shared); this is the vendor-released patch confirmed by CPANSec and documented at https://metacpan.org/release/EGOR/Data-SpatialHash-Shared-0.02/changes. The fix corrects the file creation flags in sphash.h to use O_EXCL and O_NOFOLLOW and should restrict the creation mode to 0600 or 0640. If immediate upgrade is not possible, a specific compensating control is to set a restrictive umask (e.g., umask 0177 or 0077) in the application process before the shared segment is initialized, which limits file-system exposure; however, this does not address the O_EXCL or O_NOFOLLOW absence and a local attacker who pre-plants a file or symlink before the process starts can still exploit those gaps. Additionally, configuring the segment path to a directory accessible only to the application user (rather than /tmp or /dev/shm) eliminates the shared-directory race surface entirely, though this may require application-level configuration changes.

Affected VersionsENISA

Data::SpatialHash::Shared 0 <0.02

Affected Packages

euvd data_spatialhash_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::SpatialHash::Shared is a Perl IPC module that backs a shared spatial hash structure with a memory-mapped file, typically placed in a world-writable shared directory such as /tmp or /dev/shm. The vulnerable code in sphash.h issues open(path, O_RDWR|O_CREAT, 0666), which has three compounding weaknesses rooted in CWE-732 (Incorrect Permission Assignment for Critical Resource): (1) the 0666 creation mode yields a 0644 file under the standard umask 022, making the segment world-readable to any local user; (2) the absence of O_EXCL means a pre-planted regular file at the target path is silently adopted rather than triggering an error, allowing an attacker to substitute their own file; (3) the absence of O_NOFOLLOW means a symlink planted at the path is followed, enabling redirection of the segment open to an attacker-controlled location. The affected CPE is cpe:2.3:a:egor:data::spatialhash::shared:*:*:*:*:*:*:*:*, covering all releases 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 3.8 LOW
AV:L/AC:L/PR:L/UI:N/S:C/C:L/I:N/A:N
vuln.today AI 3.8 LOW

Local attack vector with low-privilege account required; scope change because attacker reads another process's IPC data; no integrity or availability impact.

3.1 AV:L/AC:L/PR:L/UI:N/S:C/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:L/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
Changed
Confidentiality
Low
Integrity
None
Availability
None

Lifecycle Timeline

3
CVSS changed
Jul 23, 2026 - 14:23 NVD
3.8 (LOW)
Patch available
Jul 21, 2026 - 21:18 EUVD
CVE Published
Jul 21, 2026 - 19:09 cve.org
UNKNOWN (no severity yet)

DescriptionCVE.org

Data::SpatialHash::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 sphash.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
niche Perl spatial IPC module, minimal 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 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

19
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +19
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-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