Severity by source
AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H
AV:L because the target is a local dev server; PR:N because the dev server has no authentication; UI:R because DNS rebinding requires the developer to visit an attacker page.
Primary rating from Vendor (cisa-cg).
CVSS VectorVendor: cisa-cg
Lifecycle Timeline
3DescriptionCVE.org
Genkit does not properly validate host request headers. Any host on the developer's network, and any website the developer visits (via DNS rebinding), can reach POST /api/runAction on the Dev UI server (default port 4000) and execute any registered Genkit action and read the result. Fixed on 2026-06-18.
AnalysisAI
DNS rebinding and local-network exposure in the Genkit Developer UI server (default port 4000) allows any attacker-controlled website visited by the developer, or any host on the developer's local network, to invoke POST /api/runAction and execute arbitrary registered Genkit actions, reading full results. The root cause is absent Host header validation combined with the server binding to all network interfaces rather than loopback only. No public exploit or CISA KEV listing has been identified; the upstream fix was merged on 2026-06-18 per GitHub PR #5587 and independently corroborated by a CISA CSAF advisory.
Technical ContextAI
Genkit (cpe:2.3:a:genkit-ai:genkit:*:*:*:*:*:*:*:*) is Google's open-source framework for building AI-powered applications in Node.js. Its development workflow includes a local Dev UI Express server that exposes internal action-dispatch endpoints - most critically POST /api/runAction - used to trigger model calls, flows, and other registered Genkit actions. Before the fix, this server bound to all network interfaces and applied no Host header validation, violating CWE-644 (Improper Neutralization of HTTP Headers for Scripting Syntax). DNS rebinding exploits this by having the developer's browser request a page from an attacker domain whose DNS TTL expires and is re-resolved to 127.0.0.1; the browser then treats subsequent requests as same-origin and forwards them to localhost:4000 with the attacker's chosen Host header. The fix (PR #5587) introduces a new dev-server-security.ts module with rejectNonLoopbackHost Express middleware that validates the Host header against loopback values (localhost, 127.0.0.1, ::1, *.localhost) and simultaneously changes the server's bind address from wildcard to 'localhost' via getDevServerHost(), closing both the DNS rebinding and local-network attack paths in a single change.
RemediationAI
Update to a Genkit release incorporating the fix from PR #5587 (merged 2026-06-18); this is the primary and complete remediation as confirmed by the upstream patch. The fix both adds the rejectNonLoopbackHost Express middleware and restricts the server's bind address to loopback. Developers who cannot update immediately should apply two compensating controls: first, set the environment variable GENKIT_DEV_SERVER_HOST to 'localhost' or '127.0.0.1' explicitly if their installation supports it - this is the escape hatch the new code provides and enforces loopback binding; second, use browser-level DNS rebinding protections such as enabling Chrome's experimental DNS rebinding protection flag or running a local DNS resolver that blocks external domains from resolving to RFC 1918 addresses. Avoid running the Genkit Dev UI on machines connected to untrusted networks (public Wi-Fi, shared office segments). The CISA CSAF advisory is at https://raw.githubusercontent.com/cisagov/CSAF/develop/csaf_files/IT/white/2026/va-26-223-01.json. Note that the patched exact npm package version number is not independently confirmed from available data - verify the fix version against the npm registry or GitHub releases.
Same technique Information Disclosure
View allShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-56240
GHSA-vj3w-h7v3-5rpr