Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessObtain delegated LuCI account with adblock-fast write ACL
-
DeliveryCall setCronEntry RPC with CR/LF in entry value
-
ExploitInjected newline writes extra line to /etc/crontabs/root
-
Executioncron executes injected command as UID 0
-
ImpactPersistent root command execution on router
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization CRLF sequence sanitization
|
| Exploitation Conditions | Requires an authenticated LuCI account that has been granted the luci-app-adblock-fast write ACL - a delegated/limited-privilege role, not a full admin, and explicitly not an unauthenticated user or a user lacking that specific ACL. The target must run luci-app-adblock-fast prior to 1.2.4-2 on OpenWrt with the setCronEntry RPC exposed (rpcd/ucode/luci.adblock-fast). Exploitation succeeds because the RPC does not strip carriage-return/line-feed from the 'entry' argument before writing to /etc/crontabs/root; the limiting factors are the mandatory pre-existing write-ACL grant and reliance on cron actually running to fire the injected root job. |
| Impact | The CVSS 3.1 vector (AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H = 8.8 High) is directionally sound but its network reach is materially gated by prerequisites the vector alone understates. Exploitation is NOT open to the internet at large: the description explicitly states the flaw is only demonstrated for an authenticated delegated user holding the luci-app-adblock-fast write ACL, and 'not demonstrated for unauthenticated callers or users without the component write ACL.' PR:L therefore correctly reflects an authenticated actor. The impact is severe and honest - CRLF injection into /etc/crontabs/root yields a root (UID 0) cron entry, i.e. full confidentiality/integrity/availability compromise of the router, so C:H/I:H/A:H is justified. One nuance worth flagging: because a narrowly-scoped LuCI ACL user escalates to full OS root, a Scope-changed rating (S:C) is defensible and would push the score higher - the vendor's S:U is conservative. No EPSS score, no CISA KEV listing, and no public POC are present in the supplied intelligence, so this is 'no public exploit identified at time of analysis' rather than confirmed exploitation. Net judgment: a genuinely high-impact post-authentication privilege-escalation-to-root bug, but its real-world priority is bounded by the requirement for an existing delegated account with the specific write ACL and by the niche deployment footprint - treat as high-priority patching for anyone who has provisioned delegated LuCI users on OpenWrt, but not an internet-facing spray-and-pray threat. |
| Exploit ScenarioDerived | An operator has delegated limited LuCI access to a semi-trusted user, granting only the luci-app-adblock-fast write ACL. That user calls the setCronEntry RPC with an 'entry' value containing an embedded carriage-return/line-feed, which the ucode backend writes verbatim into /etc/crontabs/root, appending an attacker-controlled physical cron line that executes an arbitrary command as UID 0 the next time cron fires. No public proof-of-concept is referenced in the supplied data; exploitation is straightforward given the required ACL because attack complexity is low. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Sep 21, 2026
Persistent root command execution in luci-app-adblock-fast prior to 1.2.4-2 on OpenWrt: an authenticated LuCI user who has been granted the component's write ACL can abuse the luci.adblock-fast.setCronEntry RPC by embedding carriage-return or line-feed characters in the entry argument. Because the value is serialized into /etc/crontabs/root as if it were a single line, the delegated user can create an additional physical cron entry that runs as UID 0 when cron executes. The CVSS 3.1 vector AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H (8.8 High) is directionally sound but materially gated by the mandatory pre-existing luci-app-adblock-fast write ACL and by cron actually running; exploitation is not demonstrated for unauthenticated users or users lacking that ACL. No public exploit identified at time of analysis, and the vendor fix is 1.2.4-2.
RemediationAI
Vendor-released patch: 1.2.4-2. Upgrade luci-app-adblock-fast to 1.2.4-2 or later using the OpenWrt package update process; this version removes the injectable setCronEntry RPC and replaces it with discrete validated schedule arguments. If immediate upgrade is not possible, restrict the luci-app-adblock-fast write ACL to fully trusted administrators only, which removes the delegated injection path but prevents less-trusted LuCI users from managing adblock-fast settings. Audit /etc/crontabs/root for unexpected entries and remove any injected lines; note that auditing is detective rather than preventive, and cron must still run for injected jobs to fire. Limit LuCI/rpcd exposure to trusted management networks via firewall rules, since network reachability plus the write ACL is required. See GHSA-ggpf-xrph-wg5v, PR 8705, and the referenced commits for fix details.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
The flaw is in the LuCI/RPCD ucode backend applications/luci-app-adblock-fast/root/usr/share/rpcd/ucode/luci.adblock-fast. The setCronEntry method accepts a client-supplied entry string and writes it into /etc/crontabs/root without neutralizing CR/LF characters, which is CWE-93 (Improper Neutralization of CRLF Sequences). Cron interprets each physical line as a separate job, so injected newline characters allow a caller to break out of the intended cron line and define an arbitrary root-level job. The CPE cpe:2.3:a:openwrt:luci-app-adblock-fast:*:*:*:*:*:*:*:* identifies the affected OpenWrt package before 1.2.4-2. The upstream fix in PR 8705 and commits 9ccd99b5898457e5ef39dc21aea226d7fb6e5c7e and f67461fd0255bf992b2b559c22ec288067f2f9da removes setCronEntry and replaces it with a syncCron RPC that passes discrete auto_update_* fields for server-side validation, eliminating the cron-line string injection path and the associated UCI write. Authentication is required per CVSS PR:L, and the account must also hold the luci-app-adblock-fast write ACL.
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
AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
Network RPC, low complexity, requires an authenticated delegated user with the component write ACL (PR:L); CRLF injection yields root command execution so full C/I/A; S:U kept per vendor though ACL-to-root escalation makes S:C defensible.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
2DescriptionCVE.org
luci-app-adblock-fast a WebUI for fast, lightweight DNS-based ad-blocker for OpenWrt that works with dnsmasq, smartdns, or unbound. Prior to 1.2.4-2, the luci.adblock-fast.setCronEntry RPC method accepts an entry argument containing carriage-return or line-feed characters and serializes it into /etc/crontabs/root as though it were one logical line. An authenticated delegated user with the luci-app-adblock-fast write ACL can therefore create an additional physical root cron entry through applications/luci-app-adblock-fast/root/usr/share/rpcd/ucode/luci.adblock-fast, resulting in persistent command execution as UID 0 when cron runs. The issue is not demonstrated for unauthenticated callers or users without the component write ACL. This vulnerability is fixed in 1.2.4-2.
Technical POC Analysis
CWE-93 (Improper Neutralization of CRLF Sequences / CRLF Injection), landing as persistent root command execution.
Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.
Executive ViewAI
Organizations running OpenWrt with the luci-app-adblock-fast package below version 1.2.4-2 face a privilege-escalation path in which a delegated, low-privilege LuCI administrator holding write access to that component can obtain persistent root-level command execution on the device. Because the affected systems are typically network edge or branch gateways, abuse of that path could give a limited internal operator - or anyone who compromises such an account - full control over routing, DNS, and traffic handling for that site. The exposure is gated by a mandatory pre-existing administrative ACL and does not extend to unauthenticated users, so leadership should treat it as a privileged-user and account-compromise risk requiring patch discipline rather than an internet-wide emergency.
Apply vendor patch (luci-app-adblock-fast 1.2.4-2). Until it is deployed: revoke or tightly restrict the adblock-fast write ACL to a minimal set of trusted administrators, remove the package on devices that do not need it, and monitor /etc/crontabs/root for unexpected root-level cron entries.
Threat Intelligence Overview
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.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
In wlan service, there is a possible out of bounds write due to improper input validation. Rated critical severity (CVSS
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
An issue was discovered in OpenWrt libuci (aka Library for the Unified Configuration Interface) before 15.05.1 as used o
cgi_handle_request in uhttpd in OpenWrt through 18.06.1 and LEDE through 17.01 has unauthenticated reflected XSS via the
In wlan service, there is a possible out of bounds write due to an incorrect bounds check. Rated critical severity (CVSS
An exploitable information leak vulnerability exists in the ustream-ssl library of OpenWrt, versions 18.06.4 and 15.05.1
An exploitable information leak vulnerability exists in the ustream-ssl library of OpenWrt, versions 18.06.4 and 15.05.1
Remote privilege escalation in Android WLAN AP driver via packet injection.
In wlan AP driver, there is a possible out of bounds write due to an incorrect bounds check. This could lead to local es
In wlan AP driver, there is a possible out of bounds write due to an incorrect bounds check. This could lead to local es
In wlan AP driver, there is a possible out of bounds write due to an incorrect bounds check. This could lead to local es
Remote code execution in OpenWrt's mDNS daemon (versions before 24.10.6 and 25.12.1) allows unauthenticated attackers to
EUVD-2026-84099
NVD
CVE.org
EPSS
GitHub
Exploit-DB