CVE-2026-54906

Description

A flaw was found in concurrent-ruby, a Ruby library for managing concurrent operations. The Concurrent::ReadWriteLock component contains a synchronization issue where write locks can be released by unauthorized threads. This could allow multiple threads to write concurrently, potentially leading to data corruption. Furthermore, an issue with read lock management can cause a denial of service (DoS) by preventing legitimate read operations.

Statement

This is essentially a library misuse scenario. The attack requires local code execution in the same Ruby process AND use of the manual locking API (ReadWriteLock). Most applications use Concurrent::Future, Concurrent::Promise, Concurrent::Promises, Concurrent::Array/Hash, and Concurrent::Atom — not the low-level ReadWriteLock.

This is a synchronization correctness issue in the public Concurrent::ReadWriteLock API. It should not be framed as an authorization bypass; the lock is an in-process concurrency primitive, not an access-control boundary. The bug requires an attacker to execute code that has access to the same Concurrent::ReadWriteLock object. It is an in-process API misuse issue, not a remotely reachable vulnerability.

Mitigation

The concurrent-ruby package ships `Concurrent::ReadWriteLock`, which contains a synchronization flaw allowing concurrent readers and writers under high-contention workloads.

Updating to concurrent-ruby version 1.3.5 or later resolves this issue.

Common Vulnerability Scoring System (CVSS) Score Details

Info alert:Important note

CVSS scores for open source components depend on vendor-specific factors (e.g. version or build chain). Therefore, Red Hat's score and impact rating can be different from NVD and other vendors. Red Hat remains the authoritative CVE Naming Authority (CNA) source for its products and services (see Red Hat classifications).

The following CVSS metrics and score provided are preliminary and subject to review.

CVSS v3 Score Breakdown

Red HatNVDcve.org
Base Score3.69.8N/A
Attack VectorLocalNetworkN/A
Attack ComplexityHighLowN/A
Privileges RequiredLowNoneN/A
User InteractionNoneNoneN/A
ScopeUnchangedUnchangedN/A
ConfidentialityNoneHighN/A
Integrity ImpactLowHighN/A
Availability ImpactLowHighN/A

Vector

Red Hat: CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:N/I:L/A:L

NVD: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

Red Hat CVSS v3 Score Explanation

Rationale about the difference between NVD and RH CVSS:

  • AV:N → AV:Lconcurrent-ruby is an in-process Ruby library, and the ReadWriteLock synchronization flaw is only exploitable by code executing within the same Ruby process that has access to the affected lock instance. It is not directly reachable over the network.
  • AC:L → AC:H — Successful exploitation depends on a specific concurrent execution state: another thread must already hold the affected lock, and the attacker must invoke the release operation while that lock is active. These timing and environmental conditions increase the attack complexity beyond a straightforward API call.
  • C:H → C:N — No confidentiality impact. The vulnerability affects synchronization semantics only and does not expose or disclose protected information.
  • I:H → I:L — The flaw can violate mutual exclusion, resulting in race conditions, stale reads, lost updates, or corruption of application-managed shared state within the affected critical section. However, its impact is limited to the application's synchronization logic and does not enable arbitrary modification of system resources or a broader integrity compromise.
  • A:H → A:L — The vulnerability can disrupt normal application behavior by corrupting lock state or triggering synchronization failures, but it does not inherently cause a persistent denial of service or complete loss of availability of the affected component. Its availability impact is therefore limited.

Understanding the Weakness (CWE)

Integrity,Confidentiality,Other

Technical Impact: Modify Application Data; Read Application Data; Alter Execution Logic

Frequently Asked Questions

Want to get errata notifications? Sign up here.