Description
Data::RoaringBitmap::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 roaring.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: 5.5 Medium
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

The Data::RoaringBitmap::Shared Perl module prior to version 0.02 creates an mmap backing file with mode 0666, which, under the common default umask of 022, becomes world‑readable 0644. The open call omits both the O_EXCL flag, allowing a pre‑existing file to be silently reused, and the O_NOFOLLOW flag, permitting a symlink placed by an attacker at the expected path to be followed. Together, these flaws give any local user the ability to read or overwrite the bitmap data stored in the file, potentially revealing confidential information that the application intended to share only among privileged processes. The weakness is rooted in CWE‑59 (symbolic‑link race) and CWE‑732 (incorrect permission assignment for a critical resource).

Affected Systems

Systems that load the Data::RoaringBitmap::Shared module by EGOR with a version earlier than 0.02 are affected. The module typically creates the backing file in a shared directory such as /tmp or /dev/shm, and the flaw exists across all operating systems that support Perl and POSIX file semantics. Only the pre‑0.02 releases are impacted; versions 0.02 and newer implement secure file creation by setting the file to mode 0600 and using the O_EXCL and O_NOFOLLOW flags.

Risk and Exploitability

The CVSS score is 5.5, indicating moderate complexity and confidentiality impact. The EPSS score is below 1 %, showing that the likelihood of exploitation is currently low. The vulnerability is not listed in CISA’s KEV catalog. Exploitation requires local filesystem access sufficient to plant a symlink or pre‑create a file at the module’s backing‑file path, limiting the attack surface to the local host. The primary consequence is a loss of confidentiality of the shared bitmap data; there is no capability for privilege escalation or remote code execution.

Generated by OpenCVE AI on August 4, 2026 at 05:29 UTC.

Remediation

Vendor Solution

Upgrade to Data::RoaringBitmap::Shared 0.02 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.02, 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 the Data::RoaringBitmap::Shared module to version 0.02 or newer so that the backing file is created with mode 0600 and uses the O_EXCL and O_NOFOLLOW flags.
  • If an immediate upgrade is not feasible, run the application under its own user account and store the backing file in a directory that is owned by that user with 0700 permissions, preventing other local users from accessing the file.
  • Adjust the process’s umask to a restrictive value (e.g., 077) before the module is loaded so that any files it creates inherit a non‑world‑readable mode.
  • Configure a filesystem security policy such as AppArmor or SELinux to forbid following symbolic links or accessing shared‑memory directories for the application’s user.
  • (Optional) Compile a patched copy of roaring.h that enforces the use of O_EXCL and O_NOFOLLOW if modifying the module source is acceptable.

Generated by OpenCVE AI on August 4, 2026 at 05:29 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Mon, 27 Jul 2026 14:30:00 +0000

Type Values Removed Values Added
Metrics cvssV3_1

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


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

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

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

Type Values Removed Values Added
Metrics 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::RoaringBitmap::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 roaring.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::RoaringBitmap::Shared versions before 0.02 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::roaringbitmap::shared
cve-icon MITRE

Status: PUBLISHED

Assigner: CPANSec

Published:

Updated: 2026-07-27T14:07:43.749Z

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

Link: CVE-2026-65065

cve-icon Vulnrichment

Updated: 2026-07-23T13:04:19.963Z

cve-icon NVD

No data.

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-08-04T05:30:04Z

Weaknesses
  • CWE-59

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

  • CWE-732

    Incorrect Permission Assignment for Critical Resource