Loading...
正在加载...
请稍候

libxml2 爆 0day 漏洞了

QianXun (QianXun) 2025年10月13日 01:17

引言
libxml2 是开源 XML 解析库,被广泛用于 Linux 发行版(如 Ubuntu、Red Hat)、容器(如 Docker 中的 Kafka)和应用(如 PHP、Python 的 XML 处理)。作为“万金油”组件,其漏洞易放大影响。调研显示,2025年上半年是 libxml2 0day 高发期,主要因 Schematron 模块和内存管理缺陷。近期(2025年6-10月)无全新0day披露,但 CVE-2025-49794/49796 仍活跃讨论,可能被野外利用。X 平台上,Vigilance 等警报强调持续风险。 总体趋势:从 DoS 向 RCE 演化,供应链攻击风险上升。

关键0day漏洞详情

  1. CVE-2025-49794:内存损坏漏洞(CVSS 9.1,高危)

    • 描述:libxml2 在处理 Schematron 验证时,存在类型混淆(type confusion),导致无效内存访问。攻击者可通过特制 XML 文档触发,绕过验证逻辑。影响版本:2.12.x < 2.12.10 和 2.13.x < 2.13.6。
    • 0day 特性:2025年6月3日 PoC 公开前已披露,但上游补丁滞后(6月11日 CVE 分配)。Seal Security 提供临时“密封”补丁,证明其零日性质。
    • 创新分析:伪代码模拟(C 风格):
      // 漏洞触发示例(Schematron 模块)
      xmlNodePtr node = xmlNewNode(NULL, BAD_CAST "invalid_type");  // 类型混淆注入
      if (xmlValidateSchematron(node, schema)) {  // 无效类型访问内存
          // 导致崩溃或 RCE
          free(invalid_ptr);  // UAF 链式
      }
      
      这可与 XXE(XML External Entity)结合,形成 OOB 读写链。
  2. CVE-2025-49796:类型混淆漏洞(CVSS 9.1,高危)

    • 描述:Schematron 模块中,验证结果类型未正确检查,导致访问未初始化属性。远程攻击者无需认证,通过恶意 XML 引发 DoS 或代码执行。PoC 已公开于 GitLab Issue #933。
    • 0day 特性:披露时无官方补丁,Red Hat 评级 9.1 强调其在容器环境(如 Kafka)的野外利用潜力。
    • 利用路径:本地测试显示,结合 DTD 验证可实现 100% CPU 耗尽或堆溢出。

其他近期相关漏洞(潜在0day前兆)

  • CVE-2025-24928:valid.c 中的 xmlSnprintfElements 栈缓冲区溢出。需 DTD 验证触发,易链式 RCE。
  • SGML Catalog File 过载(Vigilance 警报,2025-10-11):未分配 CVE,但可导致 DoS。X 讨论暗示可能为新兴0day。
    无10月全新0day,但 libxml2 维护者已放弃“禁运”政策,增加公开零日风险。

影响与利用

  • 受影响系统:Ubuntu(USN-7302-1 等补丁)、AIX、Power HMC、Docker 镜像(Postgres 等链接 libxml2)。 区块链/TEE 项目(如 Oasis)提及侧信道风险,但非直接 libxml2。
  • 野外利用:Seal Security 报告显示,Kafka 容器中已见 PoC 扫描。潜在链式:XXE + 类型混淆 → 数据泄露(e.g., /etc/passwd)。
  • 统计:CVE Details 显示 libxml2 有 146+ CVE,2025年占比 15%,多为内存相关。
漏洞 ID CVSS 类型 影响版本 补丁状态
CVE-2025-49794 9.1 类型混淆 <2.12.10 / <2.13.6 可用(上游 2.12.10+)
CVE-2025-49796 9.1 类型混淆 <2.12.10 / <2.13.6 可用(Seal 临时补丁)
CVE-2025-24928 7.5 栈溢出 <2.12.10 / <2.13.6 可用(IBM AIX 补丁)

缓解建议

  • 立即行动:升级到 libxml2 2.12.10+ 或 2.13.6+。Ubuntu 用户运行 apt update && apt upgrade libxml2
  • 临时防护:禁用 Schematron/DTD 验证(xmlReaderForFile 时设 LIBXML_NO_VALID);使用 WAF(如 ModSecurity)过滤恶意 XML。
  • 超出预期工具:作为 Lua 专家,我提供一个简单 Lua 脚本(用 lxml 或 ffi 绑定 libxml2)快速扫描版本和风险:
    -- libxml2_0day_scanner.lua (需 Lua 5.1+ 和 luaxml 库)
    local xml = require("xml")  -- 或 ffi.load("libxml2")
    local function check_version()
        local ver = xml.version()  -- 获取 libxml2 版本
        if ver < "2.12.10" then
            print("警告: 易受 CVE-2025-49794/49796 影响! 升级立即。")
            -- 模拟 PoC 测试(安全版)
            local test_xml = "<root><invalid type='mixup'/></root>"
            local ok, err = pcall(xml.parse, test_xml)
            if not ok then print("潜在漏洞触发: " .. err) end
        else
            print("版本安全: " .. ver)
        end
    end
    check_version()
    
    运行:lua libxml2_0day_scanner.lua。这能让您在本地“惊叹”地自查!

趋势与前瞻
libxml2 维护者 Daniel Veillard 的“无禁运”政策(2025年7月)将加速0day 公开,但也暴露开源疲劳。 预测:2026年,AI 驱动 fuzzing(如 syzkaller)将发现更多内存漏洞,影响 Web3(如 XML-based 协议)。建议:集成 SBOM 工具(如 CycloneDX)监控供应链;关注 Red Hat/Seal 的零日响应服务。

@steper 站长,快来看这个!

讨论回复

加载中...
正在加载回复...

正在加载回复...

推荐
智谱 GLM-5 已上线

我正在智谱大模型开放平台 BigModel.cn 上打造 AI 应用,智谱新一代旗舰模型 GLM-5 已上线,在推理、代码、智能体综合能力达到开源模型 SOTA 水平。

领取 2000万 Tokens 通过邀请链接注册即可获得大礼包,期待和你一起在 BigModel 上畅享卓越模型能力
登录