CyberSecBulletin
CVE-2024-27935NVD status: Analyzed

deno: Exposure of Data Element to Wrong Session

CVE-2024-27935 is a high-severity exposure of data element to wrong session vulnerability in deno from Denoland, with a CVSS 3.1 base score of 8.3 out of 10. It can be exploited remotely over the network by an unauthenticated attacker, without any action from a user. Affected deno versions: >= 1.35.1, < 1.36.3; 1.35.1 through 1.36.3. The record does not name a fixed version, so check the vendor advisory. There is no confirmed exploitation so far. EPSS estimates a 0.72% chance of exploitation within 30 days, higher than 55% of scored CVEs.

Next patch cycle

High severity with no evidence of exploitation so far.

What to do

  1. Check which version of deno you run against the affected versions below, and install the vendor's latest release.
  2. Read the advisory on github.com for workarounds and exact fixed builds.
  3. Until you can update, restrict network access to the affected service so it is not reachable from untrusted networks.

Affected products and versions

VendorProductAffected versionsFixed in
Denolanddeno>= 1.35.1, < 1.36.3; 1.35.1 through 1.36.3Not stated

Version data comes from the organisation that assigned the CVE. Confirm against the vendor advisory before deciding you are unaffected.

How the severity score breaks down

Attack vector
NetworkCan be exploited remotely over a network, including the internet.
Attack complexity
LowNo special conditions are needed; the attack works reliably.
Privileges required
NoneNo account or login is needed.
User interaction
NoneNo action by a victim is required.
Scope
ChangedThe attack can reach beyond the vulnerable component into other systems.
Confidentiality
LowSome restricted data can be read.
Integrity
LowLimited modification of data is possible.
Availability
LowPerformance or availability is reduced.

Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:L/I:L/A:L. Scored by NVD.

Scoring systemScoreSeverityScored by
CVSS 3.17.2HighCNA (github.com)
CVSS 3.18.3HighNVD

Official description

Deno is a JavaScript, TypeScript, and WebAssembly runtime. Starting in version 1.35.1 and prior to version 1.36.3, a vulnerability in Deno's Node.js compatibility runtime allows for cross-session data contamination during simultaneous asynchronous reads from Node.js streams sourced from sockets or files. The issue arises from the re-use of a global buffer (BUF) in stream_wrap.ts used as a performance optimization to limit allocations during these asynchronous read operations. This can lead to data intended for one session being received by another session, potentially resulting in data corruption and unexpected behavior. This affects all users of Deno that use the node.js compatibility layer for network communication or other streams, including packages that may require node.js libraries indirectly. Version 1.36.3 contains a patch for this issue.

Source: the CVE record as published by its numbering authority, via NVD and CVE.org.

The underlying weakness: Exposure of Data Element to Wrong Session

The product does not sufficiently enforce boundaries between the states of different sessions, causing data to be provided to, or used by, the wrong session.

How developers prevent this class of flaw

  • Protect the application's sessions from information leakage. Make sure that a session's data is not used or visible by other sessions.
  • Use a static analysis tool to scan the code for information leakage vulnerabilities (e.g. Singleton Member Field).
  • In a multithreading environment, storing user data in Servlet member fields introduces a data access race condition. Do not use member fields to store information in the Servlet.

More Exposure of Data Element to Wrong Session vulnerabilities (CWE-488)

Timeline

  1. CVE record published.
  2. CISA published its SSVC assessment (exploitation: poc, automatable: no, technical impact: partial).
  3. Record last changed materially (score, affected products, status or references).

References

Technical write-ups (may include proof of concept)

Other vulnerabilities in deno

All deno vulnerabilities

Recent Exposure of Data Element to Wrong Session vulnerabilities

Spotted an error? Tell us.