Pi-hole: file:// adlist read check and curl can resolve different files
Affects Pi-hole 6.4.3 and earlier when an adlist uses a file:// URL, with gravity run as root via pihole -g or cron. Fixed in 6.5.
- Last modified
- Where the record stands: published, rejected by its publisher, or superseded by another id.What do these mean? →
- published
- Whether CISA lists it in its Known Exploited Vulnerabilities catalog: proof that attackers are using it.What do these mean? →
- Not listed in CISA KEV
- How many real-world setups can hit the bug, from the vendor's advisory and CISA data. It does not know your setup.What do these mean? →
- Specific setups only
- Fix
- Fixed in 6.5
- Whether working attack code is public (Exploit-DB, Metasploit, Nuclei or GitHub). Public code makes attacks easier.What do these mean? →
- None on Exploit-DB, Metasploit or GitHub
Summary
Pi-hole, a DNS sinkhole used to block unwanted content on networks, is affected. A flaw in how its gravity update script validates local adlist files lets a crafted file path pass the readability check while curl opens a different, more privileged file, potentially exposing data that should be restricted.
Summarized by anthropic/claude-haiku-5.5. Verify details against the original sources.
Read the original description
Pi-hole is a DNS sinkhole that protects devices from unwanted content without installing any client-side software. Prior to 6.5, gravity.sh checks file:// adlist readability with sudo -u pihole test -r but then allows curl, sometimes running as root, to normalize URL dot segments and open a different file. A pihole-readable decoy can therefore pass the check while curl reads a root-only target, and /proc/self paths can similarly resolve against different processes. Exploitation requires an administrator who can add adlists and can place a symlink and decoy on the filesystem. This issue is fixed in version 6.5.
Timeline
- CVE published
- First seen by cve.now
Affected versions
- pi-hole pi-hole
fixed in 6.5
References 4
GitHub · pi-hole/pi-hole
Questions about CVE-2026-119334
What does this mean?
Pi-hole checks file:// adlists as the pihole user, but curl then reads the file as root. A symlink and a decoy file can make curl read a root-only file instead of the file that passed the check. Sample lines from file: lists are no longer reflected, which limits leaked content to domain-shaped lines.Source: github.com
Am I affected, and how do I check?
Pi-hole 6.4.3 and earlier are affected. The setup involves an adlist that uses a file:// URL, with gravity run as root through pihole -g or cron. Check the installed version with pihole -v and review the adlist sources for file:// entries.Source: github.com
What should I do about it?
Upgrade to Pi-hole 6.5 or later, which contains the fix.Source: github.com
Is it being exploited?
It is not in CISA's Known Exploited Vulnerabilities catalog, and CISA's SSVC assessment does not mark exploitation as active. That does not mean it has not been attacked: vendors and researchers can report attacks before CISA lists them. No public exploit code is tracked.Source: cve.now feed data