IPBUF安全漏洞报告
English
CVE-2026-28505 CVSS 10.0 严重

CVE-2026-28505 Tautulli远程代码执行漏洞

披露日期: 2026-03-30

漏洞信息

漏洞编号
CVE-2026-28505
漏洞类型
远程代码执行
CVSS评分
10.0 严重
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
Tautulli

相关标签

RCE沙箱逃逸TautulliPythonCVE-2026-28505

漏洞概述

Tautulli 2.17.0之前的版本中,notification_handler.py的str_eval()函数存在沙箱绕过漏洞。该沙箱仅检查代码对象的co_names以限制可调用名称,但未检查lambda表达式创建的嵌套代码对象(位于co_consts中)。攻击者可利用此缺陷绕过沙箱限制,执行任意Python代码。

技术细节

该漏洞源于Python代码对象编译机制的差异。Tautulli的沙箱机制试图通过检查编译后代码对象的co_names属性来过滤危险函数调用。然而,当用户输入包含lambda表达式时,Python编译器会将lambda内部的代码作为一个嵌套的代码对象存储在外层代码对象的co_consts常量元组中,而不是co_names中。由于沙箱代码只遍历co_names进行校验,完全忽略了co_consts中隐藏的嵌套代码逻辑。攻击者可以构造形如(lambda: __import__('os').system('cmd'))()的Payload,使其在沙箱检查时看似无害,但在eval执行时,lambda内部实际包含了危险的系统调用,从而实现沙箱逃逸和远程代码执行。

攻击链分析

STEP 1
信息收集
攻击者识别出目标使用的是Tautulli服务,且版本低于2.17.0。
STEP 2
构造Payload
攻击者构造包含lambda表达式的恶意载荷,将危险代码(如os.system)隐藏在嵌套代码对象中。
STEP 3
发送请求
攻击者向Tautulli的通知处理接口发送包含恶意Payload的请求,无需身份认证。
STEP 4
代码执行
服务器端str_eval()函数解析Payload,由于沙箱未检查co_consts,lambda被执行,导致远程代码执行。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
# PoC for CVE-2026-28505 # The vulnerability lies in the sandbox inspection of code.co_names vs code.co_consts # In a lambda, attributes are stored in co_consts (nested code), bypassing the check. # Malicious payload using lambda to hide the function call from co_names inspection payload = "(lambda: __import__('os').system('whoami'))()" # This payload would be sent to the vulnerable endpoint handling notification templates. # Example request context (conceptual): # POST /api/v2?cmd=notify # { "params": { "subject": payload } } print(f"Generated Payload: {payload}")

影响范围

Tautulli < 2.17.0

防御指南

临时缓解措施
建议管理员立即检查Tautulli版本并应用官方提供的补丁(升级至v2.17.0)。在升级完成前,应严格限制对Tautulli Web界面的访问,仅允许本地回环或受信任的内网IP访问,并监控异常的进程活动。

参考链接

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