Urgent.News

What's breaking now, across thousands of outlets.

Tech

Node.js patched a code-execution Brotli bug October 21

Imperva's researchers ran attacker-supplied code on an official Node.js 24.22.0 image for Linux arm64, with no debugger and no custom build, by feeding crafted data to the Brotli decoder that Node bundles. The proof of concept, which they call Node2Shell, targets CVE-2026-111497. Node.js disclosed the flaw and shipped fixes on October 21. The result comes with limits worth stating up front. The…

Node.js has released a patch to address a code-execution vulnerability in its Brotli decoder on October 21. The flaw, known as CVE-2026-111497, allows attacker-controlled data to be fed into the decoder, causing it to execute arbitrary code. This proof of concept, dubbed Node2Shell, was tested by Imperva researchers and demonstrated on an official Node.js 24.22.0 image for Linux arm64.

However, code execution was not achieved on every attempt and required several tries in that specific setup. The fixed build, 24.22.1, rejected the same input and prevented any code from running.

The vulnerability arises when the Brotli stream announces block types during decoding, but the stream structure rules out a block change that the decoder treats as a request for more input. This leads to an out-of-bounds write, which is the root cause of the issue. Node.js addressed this by incorporating an upstream Brotli patch that causes the decoder to stop with a format error instead of continuing. This patch is included in all current lines, including 22.x, 24.x, and 26.x.

Applications built on Node.js are exposed to this vulnerability, as the decoder is bundled. Any application that either receives Brotli-compressed responses or sends Brotli-compressed request bodies through Node.js middleware, such as Express 5's body parsers, is at risk. Imperva confirmed that they were able to reproduce code execution through both the request-body and response paths using Express 5.0.0 through 5.3.0 and body-parser 2.0.0 through 2.3.0.

The response path is particularly concerning, as it does not require an attacker to reach your request handlers. A service that fetches from an upstream server and returns Brotli-encoded responses is also vulnerable.

To mitigate the risk, users should upgrade to the patched release, 24.22.1. There are no in-runtime workarounds available, so affected applications must be updated. As the fix is not available for Node.js versions 20.x and earlier, which are end-of-life, these versions must be moved to a supported line regardless. For applications that cannot update immediately, Imperva recommends limiting untrusted Brotli traffic on affected paths and implementing additional security measures, such as blocking the attack in inbound requests using a web application firewall.

Major platforms like Vercel have also added rules to their Node.js deployments to protect against this vulnerability.

Written by urgent.news from Dev.to's reporting — not their text. Machine-written — may contain errors; check the original before relying on it.

Read the original at dev.to →

More in Tech

anti-slop-vision: Vision quality gates: prompt hygiene plus a VLM judge…

Most anti-slop-vision write-ups stop at the README: here is what the tool does, here is how you run it. This one covers what it refuses to do, and where it breaks.

  • Vision quality gates use prompt hygiene and VLM judge rubric
  • Tool eliminates visual slop and hallucinations before delivery
  • Install with Python 3 using command python3 scripts/eval.py

SSRF on a media server: the cloud instance case

SSRF on a media server: the cloud instance case A media server in a living room and the same software in a cloud virtual machine are not the same risk.

  • SSRF vulnerability in Plex Media Server affects cloud instances.
  • Attackers target instance metadata service for credentials and config data.
  • Cloud providers' defenses do not render the endpoint irrelevant.

Hyperbolic tiling in Python: draw Escher's Poincare disc and 3D print it

Escher's Circle Limit prints show a hyperbolic tiling squeezed into a disc, with tiles shrinking toward the rim. The maths is short: a tile edge is a circle that meets the unit circle at right angles…

  • Escher's Circle Limit prints illustrate hyperbolic tiling within a disc.
  • {7,3} tiling involves heptagons with three at each corner.
  • 3D print ornament using manifold3d with specified parameters.

The agent drifts from your requirement while the context fills up

You ask for one behavior: add a validation that rejects a malformed id before the request reaches the handler. The agent reads the route, finds the schema file, runs a couple of searches, edits two…

  • Agent completed task without implementing validation for malformed ids
  • Validation criteria not included in final code changes
  • Acceptance block not referenced during final diff review

More from Friday 23 October →