Description
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.
Published: 2026-07-21
Score: 3.8 Low
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

Data::SortedSet::Shared versions prior to 0.03 create a memory‑mapped segment backed by a file opened with mode 0666. This introduces two weaknesses: improper handling of absolute paths and directory traversal (CWE‑59) due to the lack of O_NOFOLLOW and potential symlink traversal, and incorrect permission assignment (CWE‑732) because the file is created with mode 0666 which, with a default umask of 022, results in a world‑readable file. A local attacker can either use a pre‑existing regular file or forge a symlink at the expected path to gain read access or to perform a race condition that redirects the open. The outcome is that any local user can read IPC data or influence which file is used, potentially exposing sensitive data or compromising the integrity of the shared data. The primary impact is therefore confidentiality loss for local users interacting with shared Data::SortedSet::Shared instances.

Affected Systems

The vulnerability affects Perl modules distributed by the EGOR vendor under the Data::SortedSet::Shared package. Versions before 0.03 are affected. Practically any installation that places the shared segment in a directory such as /tmp or /dev/shm, which are commonly world‑accessible, is at risk. Systems using Perl and consuming the module without upgrading will be impacted.

Risk and Exploitability

The CVSS score is 3.8, indicating a moderate severity. The EPSS score of less than 1% suggests that, at present, the likelihood of exploitation is low. The vulnerability is not listed in the CISA KEV catalog. Exploitation requires local access; an attacker must have the ability to write to the path where the backing file is created, or to create a symlink there, and then run a process that loads the vulnerable module. Once the conditions are satisfied, the attacker can read the content of the mmap segment or redirect the path during the open, achieving information disclosure and potentially tampering with the data structure.

Generated by OpenCVE AI on August 4, 2026 at 17:51 UTC.

Remediation

Vendor Solution

Upgrade to Data::SortedSet::Shared 0.03 or later, which creates the backing file mode 0600 (owner-only) with O_EXCL and O_NOFOLLOW.


Vendor Workaround

For deployments that cannot upgrade to 0.03, set a restrictive umask so the backing file is not world-readable and place it in a directory only the owning user can access.


OpenCVE Recommended Actions

  • Upgrade to Data::SortedSet::Shared 0.03 or later; the new version creates the backing file with mode 0600 and uses O_EXCL and O_NOFOLLOW to prevent symlink attacks.
  • If an upgrade is not possible, configure the system's umask to restrict the file to a non‑world‑readable mode (e.g., 0770 or 0600) so that the backing file is not readable by other users.
  • Place the backing file in a directory that is accessible only to the owning user, such as a home‑directory subfolder or a dedicated secure temporary directory, to prevent other local users from reading or linking to it.

Generated by OpenCVE AI on August 4, 2026 at 17:51 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Thu, 23 Jul 2026 21:45:00 +0000

Type Values Removed Values Added
First Time appeared Egor
Egor data::sortedset::shared
Vendors & Products Egor
Egor data::sortedset::shared

Thu, 23 Jul 2026 13:30:00 +0000

Type Values Removed Values Added
Metrics cvssV3_1

{'score': 3.8, 'vector': 'CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:C/C:L/I:N/A:N'}

ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'none', 'Technical Impact': 'partial'}, 'version': '2.0.3'}


Tue, 21 Jul 2026 19:45:00 +0000

Type Values Removed Values Added
Description 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.
Title 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
Weaknesses CWE-59
CWE-732
References

Subscriptions

Egor Data::sortedset::shared
cve-icon MITRE

Status: PUBLISHED

Assigner: CPANSec

Published:

Updated: 2026-07-23T12:49:16.777Z

Reserved: 2026-07-21T15:29:37.116Z

Link: CVE-2026-65062

cve-icon Vulnrichment

Updated: 2026-07-23T12:49:02.949Z

cve-icon NVD

Status : Deferred

Published: 2026-07-21T20:17:05.190

Modified: 2026-07-23T14:17:42.913

Link: CVE-2026-65062

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-08-04T18:00:14Z

Weaknesses
  • CWE-59

    Improper Link Resolution Before File Access ('Link Following')

  • CWE-732

    Incorrect Permission Assignment for Critical Resource