Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessLure developer running rojo serve to malicious page
-
DeliveryDNS rebind browser to localhost:34872
-
ExploitSend API requests bypassing origin check
-
ExecutionRead project source and write malicious files
-
ImpactInvoke /api/open to launch local program
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A07:2025 - Authentication Failures
ASVS 5.0
V6 - Authentication DNS-independent verification
|
| Exploitation Conditions | Requires the victim to be actively running 'rojo serve' (default bind localhost, default port 34872) with the pre-patch build that performs no Host/Origin header validation and does not gate /api/open to local clients. The developer must, during that session, visit an attacker-controlled webpage in a browser on the same machine; the attacker must control DNS to perform the rebinding. Limiting factors: exploitation is bounded to machines running the dev server at the moment of the visit, requires user interaction (visiting the page) and attacker DNS infrastructure, and is neutralized by the patched version's Host/Origin validation, the --allowed-hosts / serveAllowedHosts allowlist, or binding away from network-reachable addresses. |
| Impact | The NVD CVSS 3.1 vector (CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:N = 8.1 High) is well-supported by the description: a network-reachable attack (via a browser the victim controls) with no authentication, requiring only that the developer visit a malicious page (UI:R). The impact is understated by the 'Information Disclosure' tag - the description confirms the attacker can not only read all project source (C:H) but also write arbitrary code to disk (I:H) and launch local programs via opener::open(), which is effectively local code execution on the developer's machine. No EPSS score, no CISA KEV listing, and no public POC are present in the provided data, so there is no evidence of active or automated exploitation; absence of these signals is expected for a niche developer tool and does not lower the technical severity. The one moderating factor is that DNS rebinding requires attacker-controlled DNS infrastructure and a victim actively running 'rojo serve' during a browsing session - realistic for the target audience but not a mass-exploitable internet-facing service. This is a genuinely serious flaw for affected users (read/write/RCE with only a page visit) rather than a high-CVSS-but-low-impact issue, but its real-world blast radius is bounded by the small, developer-only install base. |
| Exploit ScenarioDerived | A Roblox developer runs 'rojo serve' (default localhost:34872) during a project session and, in the same browser, visits a malicious webpage. The page uses DNS rebinding to bypass the same-origin policy and reach the unauthenticated local API, then reads the entire project source, writes attacker-controlled code into the project files, and invokes /api/open to launch a local program - achieving code execution with no interaction beyond the page visit. No public exploit code is identified at time of analysis, though the technique (DNS rebinding against an unvalidated local HTTP API) is well-documented. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Sep 25, 2026
DNS rebinding against Rojo's unauthenticated 'rojo serve' HTTP API (default bind localhost, port 34872) allows a malicious webpage to read every file in the served project, write attacker-controlled code to disk, and trigger execution of local programs through the opener::open() handler. The issue affects pre-patch builds of the rojo-rbx/rojo crate and is network-reachable and unauthenticated (CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:N, 8.1 High), but requires the developer to be running 'rojo serve' at the moment they visit an attacker-controlled page and requires the attacker to control DNS for the rebinding; no public exploit code was identified at time of analysis and the flaw is not in CISA KEV. Impact is high for both confidentiality and integrity (full project source disclosure and arbitrary file writes) with no availability impact; exploitation is bounded to machines actively running the dev server.
RemediationAI
Apply the upstream fix in https://github.com/rojo-rbx/rojo/pull/1270, which adds Host/Origin validation to 'rojo serve', gates the /api/open handler to loopback clients, and warns on network-reachable binds; this is an upstream fix available via PR/commit and a released patched version is not independently confirmed at time of analysis, so verify against the RustSec advisory (https://rustsec.org/advisories/RUSTSEC-2026-0279.html) and the project changelog before relying on a specific tagged release. Until patched, the highest-value compensating control is to keep the server bound to loopback only (the default) and to tunnel remote access over SSH, Tailscale, or WireGuard rather than rebinding to 0.0.0.0 or a LAN address; note that tunneling requires client-side configuration and adds latency. If a network-reachable bind is unavoidable, restrict it with a host firewall to known client IPs and configure an explicit allowlist via '--allowed-hosts' or the project's 'serveAllowedHosts' field, understanding that listing any host also enables validation for otherwise-unvalidated binds such as 0.0.0.0 and that the CLI flag replaces (does not merge with) the project setting, which can surprise operators. Additional hardening with side effects to weigh: stop 'rojo serve' whenever it is not actively needed and avoid browsing untrusted sites while it runs, since the attack requires the developer to visit a malicious page during an active session; or run the dev server inside a container/VM with the project mounted read-only where feasible, which limits file-write and local-launch impact but disrupts normal sync workflows.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in cargo
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
Rojo is a Rust-based development tool that syncs a Roblox project tree to Roblox Studio, and its 'rojo serve' subcommand exposes a local HTTP API (default port 34872) that syncs project files and can open files/URLs via the opener crate. Because the server performed no validation of the Host or Origin headers, a browser could be induced via DNS rebinding to resolve an attacker-controlled hostname to 127.0.0.1 and then send same-origin requests to the local API, bypassing the browser's same-origin protection. CWE-350 (Reliance on Reverse DNS Resolution for a Security-Critical Action) captures the root cause: the service trusted the name used to reach it rather than enforcing an allowlist of expected Host/Origin values. The upstream fix in PR #1270 adds Host/Origin validation, gates the /api/open endpoint to loopback clients, warns when the server is bound to a network-reachable address, and introduces a configurable allowlist via the '--allowed-hosts' CLI flag and the project's 'serveAllowedHosts' field. Because the API is entirely unauthenticated (CVSS PR:N), any party able to reach the socket can read and modify project source, which makes accidental network exposure (for example binding 0.0.0.0) a separate, closely related risk highlighted by the new startup warning.
Know when Rojo gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:N
Reachable via the victim's browser (AV:N) with no auth (PR:N) but requires visiting a malicious page (UI:R); unvalidated local API yields source read (C:H) plus file write and program launch (I:H); no availability impact.
Primary rating from Vendor (redhat-cnalr).
CVSS VectorVendor: redhat-cnalr
DescriptionCVE.org
Rojo's "rojo serve" HTTP API (default port 34872) has no Host/Origin header validation, making it vulnerable to DNS rebinding. A malicious webpage can read all project source, write malicious code to files on disk, and launch local programs via opener::open() with no user interaction beyond visiting the page.
Executive ViewAI
The Rojo development server, used by Roblox developers, contains a high-severity vulnerability that could allow an unauthenticated attacker to read all project source code and write malicious code to disk if a developer visits a compromised website while the server is running. This poses a significant risk to intellectual property and software supply chain integrity for development teams. Although no public exploit identified at time of analysis, and exploitation requires specific conditions, leadership should prioritize patching because the impact on confidentiality and integrity is high.
Apply vendor patch.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
EUVD-2026-86991
NVD
CVE.org
EPSS
Vulnrichment
GitHub
Exploit-DB