Are you affected?
Bun is also affected: upgrade to 1.4.4 or newer. Linux distribution Node.js packages may use the system Brotli library instead, so check your distribution’s advisory too.
An application is exposed when it decompresses Brotli data an attacker controls. The common cases:
- Servers that decode request bodies sent with
Content-Encoding: br, such as Express 5 and body-parser 2.x. A bare Node.js HTTP server doesn’t do this on its own. - Outbound calls with
fetch(), which decompresses Brotli responses automatically. Webhooks and features that call user-supplied URLs are the typical targets. - Direct use of the
node:zlibBrotli functions on untrusted input.
- A finding: vulnerable.
- Recent credentialed scan, no finding: likely fixed.
- No recent credentialed scan: unknown. Treat it as vulnerable until it’s scanned.
What ThreatAware can do on your plan
Find affected devices
1. Find the gaps in your scanner’s coverage
This works exactly as for PHP2Shell: use the integration columns in Devices on Connect, and Vitals on Discover. For example, with Microsoft Defender as your scanner:
Swap in your scanner: type
system. in the query bar and autocomplete lists your integrations.
2. Spot likely Node.js installs with software inventory
Treat it as a guide, not a vulnerability check. A software query only matches where a connected tool lists Node.js as installed software, so many installs never appear (see Blind spots). Software data refreshes about every two days. The query bar is case sensitive, so try
Node.js, node and nodejs.nodejs* in place of Node.js*.
If a later patch release comes out in the same line, add it to the query. As with PHP, Linux distribution packages can carry a fix without changing the version number.
Track the fix
- Run a query from step 1 or step 2 and click Track View. Choose Snapshot and set a Deadline. See Tracked Views.
- In Action Center, build a flow triggered by that tracked view to email the device owners or open tickets.
- Save the query as a view and send a daily Scheduled Report of it until it’s empty.
Blind spots
Much of the Node.js that matters here lives where ThreatAware can’t see installed software:
Until you can patch, Node.js offers no workaround. As a stopgap, reject requests with
Content-Encoding: br at your reverse proxy, load balancer or middleware. That doesn’t protect Brotli responses your applications fetch from other servers.