Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessGain pihole-privilege foothold
-
DeliveryWrite malicious files.pid path into config
-
ExploitTrigger pihole-FTL restart
-
ExecutionRoot hooks rm -f then install target file
-
PersistPlant SSH key in /root/.ssh/authorized_keys
-
ImpactSSH in as root
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V13 - Configuration Permission assignment review
|
| Exploitation Conditions | Requires an attacker who already holds pihole-level privileges (PR:L) with the ability to write the files.pid value in the Pi-hole configuration, plus the ability to trigger a pihole-FTL service restart so systemd runs the ExecStartPre/ExecStopPost hooks as root. It targets default Pi-hole installations: if /root/.ssh/authorized_keys does NOT exist (default on fresh installs) only the ExecStartPre hook is needed; if it already exists, ExecStopPost deletes it first and the same restart runs both hooks in sequence. Limiting factors: exploitation is LOCAL only (AV:L, no remote/network path), needs prior pihole privilege rather than anonymous access, requires the affected version range (Core 6.0-6.4.1 / FTL before 6.6.1), and depends on the attacker being able to cause a service restart; the targeted path must lie outside the ProtectSystem=full read-only areas (e.g. /root). |
| Impact | Signals are mixed but coherent. The CVSS 3.1 vector (AV:L/AC:L/PR:L/UI:N/S:C, 8.8 High) confirms this is a LOCAL, authenticated (PR:L) escalation, not remote - an attacker must already hold pihole-level access, so this is a second-stage/post-compromise issue rather than an initial-access vector. SSVC marks Technical Impact as total (full root) but Automatable as no and Exploitation as poc-level, and EPSS is 0.01% (2nd percentile), consistent with a targeted, hands-on-keyboard escalation rather than mass exploitation. It is NOT in CISA KEV. Net: genuinely serious where an attacker has already gained pihole privileges (total system compromise), but low likelihood of broad opportunistic exploitation. The CVSS vector and description agree (both local, config-driven), so no conflict to flag; the main caveat is that the SSVC 'poc' rating implies proof-of-concept knowledge exists even though no weaponized public exploit is confirmed here. |
| Exploit ScenarioDerived | An attacker who has already compromised a service or account running under the pihole privilege (for example via a separate web/API foothold) edits the Pi-hole config so files.pid points at /root/.ssh/authorized_keys, then triggers an FTL restart. The root-run ExecStartPre hook recreates that path (and ExecStopPost first deletes it if it exists) under attacker influence, letting the attacker plant their own SSH key and log in as root. SSVC rates this as poc-level with total technical impact; no weaponized public exploit is confirmed at time of analysis. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Jul 23, 2026
Local privilege escalation in Pi-hole (Core 6.0 through before 6.4.2, FTL through before 6.6.1) lets a user with pihole privileges gain root by injecting an arbitrary path into the unvalidated files.pid config value, which root-run systemd hooks (pihole-FTL-prestart.sh and pihole-FTL-poststop.sh) use in privileged install and rm -f operations. On a default install this enables root-level write access via SSH authorized_keys manipulation. SSVC rates technical impact as total, but there is no public exploit identified at time of analysis and EPSS is negligible (0.01%).
RemediationAI
Vendor-released patch: upgrade to Pi-hole Core 6.4.2 and FTL 6.6.1 or later, which fix the unvalidated files.pid handling - apply both since the issue spans Core scripts and the FTL config parser; see the advisory at https://github.com/pi-hole/pi-hole/security/advisories/GHSA-6w8x-p785-6pm4. Where immediate patching is not possible, reduce exposure by tightly restricting who can obtain pihole privileges and write to the Pi-hole config (the files.pid value), and by monitoring the config for changes to files.pid pointing outside the expected runtime directory; as a hardening measure you can further constrain the pihole-FTL systemd unit (e.g. add ReadWritePaths/ProtectHome=true or a stricter ProtectSystem) so its root hooks cannot touch /root, with the trade-off that overly strict paths may break legitimate PID/socket file creation and require testing. Do not rely on network controls - this is a local escalation, so the priority is limiting local pihole account access.
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
Pi-hole is a self-hosted DNS sinkhole; FTL is its embedded DNS/DHCP resolver daemon (pihole-FTL) managed by systemd. The flaw is a CWE-732 (Incorrect Permission Assignment / trust of an untrusted-writable resource) issue: the systemd unit's ExecStartPre (pihole-FTL-prestart.sh) and ExecStopPost (pihole-FTL-poststop.sh) helper scripts run as root and read the files.pid path from Pi-hole's configuration without validating or canonicalizing it. Because a lower-privileged pihole account can write that config value, the attacker controls a path that root then feeds into install and rm -f. The systemd hardening ProtectSystem=full protects most system directories but leaves paths such as /root writable to these hooks, which is the pivot the exploit relies on.
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
AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H
Local config-only vector (AV:L) needing existing pihole account (PR:L); low complexity; scope changes as pihole privilege escalates to root, yielding full C/I/A impact.
Primary rating from GitHub Advisory.
CVSS VectorGitHub Advisory
Lifecycle Timeline
2DescriptionGitHub Advisory
Pi-hole is a DNS sinkhole that protects devices from unwanted content without installing any client-side software. From 6.0 to before Core 6.4.2 and FTL 6.6.1, two shell scripts executed as root by systemd (pihole-FTL-prestart.sh and pihole-FTL-poststop.sh) read the files.pid path from this config without validation and use it in privileged file operations (install and rm -f). By writing an arbitrary path into files.pid, an attacker with pihole privilege can cause root to delete and then recreate any file on the system outside the ProtectSystem=full-restricted directories, gaining write access to it. On a default Pi-hole installation this yields local privilege escalation to root via SSH authorized keys manipulation. If /root/.ssh/authorized_keys does not exist (default on fresh installs), only ExecStartPre is required. If the file exists, ExecStopPost deletes it first, and the same restart triggers both hooks in sequence. This vulnerability is fixed in Core 6.4.2 and FTL 6.6.1.
Executive ViewAI
Pi-hole versions 6.0-6.4.1 (Core) and 6.0-6.6.0 (FTL) contain a local privilege escalation vulnerability allowing users with pihole system account privileges to gain full root access. Exploitation could enable attackers with legitimate local access to manipulate SSH authentication and achieve persistent administrative control of network infrastructure.
Apply vendor patch.
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
Privilege escalation occurs when an attacker leverages flaws in access control mechanisms to gain permissions beyond what they were originally granted.
Pi-hole versions up to 3.3 contain an authenticated command injection via the domain allowlist functionality. When addin
The Gravity updater in Pi-hole through 4.4 allows an authenticated adversary to upload arbitrary files. Rated high sever
Pi-hole is a Linux network-level advertisement and Internet tracker blocking application. Rated medium severity (CVSS 6.
Pi-hole Web v4.3.2 (aka AdminLTE) allows Remote Code Execution by privileged dashboard users via a crafted DHCP static l
Pi-hole is a DNS sinkhole that protects devices from unwanted content without installing any client-side software. Rated
Pi-hole®'s Web interface (based off of AdminLTE) provides a central location to manage your Pi-hole. Rated high severity
Pi-hole's Web interface provides a central location to manage a Pi-hole instance and review performance statistics. Rate
Pi-hole is a Linux network-level advertisement and Internet tracker blocking application. Rated high severity (CVSS 8.8)
HTTP response splitting in Pi-hole Admin Interface before 6.3 lets unauthenticated remote attackers inject CRLF sequence
An issue was discovered in Pi-Hole through 5.0. Rated high severity (CVSS 7.8), this vulnerability is low attack complex
Pi-hole 4.4 allows a user able to write to /etc/pihole/dns-servers.conf to escalate privileges through command injection
Pi-hole before 6 allows unauthenticated admin/api.php?setTempUnit= calls to change the temperature units of the web dash
EUVD-2026-29295
NVD
CVE.org
EPSS
Vulnrichment
GitHub
VulDB
Exploit-DB