ZeroHour

CVE-2026-10144

moderate

Command Injection in Rsbuild's macOS Browser-Open (server.open) Before 2.0.9

CVSS 4.0
7.1 high
EPSS
Published
()
Modified
AI analysis

Rsbuild prior to 2.0.9 contains an OS command injection flaw (CWE-78) in the dev server's browser-opening routine on macOS. When a developer starts the dev server with the server.open configuration set to a crafted URL containing shell metacharacters, the openBrowser() function in packages/core/src/server/open.ts only sanitizes the URL with encodeURI(), which leaves dollar signs, parentheses, and semicolons intact; the URL is then interpolated into a command run through child_process.exec(), so /bin/sh evaluates the injected metacharacters. Successful exploitation executes arbitrary OS commands with the developer's privileges on their Mac, with high impact on local confidentiality, integrity, and availability. The realistic attack path is user-interaction-driven: a malicious or cloned repository or shared config that hard-codes a server.open URL, which is executed when the victim runs the dev server (reflected in the CVSS 4.0 vector: local attack vector, no privileges required, user interaction required, 7.1 high). There is no known public PoC, no known in-the-wild exploitation, and the CVE is not on the CISA KEV list.

What to do: Upgrade @rsbuild/core (and related Rsbuild packages) to version 2.0.9 or later. Audit any rsbuild.config.* files — especially from cloned repositories, templates, or shared configs — for a custom server.open URL containing shell metacharacters such as $, (, ), or ;, and treat untrusted project configs as untrusted code. macOS developers who ran suspect configs should check for signs of unexpected command execution (shell history, unknown processes, modified dotfiles).

Affected
web-infra-dev (ByteDance / Rspack team) Rsbuild (@rsbuild/core)all versions before 2.0.9 (flaw is macOS-specific)
Estimated exposure
moderatetens of thousands of developer machines (macOS-only subset; clearly an estimate) — Rsbuild is a developer build tool distributed via npm with download volume on the order of ~100k per week, implying a distinct developer base in the tens of thousands, of whom only macOS users who run a project with a malicious/unsanitized…

Order-of-magnitude estimate by the model from install counts, market share and public scan data it knows; verify before quoting.

Description

Rsbuild before 2.0.9 contains a command injection vulnerability that allows attackers to execute arbitrary OS commands by supplying a crafted URL containing shell metacharacters to the server.open configuration on macOS. The openBrowser() function in packages/core/src/server/open.ts passes the URL through encodeURI() before interpolating it into a shell command executed via child_process.exec(), but because encodeURI() does not encode dollar signs, parentheses, or semicolons, embedded shell metacharacters are evaluated by /bin/sh, enabling arbitrary command execution.

Weakness
CWE-78
Vector
CVSS:4.0/AV:L/AC:L/AT:P/PR:N/UI:A/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X

In the news

No ingested article mentions this CVE yet.