Skip to main content

Pi-hole EUVDEUVD-2026-29295

| CVE-2026-41489 HIGH
Incorrect Permission Assignment for Critical Resource (CWE-732)
2026-05-11 GitHub_M
8.8
CVSS 3.1 · GitHub Advisory
View

Attack ChainAIDerived

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

  1. Access
    Gain pihole-privilege foothold
  2. Delivery
    Write malicious files.pid path into config
  3. Exploit
    Trigger pihole-FTL restart
  4. Execution
    Root hooks rm -f then install target file
  5. Persist
    Plant SSH key in /root/.ssh/authorized_keys
  6. Impact
    SSH 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.

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

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

Alert me

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

pi-hole 6.0, < 6.4.2

Affected Packages

euvd pi_hole_6_0 fix: 6.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

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

GitHub Advisory PRIMARY 8.8 HIGH
AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H
vuln.today AI 8.8 HIGH

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.

3.1 AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H
4.0 AV:L/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H

Primary rating from GitHub Advisory.

CVSS VectorGitHub Advisory

Attack Vector
Local
Attack Complexity
Low
Privileges Required
Low
User Interaction
None
Scope
Changed
Confidentiality
High
Integrity
High
Availability
High

Lifecycle Timeline

2
Patch available
May 11, 2026 - 22:18 EUVD
CVE Published
May 11, 2026 - 20:21 nvd
HIGH 8.8

DescriptionGitHub 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

Why It Matters

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.

Business Impact: High
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.0%
Top 98% exploitable
Prevalence
Medium
hugely popular self-hosted/home DNS sinkhole, limited enterprise production footprint
Data Quality
7 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment 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.0%
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
Scheduled
Exploitation
Poc
System Exposure· derived
Small
Automatable
No
Human Impact
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

Privilege escalation occurs when an attacker leverages flaws in access control mechanisms to gain permissions beyond what they were originally granted.

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