Skip to main content

Kilo Code CVE-2026-79403

| EUVDEUVD-2026-89423 HIGH
Improper Handling of Insufficient Permissions or Privileges (CWE-280)
2026-09-29 mitre GHSA-vmfg-8hhv-69wh
8.4
CVSS 3.1 · Vendor: mitre
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Gain local foothold on dev host
  2. Delivery
    Reach localhost Kilo Code daemon port
  3. Exploit
    POST /permission/allow-everything unauthenticated
  4. Execution
    Permission prompts disabled
  5. Persist
    Issue arbitrary command via agent
  6. Impact
    Execute code as victim user

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A10:2025 - Mishandling of Exceptional Conditions
ASVS 5.0
V8 - Authorization Insufficient permission handling
Exploitation Conditions

Requires the Kilo Code CLI daemon/TUI HTTP server to be running on the target host AND the attacker to have local access to its loopback listener (another local user account, a malicious local process/dependency, or a browser/tool able to reach the localhost port). Pre-fix, the daemon used a hardcoded default password ('kilo') and the /permission/allow-everything route performed no auth check, so no credentials were needed. Exploitation is LIMITED to versions before v7.4.1 and to environments where an attacker already has some local code-execution or network reach to the local service - it is not remotely exploitable across the network and needs no user interaction once local reach is obtained.

Impact

This is a genuine but access-gated code-execution flaw, not an internet-facing crisis. The provided CVSS 3.1 vector (AV:L/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H = 8.4 HIGH) is internally consistent with the source evidence: the vulnerable /permission/allow-everything HTTP route is bound locally and, before the fix, accepted unauthenticated callers (PR:N) - but AV:L means an attacker must already have local presence (a logged-in user, a malicious local process, or a hostile website/tool able to reach the localhost daemon port). The SSVC framework corroborates a low-urgency posture: Exploitation=none (no observed exploitation), Automatable=no, Technical Impact=total - i.e. high impact per exploit but not mass-exploitable. No EPSS score, no CISA KEV listing, and no vendor-claimed active exploitation are present in the input, so there is 'no public exploit identified' in the structured feeds - however a proof-of-concept gist (akinerkisa) IS referenced alongside the fixing PR/commit, so working exploitation detail is effectively public even though it is not tracked as a formal POC flag. Net: prioritize for anyone running Kilo Code CLI on multi-user or untrusted-local-code hosts, but the local-only vector sharply limits blast radius versus the raw 8.4 score.

Exploit ScenarioDerived

On a host where the Kilo Code CLI daemon is running, a local attacker - a low-privileged user account, a malicious dependency/build script, or a web page exploiting the localhost HTTP listener - sends a request to the unauthenticated /permission/allow-everything endpoint to disable all permission prompts, then drives the agent to run arbitrary shell commands with the victim's privileges. A proof-of-concept gist is publicly referenced, and the daemon's hardcoded default password ('kilo') made the pre-fix listener trivially reachable.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
No patch listed yet 0.1% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Oct 01, 2026

Unauthenticated local privilege abuse in the Kilo Code CLI (versions before v7.4.1) lets any local process or user that can reach the daemon/TUI loopback HTTP listener toggle the '/permission/allow-everything' permission mode and then drive the agent into executing arbitrary code on the host. The issue combines two weaknesses: the daemon shipped a hardcoded default Basic-auth password of 'kilo', and the permission-toggle route was exempted from authentication whenever global auth was optional, so no credentials were required at all (CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H, base 8.4, CWE-280). Exploitation is not network-remote: it requires the daemon/TUI HTTP server to be running and the attacker to already have local reach to its loopback port, so it is access-gated rather than an internet-facing crisis; no public exploit code was identified at time of analysis, CISA SSVC records Exploitation as 'none' with Automatable 'no', and no EPSS score was supplied.

RemediationAI

Update Kilo Code CLI to v7.4.1 or later (vendor-released patch delivered via GitHub PR Kilo-Org/kilocode#11887, commit 51e45d7fb7), which forces authentication on '/permission/allow-everything', fail-closes high-risk unauthenticated endpoints, and replaces the hardcoded 'kilo' Basic-auth password with a per-process randomUUID(). Verify the upgrade by confirming requests to the permission endpoint are rejected with 401 without valid credentials. If upgrading is not immediately possible, compensating controls must account for the fact that the pre-fix daemon offers no supported way to set its password (the KILO_SERVER_USERNAME/KILO_SERVER_PASSWORD flags are introduced by the fix itself), so the practical options are: (1) do not run the CLI daemon/TUI HTTP server on multi-user or untrusted hosts - trade-off is loss of daemon/TUI functionality for all users of that host; (2) run Kilo Code inside a dedicated container, namespace, or VM with no other local tenants and no shared loopback reachability - trade-off is reduced integration convenience with host tooling and files; (3) restrict which local accounts and processes can open sockets to the daemon's loopback port using OS-level access controls (per-user network namespaces, firewalling loopback by UID, or SELinux/AppArmor-style socket mediation) - trade-off is configuration complexity and possible breakage of legitimate local SDK/TUI clients; and (4) avoid leaving long-lived interactive agent sessions running unattended with broad file and shell access, since the exploited endpoint escalates the agent's own privilege to 'allow everything'. Note that no public exploit code was identified at time of analysis and CISA SSVC rates the issue as not automatable, but the local-only attack surface means the primary defense is upgrading plus limiting local reach to the loopback listener.

Affected VersionsENISA

n/a n/a

Affects your stack

Find out whether the stacks and servers you run are on an affected version.

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

Kilo Code is an AI coding agent distributed as the @kilocode/cli package and built on an opencode-derived HTTP server stack. The daemon and TUI spawn a local HTTP API (an Effect-based server with an authorization middleware layer) that exposes instance routes, including '/permission/allow-everything', which relaxes the agent's tool/command permission gating. Root cause is CWE-280, Improper Handling of Insufficient Privileges: the route was treated as optional-auth even when the server's global auth requirement was disabled, and the daemon's Basic-auth credential defaulted to the static string 'kilo' rather than a per-instance secret. The upstream fix (PR Kilo-Org/kilocode#11887) adds a REQUIRED_AUTH_PATHS set that forces authentication for '/permission/allow-everything' regardless of the global policy, introduces a guarded() helper that fail-closes on high-risk endpoints, replaces the hardcoded 'kilo' password with crypto.randomUUID(), and derives shared worker credentials (KILO_SERVER_USERNAME/KILO_SERVER_PASSWORD via ServerAuth.headers) so the spawned worker server and the TUI's own SDK clients authenticate with matching Basic-auth material. The change notes explicitly state the intent: 'Require authentication before enabling allow-everything permissions over HTTP.' The provided CPE string is a placeholder (n/a:n/a) and does not resolve to a concrete product, so product identification rests on the package name and commit evidence rather than CPE data.

Know when the next one hits your stack

  • 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

Vendor (mitre) PRIMARY 8.4 HIGH
AV:L/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
vuln.today AI 8.4 HIGH

Local loopback listener with no pre-fix authentication (AV:L, PR:N, UI:N); toggling allow-everything yields full arbitrary command execution as the user, so C:H/I:H/A:H.

3.1 AV:L/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
4.0 AV:L/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N

Primary rating from Vendor (mitre).

CVSS VectorVendor: mitre

Attack Vector
Local
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
High
Availability
High

Lifecycle Timeline

3
CVSS changed
Sep 30, 2026 - 22:08 NVD
8.4 (None) 8.4 (HIGH)
CVE Published
Sep 29, 2026 - 00:00 cve.org
UNKNOWN (no severity yet)
CVE Published
Sep 29, 2026 - 00:00 cve.org
HIGH 8.4

DescriptionCVE.org

An issue in Kilo Code before v7.4.1 allows a local attacker to execute arbitrary code via the permission/allow-everything endpoint

Executive ViewAI

Why It Matters

Kilo Code CLI releases before v7.4.1 contain a permission-bypass flaw that lets any process or user with access to a developer workstation hijack the local agent daemon and execute arbitrary code under that developer's account. The exposure matters because coding agents typically run alongside source repositories, cloud credentials, SSH keys, and CI/CD tokens, so a single compromised or malicious local account can pivot into broader corporate systems. The flaw is access-gated to hosts running the daemon and reachable on its loopback listener, making this a developer-endpoint risk rather than an internet-facing emergency.

Business Impact: High
Compensating Controls

No vendor-released patch identified at time of analysis; interim mitigations are to enable mandatory authentication on the daemon and TUI listener, replace the hardcoded default Basic-auth password 'kilo' with a unique per-host secret, disable the daemon and the /permission/allow-everything toggle when not actively in use, restrict local logon and process access on affected developer endpoints, and rotate any credentials or tokens stored on exposed hosts. If the v7.4.1 build is obtainable and vendor-confirmed as fixed, upgrade to it.

Threat Intelligence Overview

EPSS Score
0.1%
Top 98% exploitable
Prevalence
Low
niche open-source AI coding CLI (opencode fork), developer-only footprint
Data Quality
5 sources
Confidence: Medium

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.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 0.1%
Patch available No
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision
Defer
Exploitation
None
System Exposure· derived
Small
Automatable
No
Human Impact
High
Technical Impact
Total

Priority Score

42
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +42
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Remote Code Execution represents the critical moment when an attacker successfully runs arbitrary code on a target system without physical access.

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy