CVE-2026-31799Tautulli是一款用于Plex Media Server的Python监控工具。在2.17.0版本之前,该工具存在SQL注入漏洞。受影响的接口为/api/v2?cmd=get_home_stats,涉及参数包括section_id、user_id、before和after。漏洞产生的原因是代码直接使用Python的字符串格式化方式将用户输入拼接到SQL查询中,未进行参数化处理。拥有Tautulli管理员API密钥的攻击者可以利用此漏洞注入任意SQL语句,并通过布尔盲注技术窃取SQLite数据库中的任何敏感数据。该问题已在2.17.0版本中修复。
该漏洞源于Tautulli在处理/api/v2接口的get_home_stats命令时,对传入的查询参数缺乏有效的安全过滤。开发人员使用了Python的百分号(%)字符串格式化方法来构建SQL语句,例如直接将section_id、user_id等参数拼接到SQL查询字符串中,而不是使用安全的参数化查询机制。这种不安全的编码方式使得攻击者可以通过构造恶意的输入值来改变原始SQL语句的逻辑结构。由于漏洞位于管理员权限的API接口下(PR:H),利用该漏洞的前提是获取到管理员API密钥。攻击者通过在参数中注入SQL语法(如单引号闭合、AND条件判断等),可以实施布尔盲注攻击。虽然攻击者无法直接在响应中看到查询结果,但可以通过构造返回True或False的SQL条件,根据HTTP响应的差异逐位推断出数据库中的敏感信息。受影响的参数before和after自2.14.2版本起引入风险,而section_id和user_id则自2.1.0-beta版本起存在风险。