Skip to main content

Data::RoaringBitmap::Shared EUVDEUVD-2026-46364

| CVE-2026-59143 MEDIUM
Out-of-bounds Read (CWE-125)
2026-07-21 CPANSec GHSA-96m7-w48r-fx74
6.3
CVSS 3.1 · Vendor: CPANSec
Share

Severity by source

Vendor (CPANSec) PRIMARY
6.3 MEDIUM
AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:L/A:L
vuln.today AI
4.4 MEDIUM

Local file write access is the attack primitive (AV:L, PR:L); no integrity impact from an OOB read; availability loss from potential crash.

3.1 AV:L/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:L
4.0 AV:L/AC:L/AT:N/PR:L/UI:N/VC:L/VI:N/VA:L/SC:N/SI:N/SA:N

Primary rating from Vendor (CPANSec).

CVSS VectorVendor: CPANSec

Attack Vector
Network
Attack Complexity
Low
Privileges Required
Low
User Interaction
None
Scope
Unchanged
Confidentiality
Low
Integrity
Low
Availability
Low

Lifecycle Timeline

4
Analysis Generated
Jul 23, 2026 - 13:36 vuln.today
CVSS changed
Jul 23, 2026 - 13:23 NVD
6.3 (MEDIUM)
Patch available
Jul 21, 2026 - 21:18 EUVD
CVE Published
Jul 21, 2026 - 19:04 cve.org
UNKNOWN (no severity yet)

DescriptionCVE.org

Data::RoaringBitmap::Shared versions before 0.02 for Perl allow an out-of-bounds read via an unvalidated container offset and cardinality in rb_contains_locked.

The attach-time validator rb_validate_header checks the header scalars and region layout against the file size, but does not validate the bucket contents it then trusts. rb_contains_locked forms a container pointer as pool + container_off * 8192 from a raw file-stored offset and then searches over a file-stored cardinality, neither bounded against the container pool capacity or the fixed 8192-byte slot size.

A local peer that can write the backing file can leave the header valid while poisoning a bucket, so the next membership query dereferences a file-controlled wild pointer and scans a file-controlled count, reading adjacent memory or crashing the process.

AnalysisAI

Out-of-bounds read in Data::RoaringBitmap::Shared before version 0.02 for Perl allows a local peer with write access to the shared backing file to redirect memory reads to arbitrary locations. The module's attach-time header validator (rb_validate_header) checks structural metadata but skips bucket content validation, so rb_contains_locked blindly trusts file-stored container offsets and cardinalities. On the next membership query, the process dereferences a fully attacker-controlled pointer and iterates over an attacker-controlled count, exposing adjacent heap or stack memory and potentially crashing the querying process. No public exploit exists and EPSS sits at 0.17% (7th percentile), indicating low real-world exploitation activity.

Technical ContextAI

Data::RoaringBitmap::Shared (CPE: cpe:2.3:a:egor:data::roaringbitmap::shared) is a Perl module implementing the Roaring Bitmap compressed bitset data structure over a shared memory-mapped backing file, enabling multiple processes to query the same bitmap concurrently. The file format stores a header and a pool of fixed 8192-byte container slots. The attach-time validator rb_validate_header verifies the header scalars (region count, file size bounds) but stops short of validating the per-bucket container_off and cardinality fields embedded in the file body. The membership query function rb_contains_locked then computes a container pointer as pool + container_off * 8192 and iterates over cardinality - both values read directly from the untrusted file - without bounding them against the actual pool allocation or the 8192-byte slot limit. CWE-125 (Out-of-Bounds Read) accurately captures the root cause: missing validation of externally sourced array indices before pointer arithmetic and memory traversal.

RemediationAI

Upgrade Data::RoaringBitmap::Shared to version 0.02 or later via CPAN (cpan install Data::RoaringBitmap::Shared or cpanm Data::RoaringBitmap::Shared). The fix in 0.02 adds bucket-level validation of container_off and cardinality against the actual pool capacity and slot size, closing the gap left by rb_validate_header. The release diff is available at https://metacpan.org/release/EGOR/Data-RoaringBitmap-Shared-0.02/diff/EGOR/Data-RoaringBitmap-Shared-0.01#roaring.h. If an immediate upgrade is not feasible, restrict filesystem permissions on the bitmap backing file so that only the owning process or a tightly controlled group can write to it - this prevents the file-poisoning prerequisite entirely. As a secondary control, audit any inter-process trust boundaries where untrusted peers share the backing file path.

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-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-65068 LOW
3.8 Jul 21

World-readable IPC segment exposure in Data::SpatialHash::Shared (Perl) before version 0.02 allows any local user on a m

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

Share

EUVD-2026-46364 vulnerability details – vuln.today

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy