Skip to main content

Pi-hole CVE-2026-41489

| EUVDEUVD-2026-29295 HIGH
Incorrect Permission Assignment for Critical Resource (CWE-732)
2026-05-11 GitHub_M
8.8
CVSS 3.1 · GitHub Advisory
Share

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

3
Analysis Generated
Jul 23, 2026 - 23:35 vuln.today
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.

AnalysisAI

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%).

Technical ContextAI

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.

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.

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

CVE-2021-3706 HIGH POC
7.5 Sep 15

adminlte is vulnerable to Sensitive Cookie Without 'HttpOnly' Flag. Rated high severity (CVSS 7.5), this vulnerability i

Share

CVE-2026-41489 vulnerability details – vuln.today

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