Summary
CVE-2026-9317 is a missing authentication vulnerability in Nango’s runner tRPC server that allows unauthenticated attackers to execute arbitrary JavaScript code within the runner process. It affects all Nango versions prior to 0.71.6 and carries a CVSS v4.0 base score of 9.2 (Critical), reflecting network exploitability with no authentication or user interaction required.
Technical details
- Root cause: the runner tRPC server exposes a "start" procedure without enforcing authentication; the
RUNNER_SECRET_KEYenvironment variable intended to protect it is not actually validated. - Trigger condition: an attacker only needs network access to the runner port to invoke the exposed start procedure directly.
- Attack vector: network-based, no privileges or user interaction required (CWE-306: Missing Authentication for Critical Function).
- Impact: remote code execution — arbitrary JavaScript is executed within the runner process, which handles integration/connector logic, potentially compromising confidentiality, integrity, and availability of the runner and any credentials/data it processes.
Affected software
- NangoHQ Nango: all versions prior to 0.71.6
Severity
- CVSS v4.0: 9.2 (Critical) —
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N - CVSS v3.1: 8.1 (High) —
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H
Mitigation and recommended actions
- Immediate: upgrade Nango to version 0.71.6 or later, which enforces authentication on the affected tRPC procedures.
- If patching is not immediately feasible: restrict network access to the runner port to trusted internal subnets hosting the main Nango application only, apply strict firewall rules, and ensure no public-facing load balancer exposes the runner port; audit environment variable enforcement to confirm
RUNNER_SECRET_KEY(or its successor controls) is properly validated.
How IONIX identifies potentially affected assets
IONIX matches the following signals against data already collected when it crawled the asset; identifying the technology sends no request beyond that crawl.
- Named response header
access-control-expose-headers:X-Nango-Signature - Named
<meta>tag content (nango-env-hash): any non-empty value

