Splunk Enterprise 高危漏洞 CVE-2026-20253(CVSS 9.8)
原创
janice
janice
船山信安
2026年7月1日 12:41
广东
在小说阅读器读本章
去阅读
Splunk这回栽了个大问题,编号CVE-2026-20253-CVSS 9.8 漏洞根因是没认证。
Splunk Enterprise 10版引入了PostgreSQL Sidecar Service,其本地部署不是默认启用,但AWS云上开箱就带。安全假设是它只绑localhost端口5435,外部碰不到;可主Web接口8000端口会转发请求给它,一个本该隔离的服务就这样被架到了公网。
watchTowr Labs的Piotr Bazydlo发现,backup和restore两个端点接受HTTP Basic认证,实际上任意凭证都放行,包括空凭证。Base64解码Og==空用户名空密码,这不是设计缺陷,这是压根没做认证。
攻击链七步搞定:
空凭证POST到backup端点拿400响应确认漏洞存在;
往backupFile塞路径遍历在任意位置建空文件;
database字段注入hostaddr让pg\_dump连攻击者自己的PostgreSQL,把恶意数据写入目标文件系统;
restore端点塞passfile=/opt/splunk/var/packages/data/postgres/.pgpass,利用Splunk自存凭据自动认证本地数据库;
攻击者数据库预埋SQL通过lo\_export实现任意文件写入;
覆盖ssg\_enable\_modular\_input.py这个周期执行的Python脚本;
等脚本自动触发完成RCE。
PoC检测脚本来自watchTowr GitHub仓库,完整代码如下。
import argparse
import urllib3
import requests
urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)
def dag(host, region):
url = f\"{host}{region}/splunkd/__raw/v1/postgres/recovery/backup\"
headers = {“Authorization”: “Basic ZGdgOg==”}
resp = requests.post(url, headers=headers, verify=False)
if resp.status_code == 400 and ‘Failed to decode’ in resp.text:
print(‘[+] VULNERABLE’)
elif resp.status_code == 401:
print(‘[-] NOT VULNERABLE’)
运行方式
python3 watchTowr-vs-Splunk-RCE-CVE-2026-20253.py -H http://target:8000 -r en-US
返回400表示漏洞存在,401表示已修复。CISA 在6月18日把此漏洞列入KEV清单限期三天修补,受影响版本10.0.0至10.0.6与10.2.0至10.2.3,修复版本为10.0.7 、10.2.4及10.4.0 赶紧升级到修复版本吧
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。








评论