Skip to main content

Pi-hole FTL CVE-2026-39849

| EUVDEUVD-2026-27498 HIGH
Improper Neutralization of CRLF Sequences ('CRLF Injection') (CWE-93)
2026-05-05 security-advisories@github.com
8.7
CVSS 4.0 · Vendor: github
View

Attack ChainAIDerived

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

  1. Access
    Access Pi-hole API (unauthenticated if default config)
  2. Delivery
    Inject newline + dhcp-script directive into dns.interface field
  3. Exploit
    Enable DHCP server via API
  4. Execution
    Wait for DHCP lease request from any network device
  5. Persist
    dnsmasq executes attacker script as root
  6. Impact
    Full system compromise

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization CRLF sequence sanitization
Exploitation Conditions

Exploitation requires network access to the Pi-hole configuration API (typically HTTP/HTTPS on the web interface). In installations with no admin password set - explicitly described as the default for many deployments - the API is accessible without authentication, enabling remote unauthenticated exploitation (effectively PR:N despite CVSS rating PR:L). In password-protected deployments, the attacker needs valid admin credentials (PR:L). The attacker must inject the malicious configuration, enable the built-in DHCP server feature via the API, and wait for any device on the network to request a DHCP lease, which occurs automatically during normal network operations (device boot, lease renewal cycles). The 31-byte strncpy limit requires compact payloads but is not a practical barrier given example payloads like wlan0\ndhcp-script=/tmp/p fit within constraints. No specific Pi-hole features beyond the configuration API need to be enabled initially, though the DHCP server must be activated as part of the attack chain.

Impact

CVSS 8.7 reflects high confidentiality, integrity, and availability impacts with low attack complexity and network attack vector, but the PR:L (low privileges required) rating understates real-world risk in default configurations. The description explicitly states 'no admin password set (the default for many deployments)' exposes the configuration API without credentials, effectively making this PR:N (no privileges required) in common deployments. The 31-byte payload constraint is NOT a practical limitation - the provided example dhcp-script injection fits comfortably. EPSS and KEV data not provided, but the combination of (1) authentication bypass in default configs, (2) persistent configuration injection surviving reboots, (3) remote network vector, and (4) RCE tag suggests high real-world exploitation potential. The requirement for DHCP activity to trigger execution adds a timing dependency but is trivially satisfied in typical network environments where devices regularly renew leases. Vendor-confirmed fix in 6.6.1 and detailed GitHub security advisory (GHSA-9cqv-839p-gpq2) indicate this was responsibly disclosed and patched. Priority should be elevated for internet-exposed Pi-hole instances or those on untrusted network segments, particularly given Pi-hole's role as network infrastructure with privileged access to DNS/DHCP traffic.

Exploit ScenarioDerived

A network-adjacent attacker on the same LAN as a default-configured Pi-hole (no admin password) sends HTTP POST requests to the configuration API to inject wlan0\ndhcp-script=/tmp/rce into the dns.interface field, which persists to /etc/pihole/pihole.toml. The attacker then enables the DHCP server via the same API. When any device on the network requests or renews a DHCP lease (a normal automatic event), dnsmasq executes /tmp/rce with root privileges, granting the attacker full control of the Pi-hole host and visibility into all network DNS traffic.

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

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

Alert me

AnalysisAIv1 – May 05, 2026

Remote command execution in Pi-hole FTL versions before 6.6.1 allows network-adjacent attackers with API access to inject malicious dnsmasq directives via unvalidated newline characters in the dns.interface configuration field, achieving arbitrary code execution when DHCP leases are requested. Deployments with no admin password (a documented default configuration) expose the configuration API without authentication, enabling unauthenticated remote exploitation. The Pi-hole project released version 6.6.1 with input validation that strips newline characters, and the fix commit (0c46e4ec7f) replaced validate_stub with validate_str_no_newline.

RemediationAI

Upgrade to Pi-hole FTL version 6.6.1 or later, released by the vendor with commit 0c46e4ec7fe57f762fce261625f2cf5d43806e6d that replaces validate_stub with validate_str_no_newline to strip newline characters from dns.interface input. Download from https://github.com/pi-hole/FTL/releases/tag/v6.6.1 and follow Pi-hole update procedures. If immediate patching is not feasible, set a strong admin password via pihole -a -p to require authentication for the configuration API, which converts the attack from unauthenticated (PR:N) to requiring low privileges (PR:L). Restrict network access to the Pi-hole web interface (typically TCP 80/443) and API to trusted management networks only using firewall rules or reverse proxy authentication - note this breaks legitimate remote administration and may complicate troubleshooting. Audit /etc/pihole/pihole.toml for unexpected newline characters or dhcp-script directives, and review dnsmasq configuration in /etc/dnsmasq.d/ for injected payloads. Disable the DHCP server feature if not required, though this does not prevent configuration injection, only the DHCP-based trigger mechanism. Monitor for unexpected process execution from dnsmasq parent processes.

Affected VersionsENISA

FTL < 6.6.1

Affected Packages

euvd ftl fix: 6.6.1

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

Pi-hole FTL is the DNS and DHCP engine underlying Pi-hole ad-blocking deployments, which generates dnsmasq configuration files from user-controlled settings stored in /etc/pihole/pihole.toml. The vulnerability stems from CWE-93 (Improper Neutralization of CRLF Sequences in HTTP Headers / Configuration Files). The dns.interface field accepted newline characters without sanitization, allowing injection of arbitrary dnsmasq directives such as dhcp-script=/tmp/malicious_payload within the 31-byte strncpy limit (e.g., wlan0\ndhcp-script=/tmp/p). The dnsmasq dhcp-script directive executes the specified script whenever a DHCP lease is assigned, creating a path from configuration injection to command execution. The FTL 6.6 config validation only verified syntactic correctness of generated dnsmasq configs, so injected valid directives passed checks. The attack chain requires enabling the DHCP server via the same API, making this a multi-step configuration manipulation attack that triggers on network DHCP activity rather than immediate code execution.

Know when Pi Hole 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) 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

Primary rating from Vendor (github) · only source for this CVE.

CVSS VectorVendor: github

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

Lifecycle Timeline

1
Patch available
May 05, 2026 - 22:02 EUVD

DescriptionCVE.org

Pi-hole FTL is the core engine of the Pi-hole network-level advertisement and tracker blocker. In versions before 6.6.1, the dns.interface configuration field in Pi-hole FTL accepted newline characters without validation, allowing an attacker to inject arbitrary directives into the generated dnsmasq configuration file. On installations with no admin password set (the default for many deployments), the configuration API is fully accessible without credentials, allowing a network-adjacent attacker to inject the payload, enable the built-in DHCP server, and achieve arbitrary command execution on the host the next time any device on the network requests a DHCP lease. The injected value is persisted to /etc/pihole/pihole.toml and survives restarts. The strncpy in the code path limits the total interface field to 31 bytes, but payloads such as wlan0\ndhcp-script=/tmp/p fit within this constraint. The dnsmasq config validation introduced in FTL 6.6 only checks syntactic validity, so valid directives injected via newline pass validation successfully. This issue has been fixed in version 6.6.1.

Executive ViewAI

Why It Matters

Pi-hole FTL versions before 6.6.1 contain a remote code execution vulnerability in the DNS configuration API that allows unauthenticated attackers to execute arbitrary commands on systems with default credentials. Organizations using Pi-hole for DNS filtering and DHCP services are at immediate risk of complete network compromise if running vulnerable versions without authentication protections.

Business Impact: Severe
Compensating Controls

Vendor-released patch: Pi-hole FTL version 6.6.1. If immediate upgrade is not possible: (1) Set a strong admin password to enforce authentication on the configuration API; (2) Restrict network access to the Pi-hole web interface and API to trusted administrative IP ranges using firewall rules; (3) Disable the configuration API entirely if not required for operational needs; (4) Monitor DNS query logs and dnsmasq configuration files for suspicious newline-injected directives or unexpected DHCP behavior.

Threat Intelligence Overview

EPSS Score
0.1%
Top 74% exploitable
Social Media
1
Sightings
Data Quality
7 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment CIRCL 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 0.1%
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
Out-of-Cycle
Exploitation
Poc
System Exposure· derived
Open
Automatable
Yes
Human Impact
Very High
Technical Impact
Total

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

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

CVE-2025-34087 HIGH POC
8.8 Jul 03

Pi-hole versions up to 3.3 contain an authenticated command injection via the domain allowlist functionality. When addin

CVE-2020-11108 HIGH POC
8.8 May 11

The Gravity updater in Pi-hole through 4.4 allows an authenticated adversary to upload arbitrary files. Rated high sever

CVE-2021-29449 MEDIUM POC
6.3 Apr 14

Pi-hole is a Linux network-level advertisement and Internet tracker blocking application. Rated medium severity (CVSS 6.

CVE-2020-8816 HIGH POC
7.2 May 29

Pi-hole Web v4.3.2 (aka AdminLTE) allows Remote Code Execution by privileged dashboard users via a crafted DHCP static l

CVE-2024-34361 HIGH POC
8.8 Jul 05

Pi-hole is a DNS sinkhole that protects devices from unwanted content without installing any client-side software. Rated

CVE-2023-23614 HIGH POC
8.8 Jan 26

Pi-hole®'s Web interface (based off of AdminLTE) provides a central location to manage your Pi-hole. Rated high severity

CVE-2021-32706 HIGH POC
8.8 Aug 04

Pi-hole's Web interface provides a central location to manage a Pi-hole instance and review performance statistics. Rate

CVE-2021-29448 HIGH POC
8.8 Apr 15

Pi-hole is a Linux network-level advertisement and Internet tracker blocking application. Rated high severity (CVSS 8.8)

CVE-2025-59151 HIGH POC
8.2 Oct 27

HTTP response splitting in Pi-hole Admin Interface before 6.3 lets unauthenticated remote attackers inject CRLF sequence

CVE-2020-14162 HIGH POC
7.8 Jul 30

An issue was discovered in Pi-Hole through 5.0. Rated high severity (CVSS 7.8), this vulnerability is low attack complex

CVE-2020-12620 HIGH POC
7.8 Jul 30

Pi-hole 4.4 allows a user able to write to /etc/pihole/dns-servers.conf to escalate privileges through command injection

CVE-2024-44069 HIGH POC
7.5 Aug 19

Pi-hole before 6 allows unauthenticated admin/api.php?setTempUnit= calls to change the temperature units of the web dash

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