Skip to main content

luci-app-adblock-fast CVE-2026-55159

| EUVDEUVD-2026-84099 HIGH
Improper Neutralization of CRLF Sequences ('CRLF Injection') (CWE-93)
2026-09-21 GitHub_M
8.8
CVSS 3.1 · Vendor: GitHub_M
View

Attack ChainAIDerived

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

  1. Access
    Obtain delegated LuCI account with adblock-fast write ACL
  2. Delivery
    Call setCronEntry RPC with CR/LF in entry value
  3. Exploit
    Injected newline writes extra line to /etc/crontabs/root
  4. Execution
    cron executes injected command as UID 0
  5. Impact
    Persistent 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.

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

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

Alert me

AnalysisAIv1 – 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

luci-app-adblock-fast < 1.2.4-2

Affected Packages

euvd luci_app_adblock_fast fix: 1.2.4-2

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

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

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.

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 (GitHub_M).

CVSS VectorVendor: GitHub_M

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

Lifecycle Timeline

2
Patch available
Sep 21, 2026 - 21:17 EUVD
CVE Published
Sep 21, 2026 - 19:24 cve.org
HIGH 8.8

DescriptionCVE.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

Why It Matters

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.

Business Impact: High
Compensating Controls

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

EPSS Score
0.5%
Top 59% exploitable
Prevalence
Low
niche OpenWrt LuCI ad-blocker add-on package, not core firmware
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.5%
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· derived
Scheduled
Exploitation· derived
None
System Exposure· derived
Open
Automatable· derived
No
Human Impact
High

Priority Score

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

Attack Technique

Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.

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