已关闭
CVE-2026-77214 #85
Funda Wang创建于  22 天前关闭于  20 天前
Funda Wang
Funda Wang
22 天前 创建

一、漏洞信息
漏洞编号:CVE-2026-77214
漏洞归属组件:expat
漏洞归属的版本:2.8.1
CVSS评分:
BaseScore:8.2 High
Vector:CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:L
漏洞简述:
libexpat before commit 13c5f63 contains a heap buffer over-read vulnerability in xmlparse.c. XML_ParseBuffer advances the parse buffer end with parser->m_bufferEnd += len using a caller-supplied length that is not validated against the allocated buffer size, so repeated XML_ParseBuffer calls move m_bufferEnd past the end of the heap allocation and subsequent parsing reads out of bounds. Reaching this path requires a parse buffer to already be present; otherwise XML_ParseBuffer returns XML_ERROR_NO_BUFFER. A buffer is present after a prior call to XML_GetBuffer, either directly (the common case) or indirectly through a prior XML_Parse call that allocates the buffer internally. The over-read discloses adjacent heap memory to the calling application, recovering heap pointers, libc function pointers, and code pointers sufficient to defeat ASLR and build further exploitation primitives.
漏洞公开时间:2026-10-07 23:17:53
漏洞创建时间:2026-10-06 16:59:48
漏洞详情参考链接:
https://nvd.nist.gov/vuln/detail/CVE-2026-77214

更多参考(点击展开)

无

漏洞分析指导链接:
https://atomgit.com/openeuler/cve-manager/blob/master/cve-vulner-manager/doc/md/manual.md
漏洞数据来源:
其他
漏洞补丁信息:

详情(点击展开)

无

二、漏洞分析结构反馈
影响性分析说明:
libexpat before commit 13c5f63 contains a heap buffer over-read vulnerability in xmlparse.c. XML_ParseBuffer advances the parse buffer end with parser->m_bufferEnd += len using a caller-supplied length that is not validated against the allocated buffer size, so repeated XML_ParseBuffer calls move m_bufferEnd past the end of the heap allocation and subsequent parsing reads out of bounds. Reaching this path requires a parse buffer to already be present; otherwise XML_ParseBuffer returns XML_ERROR_NO_BUFFER. A buffer is present after a prior call to XML_GetBuffer, either directly (the common case) or indirectly through a prior XML_Parse call that allocates the buffer internally. The over-read discloses adjacent heap memory to the calling application, recovering heap pointers, libc function pointers, and code pointers sufficient to defeat ASLR and build further exploitation primitives.
openEuler评分:
8.2
Vector:CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:L
受影响版本排查(受影响/不受影响):
1.master(2.8.5):受影响
2.openEuler-20.03-LTS-SP4(2.2.9):受影响
3.openEuler-22.03-LTS-SP4(2.4.1):受影响
4.openEuler-24.03-LTS-Next(2.8.5):受影响
5.openEuler-24.03-LTS-SP1(2.5.0):受影响
6.openEuler-24.03-LTS-SP3(2.5.0):受影响
7.openEuler-24.03-LTS-SP4(2.8.1):受影响

修复是否涉及abi变化(是/否):
1.master(2.8.5):否
2.openEuler-20.03-LTS-SP4(2.2.9):否
3.openEuler-22.03-LTS-SP4(2.4.1):否
4.openEuler-24.03-LTS-Next(2.8.5):否
5.openEuler-24.03-LTS-SP1(2.5.0):否
6.openEuler-24.03-LTS-SP3(2.5.0):否
7.openEuler-24.03-LTS-SP4(2.8.1):否

原因说明:
1.master(2.8.5):正常修复
2.openEuler-20.03-LTS-SP4(2.2.9):正常修复
3.openEuler-22.03-LTS-SP4(2.4.1):正常修复
4.openEuler-24.03-LTS-Next(2.8.5):正常修复
5.openEuler-24.03-LTS-SP1(2.5.0):正常修复
6.openEuler-24.03-LTS-SP3(2.5.0):正常修复
7.openEuler-24.03-LTS-SP4(2.8.1):正常修复

likedislike
openeuler-ci-botopeneuler-ci-bot成员
22 天前 将 licihua、dillon_chen、fundawang、overweight、zhujianwei001、xujing99、shenyangyang 设为负责人
openeuler-ci-botopeneuler-ci-bot成员
22 天前 修改了issue 的描述
openeuler-ci-botopeneuler-ci-bot成员
22 天前 将 luckky7 设为负责人,移除负责人 licihua、dillon_chen、fundawang、overweight、zhujianwei001、xujing99、shenyangyang
openeuler-ci-botopeneuler-ci-bot成员
22 天前 添加了label:sig/Base-service
openeuler-ci-bot
openeuler-ci-bot成员
22 天前 评论:

Welcome To openEuler Community

Hey @fundawang , thanks for your contribution to the community.

Bot Usage Manual

I'm the Bot here serving you. You can find the instructions on how to interact with me at Here . That means you can comment below every pull request or issue to trigger Bot Commands. You can self-configure the PR merge rules for this repository. For more details, please refer to Here.

Contact Guide

If you have any questions, please contact the SIG: Base-service ,
and any of the maintainers: @dillon_chen, @licihua, @overweight, @shenyangyang, @xujing99, @zhujianwei001 ,
and any of the committers: @hubin1305, @jiayi0118, @luckky7, @lvying6, @znzju .

likedislike
此处折叠了54条消息 查看更多
xiaoo_robot
xiaoo_robot
16 天前 评论:

【任务 #85 · openEuler-26.09】CVE-2026-77214

1. 是否受影响

结论:受影响。

CVE-2026-77214 为 libexpat XML_ParseBuffer 堆缓冲区越界读漏洞:函数使用调用方提供的 len 直接执行 parser->m_bufferEnd += len,缺少容量校验,可越过堆缓冲区末尾。Step 4 源码影响性分析确认漏洞代码存在于本分支源码(XML_ParseBuffer 位于 lib/xmlparse.c:2437,漏洞模式 parser->m_bufferEnd += len; 位于 lib/xmlparse.c:2482,无容量校验),修复尚未合入,需要修复。

  • openEuler-26.09(2.8.4):受影响

2. 修复补丁

上游社区修复补丁:

3. 补丁适配情况

[原补丁] backport-CVE-2026-77214.patch,已适配(adapted,置信度 high):

  • 冲突原因:上游补丁 3 个 hunk 内容与本版本 baseline 零冲突,唯一冲突为路径前缀——diff 路径携带 expat/ 顶级前缀,而源码树根目录直接是 lib/、tests/,默认 -p1 应用报 No such file or directory。
  • 适配内容:仅剥离 expat/ 路径前缀(expat/lib/xmlparse.c → lib/xmlparse.c,expat/tests/basic_tests.c → tests/basic_tests.c),与兄弟补丁的无前缀路径约定一致;diffstat 与 diff 按适配后真实改动重新生成,原始 header(From/From:/Date:/Subject/提交正文)逐字节保留,核心 46 行新增与原补丁逐字节一致,修复逻辑保真。
  • 落地验证:适配补丁已成功 git apply 到源码目录,git diff --stat 确认 2 files changed, 46 insertions(+)(lib/xmlparse.c +5、tests/basic_tests.c +41),与原补丁统计一致。

无冲突项明细,无前置补丁。

4. PR 提交情况

已提交 PR:

──────── 复制以下内容回填 issue ────────
受影响版本排查(受影响/不受影响):
1.openEuler-26.09(2.8.4): 受影响
ABI 变化:否
原因说明:
1.正常修复
────────────────────────────────────────

likedislike
Yyixiangzhike
16 天前 关联了pull request:fix CVE-2026-77214
openeuler-ci-botopeneuler-ci-bot成员
16 天前 关联了pull request:[sync] PR-402: fix: CVE-2026-77214 - openEuler-26.09
xiaoo_robotxiaoo_robot
15 天前 关联了pull request:fix: CVE-2026-77214 - openEuler-24.03-LTS
xiaoo_robot
xiaoo_robot
15 天前 评论:

【任务 #85 · openEuler-24.03-LTS】CVE-2026-77214

1. 是否受影响

  • 结论:受影响
  • 原因:XML_ParseBuffer 在累加解析长度前缺少容量边界检查,漏洞行 parser->m_bufferEnd += len 位于 expat 2.5.0 的 lib/xmlparse.c:2535,此前无任何容量校验,与 CVE 描述完全吻合。Step 4 源码影响性分析判为 NEEDS_ADAPTATION:核心修复 hunk(新增 len <= EXPAT_SAFE_PTR_DIFF(m_bufferLim, m_bufferEnd) 边界检查)可精确定位,插入点(2522-2524 行)逐字存在,所需符号齐备,且修复未预先应用(同类容量检查仅存在于 XML_GetBuffer:2586),漏洞代码存在于本版本源码,需要修复。
  • 分支状态:
    • openEuler-24.03-LTS(2.5.0):受影响

2. 修复补丁

3. 补丁适配情况

  • 存在适配:backport-CVE-2026-77214.patch(状态:adapted,置信度:high)
  • 冲突原因:原补丁 3 个 hunk 在 expat 2.5.0 上 git apply --check -p1/-p2 均失败(0 个可直接应用),上游与 2.5.0 在路径前缀、代码行号及上下文上存在差异。
  • 适配内容(核心修复逻辑完全保真,核心 +/- 变更行 45/46 逐字节一致,发明代码 0 行):
    • 核心修复 hunk:路径前缀 expat/ 剥离为 lib/xmlparse.c;插入点从上游行 2426 重定位到 2522(XML_ParseBuffer 状态 switch 收尾之后、// Detect and avoid integer overflow 之前);尾随上下文由上游的 if ((uint64_t)len > UINT64_MAX - ... 调整为 2.5.0 的 if (len > XML_INDEX_MAX - ...;5 行 CVE 修复代码(容量校验 → XML_ERROR_INVALID_ARGUMENT + XML_STATUS_ERROR)逐字节保留。
    • 测试 hunk:从 2.5.0 尚不存在的 tests/basic_tests.c(上游 2.6.0 才拆分)重定位到 tests/runtests.c:4029(锚点 test_negative_len_parse_buffer 的 END_TEST 之后);唯一核心行修改为删除 set_subtest(...) 诊断行(该符号在 2.5.0 全树不存在,纯诊断辅助、不影响断言语义),其余 39 行逐字节一致。
    • 注册 hunk:重定位到 runtests.c 的 make_suite()(原 make_basic_test_case),尾随上下文 #if XML_CONTEXT_BYTES > 0 → #if defined(XML_CONTEXT_BYTES),注册行逐字节保留。
  • 落地验证:适配补丁已 git apply 到源码目录(相对 baseline 6d43b78 的 git diff --stat:lib/xmlparse.c +5、tests/runtests.c +40,共 45 insertions,与补丁内容完全一致);gcc 语法检查通过;测试套件 352 checks / 0 failed。

4. 是否提交 PR

──────── 复制以下内容回填 issue ────────
受影响版本排查(受影响/不受影响):
1.openEuler-24.03-LTS(2.5.0): 受影响
ABI 变化:否
原因说明:
1.正常修复
────────────────────────────────────────

likedislike