Welcome To openEuler Community
Hey @markeryang , 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 .


/branches openEuler-24.03-LTS-Next /name markeryang /email 747675909@qq.com


─── CVE-2026-86137 ───
是否需要修复:是
是否存在适配:否
上游社区补丁:https://github.com/GNOME/libxml2/commit/76fe08d97de88bfaef2f7d5cd27f11954cc5bee2.patch
分支修复情况:
1.openEuler-24.03-LTS-Next: 已修复
PR:- openEuler-24.03-LTS-Next: https://gitcode.com/src-openeuler/libxml2/merge_requests/423
适配情况:无
─── CVE-2026-86138 ───
是否需要修复:是
是否存在适配:否
上游社区补丁:https://github.com/GNOME/libxml2/commit/a4cba4b5b5a8c42e155ed42d2d2a44955465a2e4.patch
分支修复情况:
1.openEuler-24.03-LTS-Next: 已修复
PR:- openEuler-24.03-LTS-Next: https://gitcode.com/src-openeuler/libxml2/merge_requests/423
适配情况:无
─── CVE-2026-86139 ───
是否需要修复:是
是否存在适配:否
上游社区补丁:https://github.com/GNOME/libxml2/commit/8edbbdb09f24d26a2f900141fddc2b9d014f53b0.patch
分支修复情况:
1.openEuler-24.03-LTS-Next: 已修复
PR:- openEuler-24.03-LTS-Next: https://gitcode.com/src-openeuler/libxml2/merge_requests/423
适配情况:无
─── CVE-2026-86140 ───
是否需要修复:是
是否存在适配:否
上游社区补丁:https://github.com/GNOME/libxml2/commit/d1686f91dbda141a752200419d35639fd6b38340.patch
分支修复情况:
1.openEuler-24.03-LTS-Next: 已修复
PR:- openEuler-24.03-LTS-Next: https://gitcode.com/src-openeuler/libxml2/merge_requests/423
适配情况:无


补丁适配报告 (CVE-2026-86137)
1. backport-CVE-2026-86137.patch
- 状态: 适配成功 (status=adapted)
- 置信度: high
适配冲突说明
适配说明
- 3 个 hunk 中 2 个需适配(hunk1:baseline xmlregexp.c:58 保留上游 master 已删除的 CUR_SCHAR 宏导致 NXT 宏 hunk 上下文不匹配,仅调整行号与尾随上下文
- hunk3:baseline xmlRegNewParserCtxt 无上游 OOM 检查块且 if (string != NULL) 无大括号,补大括号并将 ret->len = strlen(...) 置于 string != NULL 分支内 xmlStrdup 之后,防止 string==NULL(xmlNewAutomata→xmlRegNewParserCtxt(NULL))时 strlen(NULL) 崩溃)
- hunk2(struct _xmlAutomata 增 size_t len 字段)原样保留仅行号校正
- 核心 +/- 变更行与原补丁逐字节一致
- 适配后补丁已 git apply 到 source_dir,git diff --stat 确认 xmlregexp.c | 9 +++++++--(7 insertions, 2 deletions)
完整代码 diff(原补丁 → 适配补丁)
xmlregexp.c
--- 原补丁/xmlregexp.c
+++ 适配补丁/xmlregexp.c
@@ -1,4 +1,4 @@
-@@ -48,7 +48,9 @@
+@@ -53,7 +53,9 @@
xmlRegexpErrCompile(ctxt, str);
#define NEXT ctxt->cur++
#define CUR (*(ctxt->cur))
@@ -7,9 +7,9 @@
+ (((size_t)(ctxt->cur + index - ctxt->string) < ctxt->len) \
+ ? ctxt->cur[index] : 0)
+ #define CUR_SCHAR(s, l) xmlStringCurrentChar(NULL, s, &l)
#define NEXTL(l) ctxt->cur += l;
- #define XML_REG_STRING_SEPARATOR '|'
-@@ -288,6 +290,7 @@ typedef xmlRegParserCtxt *xmlRegParserCtxtPtr;
+@@ -243,6 +245,7 @@ typedef xmlRegParserCtxt *xmlRegParserCtxtPtr;
struct _xmlAutomata {
xmlChar *string;
xmlChar *cur;
@@ -17,11 +17,15 @@
int error;
int neg;
-@@ -734,6 +737,7 @@ xmlRegNewParserCtxt(const xmlChar *string) {
+@@ -715,8 +718,10 @@ xmlRegNewParserCtxt(const xmlChar *string) {
+ if (ret == NULL)
+ return(NULL);
memset(ret, 0, sizeof(xmlRegParserCtxt));
- if (string != NULL) {
+- if (string != NULL)
++ if (string != NULL) {
ret->string = xmlStrdup(string);
+ ret->len = strlen((const char *) ret->string);
- if (ret->string == NULL) {
- xmlFree(ret);
- return(NULL);
++ }
+ ret->cur = ret->string;
+ ret->neg = 0;
+ ret->negs = 0;


/branches openEuler-24.03-LTS-Next /name markeryang /email 747675909@qq.com


─── CVE-2026-86137 ───
是否需要修复:是
是否存在适配:否
上游社区补丁:https://github.com/GNOME/libxml2/commit/76fe08d97de88bfaef2f7d5cd27f11954cc5bee2.patch
分支修复情况:
1.openEuler-24.03-LTS-Next: 已修复
PR:- openEuler-24.03-LTS-Next: https://gitcode.com/src-openeuler/libxml2/merge_requests/424
适配情况:无
─── CVE-2026-86138 ───
是否需要修复:是
是否存在适配:否
上游社区补丁:https://github.com/GNOME/libxml2/commit/a4cba4b5b5a8c42e155ed42d2d2a44955465a2e4.patch
分支修复情况:
1.openEuler-24.03-LTS-Next: 已修复
PR:- openEuler-24.03-LTS-Next: https://gitcode.com/src-openeuler/libxml2/merge_requests/424
适配情况:无
─── CVE-2026-86139 ───
是否需要修复:否(不受影响)
是否存在适配:否
上游社区补丁:https://github.com/GNOME/libxml2/commit/8edbbdb09f24d26a2f900141fddc2b9d014f53b0.patch
分支修复情况:
1.openEuler-24.03-LTS-Next: 不受影响
PR:无
适配情况:无
─── CVE-2026-86140 ───
是否需要修复:是
是否存在适配:否
上游社区补丁:https://github.com/GNOME/libxml2/commit/d1686f91dbda141a752200419d35639fd6b38340.patch
分支修复情况:
1.openEuler-24.03-LTS-Next: 已修复
PR:- openEuler-24.03-LTS-Next: https://gitcode.com/src-openeuler/libxml2/merge_requests/424
适配情况:无


补丁适配报告 (CVE-2026-86137)
1. backport-CVE-2026-86137.patch
- 状态: 适配成功 (status=adapted)
- 置信度: high
适配冲突说明
适配说明
- 原补丁 3 个 hunk,hunk2(struct _xmlAutomata 新增 size_t len 成员)可直接应用并原样保留
- hunk1(NXT 宏加边界检查)与 hunk3(xmlRegNewParserCtxt 中设置 ret->len = strlen(...))因 baseline 上下文差异需适配:hunk1 因 2.11.9 在 NXT 与 NEXTL 之间保留上游已删除的 #define CUR_SCHAR 行,仅调整 hunk 尾部上下文行
- hunk3 因 baseline 为无花括号形态,最小改动加花括号对包裹(语法必需)并插入核心行,未引入上游另一 commit 的 strdup NULL 检查块
- 全部核心 +/- 变更行与原补丁逐字节一致(含 9TAB/4TAB/6空格/1TAB 精确缩进)
- 补丁已 git apply 到 source_dir,git diff --stat 确认 xmlregexp.c 7 insertions(+), 2 deletions(-),三处修改(xmlregexp.c:56-58/248/723)经 Sub B grep 验证真实存在
完整代码 diff(原补丁 → 适配补丁)
xmlregexp.c
--- 原补丁/xmlregexp.c
+++ 适配补丁/xmlregexp.c
@@ -1,4 +1,4 @@
-@@ -48,7 +48,9 @@
+@@ -53,7 +53,9 @@
xmlRegexpErrCompile(ctxt, str);
#define NEXT ctxt->cur++
#define CUR (*(ctxt->cur))
@@ -7,9 +7,9 @@
+ (((size_t)(ctxt->cur + index - ctxt->string) < ctxt->len) \
+ ? ctxt->cur[index] : 0)
+ #define CUR_SCHAR(s, l) xmlStringCurrentChar(NULL, s, &l)
#define NEXTL(l) ctxt->cur += l;
- #define XML_REG_STRING_SEPARATOR '|'
-@@ -288,6 +290,7 @@ typedef xmlRegParserCtxt *xmlRegParserCtxtPtr;
+@@ -243,6 +245,7 @@ typedef xmlRegParserCtxt *xmlRegParserCtxtPtr;
struct _xmlAutomata {
xmlChar *string;
xmlChar *cur;
@@ -17,11 +17,15 @@
int error;
int neg;
-@@ -734,6 +737,7 @@ xmlRegNewParserCtxt(const xmlChar *string) {
+@@ -715,8 +718,10 @@ xmlRegNewParserCtxt(const xmlChar *string) {
+ if (ret == NULL)
+ return(NULL);
memset(ret, 0, sizeof(xmlRegParserCtxt));
- if (string != NULL) {
+- if (string != NULL)
++ if (string != NULL) {
ret->string = xmlStrdup(string);
+ ret->len = strlen((const char *) ret->string);
- if (ret->string == NULL) {
- xmlFree(ret);
- return(NULL);
++ }
+ ret->cur = ret->string;
+ ret->neg = 0;
+ ret->negs = 0;


/branches openEuler-24.03-LTS-Next /name markeryang /email 747675909@qq.com


@markeryang 我感觉需要先处理 xiaoo 的bug,它两轮分析 2403 Next 是不是受 CVE-2026-86139 的影响结果不一样。
且它提的MR跟它的分析结果不一样,没有办法自圆其说。


任务文件是 step8「CVE 评论生成(bundle)」:需根据事实清单直接输出一条面向 openEuler 维护者的中文 Issue 评论。事实清单与仓库内 pr_results.json / workflow_state.json 交叉核对一致(PR 432、pipeline_failure 为空)。以下为评论正文:
【libxml2 CVE 修复处理说明 · bundle(CVE-2026-86137 / CVE-2026-86138 / CVE-2026-86139 / CVE-2026-86140)】
─── CVE-2026-86137 ───
1. 是否受影响
结论:未知。
本次分析未获得该 CVE 的分支级受影响判定数据,暂无法给出明确的受影响/不受影响结论,建议结合上游公告与发行版维护策略进一步确认。
2. 是否有修复补丁
有,上游补丁链接:
https://github.com/GNOME/libxml2/commit/76fe08d97de88bfaef2f7d5cd27f11954cc5bee2.patch
3. 补丁适配情况
存在适配(bundle 内 3 个补丁共同提交至同一 PR;前置补丁:无):
- backport-CVE-2026-86137.patch —— 需适配,置信度 high,共 3 个 hunk,其中 1 个可直接应用:
- xmlregexp.c · NXT 宏(hunk1,上下文适配):baseline 2.11.9 在 NXT 与 NEXTL 之间存在上游后续已删除的 #define CUR_SCHAR(s, l)(第 58 行,全文件 9 处使用、不可删除),将 hunk 后置上下文行替换为该实际存在的行;3 行新 NXT 宏定义(含 9/4 个制表符与续行反斜杠)与原补丁逐字节一致,行号 48→53。
- xmlregexp.c · struct _xmlAutomata(hunk2,可直接应用):增加 size_t len; 成员,仅行号偏移 288→243。
- xmlregexp.c · xmlRegNewParserCtxt 设 ret->len(hunk3,语法结构调整):baseline 第 718-719 行为无大括号的 if (string != NULL),为 if 语句补大括号使 ret->len = strlen(...) 仅在 string != NULL 分支内求值(避免 string==NULL 时 strlen(NULL) 崩溃,xmlregexp.c:5782 存在 xmlRegNewParserCtxt(NULL) 真实调用路径),核心行逐字节一致,行号 734→715。
- 说明:未移植上游 if (ret->string == NULL) 空检查块——该块在原补丁中仅为上下文行,属上游更早的错误处理重构,非本 CVE 修复内容。
- 验证:适配补丁已 git apply 并 commit 到 source_dir(commit dcee6e4);git diff --stat 确认 baseline 变化(xmlregexp.c | 9 ++++++++--);临时副本 gcc -fsyntax-only 语法检查通过。
- backport-CVE-2026-86138.patch —— 可直接应用,无需适配。
- backport-CVE-2026-86140.patch —— 可直接应用,无需适配。
4. 是否提交 PR
已提交 PR(目标分支 openEuler-24.03-LTS-Next):
https://gitcode.com/src-openeuler/libxml2/merge_requests/432
─── CVE-2026-86138 ───
1. 是否受影响
结论:未知。
本次分析未获得该 CVE 的分支级受影响判定数据,暂无法给出明确的受影响/不受影响结论,建议结合上游公告与发行版维护策略进一步确认。
2. 是否有修复补丁
有,上游补丁链接:
https://github.com/GNOME/libxml2/commit/a4cba4b5b5a8c42e155ed42d2d2a44955465a2e4.patch
3. 补丁适配情况
存在适配(bundle 共用同一组补丁,详细适配过程见上文 CVE-2026-86137 块):
- backport-CVE-2026-86137.patch —— 需适配(NXT 宏上下文适配、if 语句补大括号),置信度 high。
- backport-CVE-2026-86138.patch —— 可直接应用,无需适配。
- backport-CVE-2026-86140.patch —— 可直接应用,无需适配。
前置补丁:无。
4. 是否提交 PR
已提交 PR(目标分支 openEuler-24.03-LTS-Next):
https://gitcode.com/src-openeuler/libxml2/merge_requests/432
─── CVE-2026-86139 ───
1. 是否受影响
结论:不受影响。
CVE-2026-86139 的自有补丁经源码影响性分析判为 NOT_APPLICABLE,漏洞代码不存在于本版本源码,无需修复。
分支状态:
- openEuler-24.03-LTS-Next | 版本 N/A | 不受影响 | 原因:漏洞代码不存在(补丁 NOT_APPLICABLE)| ABI 变化:否
2. 是否有修复补丁
上游已有对应提交(本版本不受影响、无需回合,链接供参考):
https://github.com/GNOME/libxml2/commit/8edbbdb09f24d26a2f900141fddc2b9d014f53b0.patch
3. 补丁适配情况
本 CVE 自身无需修复补丁;其所在 bundle 的 PR 中包含针对 CVE-2026-86137 / CVE-2026-86138 / CVE-2026-86140 的 3 个补丁,适配情况与上文 CVE-2026-86137 块所述一致(backport-CVE-2026-86137.patch 需适配,backport-CVE-2026-86138.patch 与 backport-CVE-2026-86140.patch 可直接应用)。前置补丁:无。
4. 是否提交 PR
已提交 PR(目标分支 openEuler-24.03-LTS-Next):
https://gitcode.com/src-openeuler/libxml2/merge_requests/432
─── CVE-2026-86140 ───
1. 是否受影响
结论:未知。
本次分析未获得该 CVE 的分支级受影响判定数据,暂无法给出明确的受影响/不受影响结论,建议结合上游公告与发行版维护策略进一步确认。
2. 是否有修复补丁
有,上游补丁链接:
https://github.com/GNOME/libxml2/commit/d1686f91dbda141a752200419d35639fd6b38340.patch
3. 补丁适配情况
存在适配(bundle 共用同一组补丁,详细适配过程见上文 CVE-2026-86137 块):
- backport-CVE-2026-86137.patch —— 需适配(NXT 宏上下文适配、if 语句补大括号),置信度 high。
- backport-CVE-2026-86138.patch —— 可直接应用,无需适配。
- backport-CVE-2026-86140.patch —— 可直接应用,无需适配。
前置补丁:无。
4. 是否提交 PR
已提交 PR(目标分支 openEuler-24.03-LTS-Next):
https://gitcode.com/src-openeuler/libxml2/merge_requests/432
合并 PR 链接
(流水线各步骤均执行成功,无失败记录,故无失败原因说明。)


请合并修复 CVE-2026-86137 CVE-2026-86138 CVE-2026-86139 CVE-2026-86140