最低权限账号就能读走管理员密码哈希:GLPI CVE-2026-47678,已认证 SQL 注入

11 月 4 日,GLPI 的一个已认证 SQL 注入漏洞公开:CVE-2026-47678,CVSS 4.0 8.7 分。攻击者只需要一个最低权限的账号,在表单的下拉框接口里拼一段 SQL,就能一把一把读走数据库里的任意数据,包括管理员的密码哈希和 API 令牌。
GLPI 是免费的资产与 IT 管理软件,工单、资产、用户都在同一个数据库里。漏洞出在表单的下拉框接口:用户回答表单时,接口要拉一组可选的负责人(提问者、关注者、经办人)。控制器 QuestionActorsDropdownController 把请求里的 group_conditions 参数原样收下来,拼进查询构造器;查询构造器再把它追加到 WHERE 条件里。而数据库迭代器 DBmysqlIterator 有一条特殊规则:数组键是 RAW 时,键名原样拼进 SQL,不转义、不参数化。于是 group_conditions[RAW][]=1 这样的请求,直接把攻击者写的内容放进 WHERE 子句。
这个接口要求登录,但默认自带的两个表单所有用户都能回答,所以最低权限的自助服务账号也能打到。Synacktiv 的验证用的就是默认的 post-only 账号。
怎么读数据:时间盲注,逐位比对
这是一个时间盲注。把 SLEEP() 包进派生表,每次请求只触发一次:条件为真,响应延迟约 3 秒;为假,立即返回。直接发 SLEEP(5) 的请求,响应要约 5000 毫秒。
再把 ASCII(SUBSTR((SELECT password FROM glpi_users WHERE id=2),{pos},1)) > {n} 这类条件逐位比对,就能把任意字段一个字节一个字节读出来。
能读到什么:glpi_users 表里的密码哈希和 API 令牌。拿到之后可以冒充超级管理员,等于拿下整个实例。
有个限度:注入发生在 SELECT 语句里,用的 mysqli::query 不支持堆叠查询,所以只能读,不能写。但读到的凭据材料本身就够走到管理员权限。
影响范围:两个分支都在内
受影响的是 GLPI 9.4.0–10.0.25 和 11.0.0–11.0.7,修复版本是 10.0.26 和 11.0.8。
时间线:修复发了四个多月,编号才公开
2026 年 6 月 24 日,修复版本 10.0.26 和 11.0.8 发布,当时未说明是安全修复。
2026 年 11 月 4 日,CVE 编号公开,NVD 同日收录。
2026 年 11 月 9 日,NVD 记录更新。
截至 11 月 10 日,没有确认的在野利用,未列入 CISA KEV,EPSS 0.2%;Metasploit 与 Exploit-DB 里没有公开利用代码。
同一份 Synacktiv 通告还报告了一个存储型 XSS,细节见通告原文。
分数口径:8.7 是 4.0 的分,暂无 3.1 的分
标题用 CVSS 4.0 的 8.7 分,由编号分配方 GitHub 给出;NVD 尚未给出自己的评分。
另有一家聚合站标了 9.4,但没有编号分配方的评分支撑,专栏用 CNA 的 8.7。
先做什么
第一,升级:10.x 升到 10.0.26,11.x 升到 11.0.8。厂商通告没有给出其他缓解办法。
第二,查日志:下拉框接口的访问日志里,找带 group_conditions 和 RAW 的请求;再看 glpi_users 表的密码哈希与 API 令牌有没有异常读取——更直接的是轮换超级管理员的密码与 API 令牌。
第三,收权限:检查还有哪些账号能回答默认表单,最低权限账号只给必要的表单权限。
参考资料
[1] NVD:CVE-2026-47678:https://nvd.nist.gov/vuln/detail/CVE-2026-47678
[2] GitHub 安全通告 GHSA-v774-5g3p-vxg2:https://github.com/glpi-project/glpi/security/advisories/GHSA-v774-5g3p-vxg2
[3] Synacktiv:SQL Injection and Stored XSS Vulnerabilities in GLPI 11:https://www.synacktiv.com/en/advisories/sql-injection-and-stored-xss-vulnerabilities-in-glpi-11
[4] Rapid7:CVE-2026-47678:https://www.rapid7.com/db/vulnerabilities/cve-2026-47678/
[5] OffSeq Threat Radar:CVE-2026-47678:https://radar.offseq.com/threat/cve-2026-47678-cwe-89-sql-injection-in-glpi-project-glpi-2b7fa552af9ba81d
原文作者: liups.com
原文链接: https://liups.com/posts/1021796a/
许可协议: 知识共享署名-非商业性使用 4.0 国际许可协议