Splunk曝无认证情况下代码执行漏洞

发布时间:2026/6/26 21:51:35
Splunk曝无认证情况下代码执行漏洞 简介Splunk 发布了安全更新旨在修复 Splunk Enterprise 中的一个关键安全漏洞该漏洞可能被利用进行未经认证的文件操作甚至远程代码执行。该漏洞被追踪为CVE-2026-20253在CVSS评分系统中评级为9.8。Splunk 本周在警报中表示“在 10.2.4 和 10.0.7 以下的 Splunk Enterprise 版本中未经认证的用户可以通过 PostgreSQL 的副车服务端点创建或截断任意文件。”“漏洞存在是因为PostgreSQL的sidecar服务终端缺乏认证控制允许任何可访问网络的用户无需凭证即可调用文件操作。”该问题已在以下版本中得到解决——Splunk Enterprise 10.0.0 至 10.0.6 - 于 10.0.7 修复Splunk Enterprise 10.2.0 至 10.2.3 - 在 10.2.4 中修复Splunk Enterprise 10.4 - 不受影响Splunk云未受该漏洞影响因为该产品未使用Postgres的附加工具。CVE-2026-20253 的更多技术细节被曝光通过“/v1/postgres/recovery/backup”和“/v1/postgres/recovery/restore”端点在易受影响的系统上实现预认证的远程代码执行。攻击链的运作方式如下——连接到攻击者控制的数据库并使用/backup端点将其内容转储到任意文件中通过 /restore 端点加载攻击者控制的数据库转储到本地 PostgreSQL 实例并包含一个“passfile”参数指定“.pgpass”文件“/opt/splunk/var/packages/data/postgres/.pgpass”的路径该文件包含“postgres_admin”用户的密码数据库转储中定义的SQL查询将由Splunk的PostgreSQL实例执行攻击者可以利用这一弱点定义一个新函数利用lo_export——一个用于从数据库中提取BLOB并将其保存为文件的函数——将攻击者控制的内容写入文件随后在恢复过程中执行该函数。攻击者在 Splunk 文件系统上拥有任意的文件写入原语可以通过覆盖 Splunk 经常执行的 Python 脚本例如“/opt/splunk/etc/apps/splunk_secure_gateway/bin/ssg_enable_modular_input.py”来进一步升级到远程代码执行从而包含恶意负载。整个操作顺序如下——创建一个数据库并配置它使用户无需密码即可认证并赋予其足够的权限调用诸如 lo_export使用 /backup 端点将远程数据库的转储数据导入到 Splunk 文件系统使用 /restore 端点加载恶意数据库转储在恢复过程中触发恶意函数的执行并向 Splunk 文件系统编写由攻击者控制的 Python 脚本