/

CVE-2026-55897

Severity:

HIGH RISK

(8.8)

Command Injection (CWE-78) in OpenWrt Reboot Web App

CVE-2026-55897

Deferred

Vulnerability type

Category:

OS Command Injection

CWE:

CWE-78

Impact:

Root-Level Command Execution

Severity:

HIGH RISK

(8.8)

CVSS version:

3.1

Catch this CVE while code is being written

Detect vulnerable code directly in pull requests, so CVEs are fixed before merge.

Summary

A command injection vulnerability in luci-app-advanced-reboot allows an authenticated delegated LuCI session to execute attacker-controlled commands through an overly broad rpcd permission for /bin/sh.

When the affected ACL is present, supplied parameters can cause commands to run with root privileges on the OpenWrt device.

Affected context

The issue occurs in OpenWrt deployments using luci-app-advanced-reboot configurations that grant rpcd file.exec access to the general-purpose /bin/sh interpreter. It requires a delegated authenticated session with access to the relevant read ACL and a request path that forwards caller-controlled parameters to the authorized executable. Builds that do not include this shell execution grant are not affected by this specific exploitation chain.

Exploit preconditions

  • Attack surface: LuCI web interface and its rpcd-backed application methods
  • Required access: An authenticated delegated session authorized by the affected ACL
  • Trigger point: A reboot operation or related RPC request that passes caller-controlled parameters to /bin/sh
  • Why exploitation is possible: rpcd authorizes the shell executable but does not sufficiently restrict the arguments supplied to it, allowing shell command interpretation with the privileges of the rpcd process

Why this happens

The underlying flaw is excessive execution authority combined with insufficient argument control. The ACL grants permission to execute a general-purpose shell rather than a narrowly scoped helper, while caller-controlled parameters reach that interpreter without adequate separation between data and shell syntax.

This behavior maps to CWE-78: Improper Neutralization of Special Elements used in an OS Command, because untrusted input can influence command interpretation and execution.

Potential impact

  • An attacker may execute arbitrary operating-system commands
  • The router could be fully compromised with root privileges
  • Configuration, credentials, and network traffic could be exposed
  • Firewall, routing, or DNS settings could be altered
  • The device could be used for persistence, lateral movement, or further attacks

General mitigation guidance

Mitigation generally focuses on removing shell interpretation from web-triggered operations and minimizing execution authority.

Common defensive patterns include:

  • Replace general /bin/sh execution with narrowly scoped, fixed-function helper operations
  • Use structured arguments and strict allowlists instead of concatenated shell commands
  • Validate and constrain every parameter before it reaches an execution boundary
  • Remove broad rpcd file.exec permissions from delegated ACLs
  • Apply least-privilege identities and capabilities to RPC services
  • Treat authenticated delegated sessions as potentially limited-trust principals
  • Use read-only or policy-controlled configuration where feasible

How teams detect issues like this

Organizations can look for this class of issue through:

  • Static analysis rules identifying web or RPC parameters passed to shell interpreters
  • Code review checks for file.exec ACL entries targeting general-purpose shells
  • Searches for command construction, string concatenation, or unescaped arguments near process execution APIs
  • Policy enforcement that blocks delegated permissions for interpreters and other general-purpose executables
  • Runtime monitoring of rpcd-launched processes, unusual shell children, and unexpected root-level command activity
  • Automated security review tools that flag command execution paths and overly broad authorization rules

Sources

SourceLink
github.comgithub.com/openwrt/luci/commit/2df00deb122093cbf429266ffef7ad06aaecb48f
github.comgithub.com/openwrt/luci/commit/f85102548ee8325bfd581a0327b210b5f7670829
github.comgithub.com/openwrt/luci/pull/8710
github.comgithub.com/openwrt/luci/security/advisories/GHSA-vj96-f37g-37f6

Frequently asked

questions

It can be reachable through the router's LuCI web interface when that interface is exposed to the attacker and the affected ACL is enabled. Exploitation still requires an authenticated delegated session with the necessary authorization.

No. The relevant session does not need to begin with root privileges; the vulnerable execution path can cause authorized shell commands to run with the privileges of the rpcd service, potentially root.

Avoid granting delegated users permission to execute /bin/sh. Replace shell-based operations with fixed-function helpers, strict argument allowlists, and narrowly scoped RPC permissions.

Review ACLs as security boundaries, prohibit general-purpose interpreters in delegated execution permissions, separate data from commands, and monitor privileged process execution initiated by web-facing services.

Find out what's already
exploitable in your codebase.