issue处理注意事项:
1. 提交正常修复分支的修复PR时,必须关联当前issue,否则无法关闭当前issue;
2. 模板内容需要填写完整, 无论是受影响或者不受影响都需要填写完整内容;
3. 以下为模板中需要填写完整的内容, 请复制到评论区回复;
注: 内容的关键词(影响性分析说明, openEuler评分, 受影响版本排查(受影响/不受影响), 修复是否涉及abi变化(是/否), 原因说明)不能省略,省略后cve-manager将无法正常解析填写内容.
影响性分析说明:
openEuler评分: (评分和向量)
受影响版本排查(受影响/不受影响):
1.master(10.48):
2.openEuler-20.03-LTS-SP4(10.35):
3.openEuler-22.03-LTS-SP4(10.39):
4.openEuler-24.03-LTS-Next(10.42):
5.openEuler-24.03-LTS-SP1(10.42):
6.openEuler-24.03-LTS-SP3(10.42):
7.openEuler-24.03-LTS-SP4(10.42):
修复是否涉及abi变化(是/否):
1.master(10.48):
2.openEuler-20.03-LTS-SP4(10.35):
3.openEuler-22.03-LTS-SP4(10.39):
4.openEuler-24.03-LTS-Next(10.42):
5.openEuler-24.03-LTS-SP1(10.42):
6.openEuler-24.03-LTS-SP3(10.42):
7.openEuler-24.03-LTS-SP4(10.42):
原因说明:
1.master(10.48):
2.openEuler-20.03-LTS-SP4(10.35):
3.openEuler-22.03-LTS-SP4(10.39):
4.openEuler-24.03-LTS-Next(10.42):
5.openEuler-24.03-LTS-SP1(10.42):
6.openEuler-24.03-LTS-SP3(10.42):
7.openEuler-24.03-LTS-SP4(10.42):
原因说明填写请参考下方表格(注意:版本是否受影响和版本的原因说明必须对应,例如master版本分支受影响,那原因说明只能是受影响对应的原因之一!):
分支状态 |
原因说明 | 使用场景 |
|---|---|---|
| 受影响 | 正常修复 | 受影响且需要修复(包含升级版本修复)的漏洞; 受影响且已经修复的漏洞(历史修复PR也需要关联issue); 若因特殊原因无法修复,应修改原因说明为【不修复-特殊原因】,并在安委会备案相关情况。 |
| 受影响 | 暂不修复-漏洞仍在分析中 | 已关注到相关漏洞,正在处理,未明确漏洞影响和修复方案。 |
| 受影响 | 暂不修复-暂无解决方案或补丁 | 当前没有可用的修复或补救措施。【影响性分析】中应包含有关为什么没有修复或补救措施的详细说明、上游相关PR等。 |
| 受影响 | 不修复-超出修复范围 | 没有漏洞的修复计划。当版本停维、软件包宣布生命周期终止或弃用使用。 |
| 受影响 | 不修复-特殊原因导致不再修复 | 如存在其他特殊情况不修复相关漏洞,或评估后无法升级修复,应在openEuler社区安全委员会例会进行说明备案。 【影响性分析】中应包含不发布修复的详细说明、特殊情况还应有安委会会议纪要。 |
| 不受影响 | 不受影响-组件不存在 | 软件不受影响,因为易受攻击的组件不在产品中。 |
| 不受影响 | 不受影响-已有内置的内联控制或缓解措施 | 内置的内联控制或缓解措施可防止攻击者利用漏洞 |
| 不受影响 | 不受影响-漏洞代码不能被攻击者触发 | 易受攻击的组件存在,并且该组件包含易受攻击的代码。但是,易受攻击的代码的使用方式使得攻击者无法进行任何预期的攻击。 |
| 不受影响 | 不受影响-漏洞代码不在执行路径 | 易受影响的代码在执行过程中不可访问,包括产品的非预期状态。产品不使用也不执行的组件。 |
| 不受影响 | 不受影响-漏洞代码不存在 | 产品不受影响,因为漏洞背后的代码在产品中不存在。与component_not_present不同的是,有问题的组件存在,但由于某种原因(例如安全的编译器选项)使漏洞的特定代码不存在于组件中。 |
issue处理具体操作请参考:
https://atomgit.com/openeuler/cve-manager/blob/master/cve-vulner-manager/doc/md/manual.md
pr关联issue具体操作请参考:
https://docs.atomgit.com/docs/help/home/org_project/pullrequests/pr-related-issue


Welcome To openEuler Community
Hey @openeuler-ci-bot , 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: @jiayi0118, @licunlong, @protkhn, @shenyangyang, @xujing99, @yue-yuankun .


| 参考网址 | 关联pr | 状态 | 补丁链接 |
|---|---|---|---|
| https://www.opencve.io/cve/CVE-2026-89160 | |||
| https://bugzilla.redhat.com/show_bug.cgi?id=CVE-2026-89160 | |||
| https://security-tracker.debian.org/tracker/CVE-2026-89160 | |||
| http://www.cnnvd.org.cn/web/vulnerability/queryLds.tag?qcvCnnvdid=CVE-2026-89160 | |||
| https://nvd.nist.gov/vuln/detail/CVE-2026-89160 | |||
| https://ubuntu.com/security/CVE-2026-89160 | None | None | https://discourse.ubuntu.com/c/project |
说明:补丁链接仅供初步排查参考,实际可用性请人工再次确认,补丁下载验证可使用CVE补丁工具。
若补丁不准确,烦请在此issue下评论 '/report-patch 参考网址 补丁链接1,补丁链接2' 反馈正确信息,便于我们不断优化工具,不胜感激。
如 /report-patch https://security-tracker.debian.org/tracker/CVE-2021-3997 https://github.com/systemd/systemd/commit/5b1cf7a9be37e20133c0208005274ce4a5b5c6a1


/branches master,openEuler-20.03-LTS-SP4,openEuler-22.03-LTS-SP4,openEuler-24.03-LTS-Next /patch_url https://github.com/PCRE2Project/pcre2/commit/4889caf31a4c5a6b3c051f0031bf2dbd78f2c287.patch /name fly_fzc /email 2385803914@qq.com


【任务 #39 · master】CVE-2026-89160
1. 受影响性结论:不受影响
CVE-2026-89160 的自有补丁经 Step 4 源码影响性分析判为 NOT_APPLICABLE:漏洞代码不存在于本版本源码,因此无需修复。
- master(版本 10.48):不受影响 —— 漏洞代码不存在(补丁 NOT_APPLICABLE),无 ABI 变化。
2. 修复补丁
已找到上游社区修复补丁:
https://github.com/PCRE2Project/pcre2/commit/4889caf31a4c5a6b3c051f0031bf2dbd78f2c287.patch
3. 补丁适配情况
无需适配:补丁对本版本源码为 NOT_APPLICABLE,无适配项,亦无前置补丁。
4. PR 提交情况
未提交 PR(本分支不受影响,无需修复)。


【任务 #39 · openEuler-22.03-LTS-SP4】CVE-2026-89160
是否受影响:受影响
CVE-2026-89160 为 pcre2_match 在 PCRE2_MATCH_INVALID_UTF 模式下匹配非法 UTF subject 时的越界读漏洞。Step 4 源码影响性分析确认漏洞代码在本版本源码中真实存在:src/pcre2_extuni.c:92 的 PRIV(extuni) 中 while (bptr > start_subject)(:116)向后扫描无下界,BACKCHAR 宏(pcre2_intmodedep.h:345)亦无下界检查,可越过缓冲区起点读取;核心修复可精确定位,判为 NEEDS_ADAPTATION。
分支状态:
- openEuler-22.03-LTS-SP4:版本 10.39,受影响
修复补丁:已找到上游修复补丁
[原补丁] https://github.com/PCRE2Project/pcre2/commit/4889caf31a4c5a6b3c051f0031bf2dbd78f2c287.patch
补丁适配情况:已适配(backport-CVE-2026-89160.patch,状态 adapted,置信度 high)
- 冲突原因:上游补丁基于 10.43,与 10.39 存在上下文及机制差异——extuni.c 真实定义处尾上下文不同(上游
BOOL was_ep_ZWJ = FALSE;在 10.39 为int lgb = UCD_GRAPHBREAK(c);),且上游变长 lookbehind 回扫机制在 10.39 不存在。 - 适配内容:
- 7 个 hunk 直接应用:extuni.c 的 stub 签名、(void) 调整、Arguments 文档、while 回扫下界由 start_subject 改为 check_subject,以及 pcre2_match.c 四处 PRIV(extuni) 调用点第 3 实参由 mb->start_subject 改传 mb->check_subject——核心修复逻辑保真。
- hunk#2 上下文适配:仅对齐尾上下文,核心变更行与原补丁逐字节一致。
- hunk#8 丢弃(VERSION_GAP):变长 lookbehind 回扫循环为上游 10.43 机制,10.39 lookbehind 仅支持定长(ERR25),且 OP_REVERSE 定长 UTF 路径(pcre2_match.c:5522)已有 check_subject 守卫,该漏洞面在 10.39 不存在。
- hunk#9–#13 丢弃(testdata 5 文件):插入锚点在 10.39 均不存在,新增测试含 10.39 无法编译的变长 lookbehind 语法(ERR25),期望输出基于 10.43+ 语义无法验证,写入会破坏测试套件。
- 落地验证:适配后 2 files changed, 9 insertions(+), 9 deletions(-),已 git apply 到源码目录并验证 git diff --stat 有真实变化。
PR:已提交
- openEuler-22.03-LTS-SP4:https://gitcode.com/src-openeuler/pcre2/merge_requests/169


【任务 #39 · openEuler-20.03-LTS-SP4】CVE-2026-89160
1. 是否受影响:受影响
CVE-2026-89160 对应 PCRE2_MATCH_INVALID_UTF 匹配无效 UTF 主体时 pcre2_match 反向扫描越界读,该漏洞路径在目标分支源码中真实存在:PRIV(extuni) 的反向扫描以 start_subject 为界(pcre2_extuni.c:116 while (bptr > start_subject)),4 个 OP_EXTUNI 调用点均传 mb->start_subject(pcre2_match.c:2537/2843/3610/4147),而 mb->check_subject 字段在 10.35 已具备(pcre2_intmodedep.h:869)。patch -p1 --dry-run 证实 8/14 hunk 可自动落位(含全部核心代码 hunk),漏洞代码存在于本版本源码,需要修复。
- openEuler-20.03-LTS-SP4(版本 10.35):受影响(ABI 变化:N/A)
2. 修复补丁
上游社区补丁:https://github.com/PCRE2Project/pcre2/commit/4889caf31a4c5a6b3c051f0031bf2dbd78f2c287.patch
3. 补丁适配情况
backport-CVE-2026-89160.patch 已完成适配(状态:adapted,置信度:high),无前置补丁。
- 冲突原因:原补丁基于上游 10.4x(commit 4889caf,14 hunk),目标为 pcre2-10.35,预检 7 个 hunk 直接应用、7 个需适配。差异点:extuni.c 函数签名 hunk 的上游上下文行
BOOL was_ep_ZWJ = FALSE;来自 10.44+ 的 extuni 重写,10.35 对应为int lgb = UCD_GRAPHBREAK(c);;match.c@6243 针对的变长 lookbehind 后向循环属 10.43 机制,10.35 无此代码路径;5 个 testdata hunk 的锚点测试为后续版本新增。 - 适配内容:7 个 hunk 经 git apply --reject 逐字应用(extuni.c 的 stub 签名、Arguments 注释、RI 后向扫描 while 循环,以及 match.c 4 处调用点
mb->start_subject→mb->check_subject,10.35 实际行号 2537/2843/3610/4147);extuni.c 函数签名 hunk 仅调整失配的上下文行,核心变更与原补丁逐字节一致;match.c@6243 作为版本差异丢弃——10.35 的等价防护 OP_REVERSE@5522 已使用check_subject,无安全缺口;testdata hunk 锚点重定位插入,保留测试2/\X\X/utf,match_invalid_utf验证 extuni RI 后向扫描修复,丢弃测试1/(?<=a{1,2})X/(变长 lookbehind 在 10.35 编译报 ERR25,且其测试对象即已丢弃的版本差异代码路径)。 - 落地验证:补丁已应用至源码目录并提交(commit 895d8f8),保留原始 5 行 header,正文为 git diff(7 files changed, 42 insertions(+), 9 deletions(-));git apply 正向(干净基线副本)与反向(-R)校验均通过,核心 +/- 行保真校验通过(extuni.c 逐字节一致,match.c 仅缺版本差异丢弃对,testdata 仅缺测试1 行)。
4. PR
已提交 PR(openEuler-20.03-LTS-SP4):https://gitcode.com/src-openeuler/pcre2/merge_requests/168


【任务 #39 · openEuler-24.03-LTS-Next】CVE-2026-89160
1. 受影响性:受影响
CVE-2026-89160(pcre2_match 在 PCRE2_MATCH_INVALID_UTF 模式匹配无效 UTF 主题时越界读取)的漏洞代码存在于本版本源码,需要修复。Step 4 源码影响性分析定位:PRIV(extuni) 的反向 RI 扫描边界为 while (bptr > start_subject)(src/pcre2_extuni.c:116),pcre2_match.c 的 4 个 OP_EXTUNI 调用点(2574/2934/3763/4354)均传 mb->start_subject,匹配无效 UTF 主题时可越界反扫;修复所需的 mb->check_subject 字段 10.42 已具备(pcre2_intmodedep.h:880,OP_REVERSE 已用该边界),核心修复有明确落地位置。
- openEuler-24.03-LTS-Next / 版本 10.42:受影响(ABI 变化:N/A)
2. 修复补丁
上游社区补丁:https://github.com/PCRE2Project/pcre2/commit/4889caf31a4c5a6b3c051f0031bf2dbd78f2c287.patch
3. 补丁适配情况
已基于上游补丁完成适配:backport-CVE-2026-89160.patch(状态:adapted,置信度:high)。
- 冲突原因:上游 10.48 与 10.42 存在三处差异——extuni 实现处的上下文行
BOOL was_ep_ZWJ = FALSE;系上游 067c2f1(2024-06,晚于 10.42)引入;OP_VREVERSE 为 10.44+ 特性,10.42 中不存在该代码路径;测试数据的锚点区段与变长 lookbehind 子测试在 10.42 中不存在。 - 适配内容:原补丁 14 个 hunk 中 7 个(含核心修复:extuni 反向扫描边界
start_subject→check_subject及 pcre2_match.c 4 个 OP_EXTUNI 调用点)与上游逐字节一致,直接应用;extuni 实现 hunk 仅将上下文行对齐为 10.42 实际的int lgb = UCD_GRAPHBREAK(c);,核心改名行逐字节保留;OP_VREVERSE hunk 丢弃(等价定长路径 OP_REVERSE 在 10.42 已使用mb->check_subject守护,无该漏洞面);5 个 testdata hunk 重新锚定,保留/\X\X/utf,match_invalid_utf子测试(直接验证 extuni 反向扫描修复),丢弃 10.42 不支持的变长 lookbehind 子测试。pcre2_dfa_match.c 未修改,与上游修复范围保持一致。 - 落地验证:适配补丁已成功应用回源码目录(git diff --stat:7 files changed, 42 insertions, 9 deletions);副本目录 configure+make 构建成功,8-bit 与 16/32-bit pcre2test 实测新增测试均输出 No match、与期望一致,完整 ./RunTest 全部通过(Test 10/12 OK 含 JIT),RPM %check(make check)不会因 testdata 失配失败。
4. PR 提交情况
已提交 PR:https://gitcode.com/src-openeuler/pcre2/merge_requests/170


/branches master,openEuler-20.03-LTS-SP4,openEuler-22.03-LTS-SP4,openEuler-24.03-LTS-Next /patch_url https://github.com/PCRE2Project/pcre2/commit/4889caf31a4c5a6b3c051f0031bf2dbd78f2c287.patch /name fly_fzc /email 2385803914@qq.com


【任务 #39 · master】CVE-2026-89160
1. 是否受影响:不受影响
CVE-2026-89160 的自有补丁经 Step 4 源码影响性分析判为 NOT_APPLICABLE,漏洞代码不存在于本版本源码中,因此无需修复。
分支状态:
- master(版本 10.48):不受影响 —— 漏洞代码不存在(补丁 NOT_APPLICABLE),无 ABI 变化。
2. 是否有修复补丁:有
上游社区补丁链接:
https://github.com/PCRE2Project/pcre2/commit/4889caf31a4c5a6b3c051f0031bf2dbd78f2c287.patch
3. 补丁适配情况:无适配
该补丁经源码影响性分析判定为 NOT_APPLICABLE,漏洞代码在 master 分支(pcre2 10.48)源码中不存在,无需应用补丁,因此未做任何适配,也无前置补丁。
4. 是否提交 PR:无 PR
本分支经判定不受影响,无需修复,故未提交 PR。


【任务 #39 · openEuler-24.03-LTS-Next】CVE-2026-89160
1. 是否受影响:受影响
- 漏洞本质:CVE 修复将 PCRE2_MATCH_INVALID_UTF 的反向扫描边界从
mb->start_subject改为mb->check_subject(UTF 已校验 subject 的起点)。漏洞代码在本版本源码中原样存在:PRIV(extuni)的 RI 反向扫描while (bptr > start_subject)位于 src/pcre2_extuni.c:116,四个传mb->start_subject的调用点位于 src/pcre2_match.c:2574/2934/3763/4354,需要修复。 - 本树已携带此前 backport 的 10.43
check_subject机制(字段定义 src/pcre2_intmodedep.h:880,初始化/跳过 invalid 前缀 src/pcre2_match.c:6592-6704),具备直接落地修复的条件。 - 分支状态:
- openEuler-24.03-LTS-Next(版本 10.42):受影响
2. 修复补丁
3. 补丁适配情况
backport-CVE-2026-89160.patch已完成适配(置信度:高)。14 个 hunk 中 7 个直接应用(src/pcre2_extuni.c 三处start_subject→check_subject及 src/pcre2_match.c 四处调用点,核心变更行逐字节保留),其余 7 个冲突 hunk 适配要点:- 冲突原因:补丁基于上游 10.44+ 代码,与 10.42 基线存在函数上下文与测试用例差异(extuni.c 定义处上游含 ZWJ 重写
BOOL was_ep_ZWJ = FALSE;,基线为int lgb = UCD_GRAPHBREAK(c);;5 个 testdata hunk 的上游锚点测试系 10.42 之后新增)。 - 适配内容:extuni.c 定义处 hunk 仅调整尾部上下文与 hunk 头行号,核心行逐字节保真;pcre2_match.c@6243 的 EXTUNI 最大化回溯循环因版本差异丢弃——该循环在 10.42 不存在,基线等价物 RM220 循环由
Feptr <= Lstart_eptr界定(≥ check_subject),本就不会进入非法前缀,CVE 实际暴露点已由其余 hunk 修复;5 个 testdata hunk 插入点整体迁至各文件 match_invalid_utf 节末分隔线前,插入行与原补丁逐字节一致。 - 落地验证:补丁已
git apply到基线并经git diff --stat确认生效,git apply --check通过,无 .rej/.orig 残留;最终 7 files changed, 65 insertions(+), 9 deletions(-)。
- 冲突原因:补丁基于上游 10.44+ 代码,与 10.42 基线存在函数上下文与测试用例差异(extuni.c 定义处上游含 ZWJ 重写
- 前置补丁:无。
4. PR 提交


任务已识别:根据事实清单生成 Issue #39 的 CVE-2026-89160 修复评论。事实清单中的链接、分支、结论、commit 等数据已核对(PR 结果、适配状态与 workflow_state 一致),现直接输出评论内容:
【任务 #39 · openEuler-22.03-LTS-SP4】CVE-2026-89160
一、受影响性判定:受影响
经 Step 4 源码影响性分析,pcre2 10.39 中确实存在“反向扫描以 start_subject 为下界、可进入 MATCH_INVALID_UTF 而未校验无效前缀”的越界读漏洞模式,核心修复可定位:补丁修改的 7 个文件(src/pcre2_extuni.c、src/pcre2_match.c 及 5 个 testdata 文件)在 10.39 源码树中全部按原路径存在,漏洞子系统符号完整——mb->check_subject(pcre2_intmodedep.h:869)、PCRE2_MATCH_INVALID_UTF/allow_invalid(pcre2_match.c:6245)、PRIV(extuni)(pcre2_extuni.c:92)及 4 处仍传 mb->start_subject 的 extuni 调用点(pcre2_match.c:2537/2843/3610/4147)。
- openEuler-22.03-LTS-SP4:版本 10.39,受影响(ABI 变化:N/A)
二、修复补丁
上游补丁:https://github.com/PCRE2Project/pcre2/commit/4889caf31a4c5a6b3c051f0031bf2dbd78f2c287.patch
三、补丁适配情况
[原补丁] backport-CVE-2026-89160.patch:已完成适配,置信度 high,核心修复逻辑保真。
- 冲突原因:上游基于更新版本代码,与 10.39 存在函数上下文差异(extuni 函数体首行不同)、10.43+ 才有的变长 lookbehind 单字符向后扫描路径在 10.39 不存在、testdata 部分锚点用例在本版本不存在或无法编译。
- 适配内容:14 个 hunk 中 7 个(extuni.c 3 个代码 hunk + pcre2_match.c 前 4 个 PRIV(extuni) 调用点)核心行逐字节一致、直接应用;hunk03 仅做纯上下文适配,核心变更行逐字节保留;hunk09 为 VERSION_GAP 丢弃——10.39 的 OP_REVERSE UTF 分支已有等价防护 Feptr <= mb->check_subject(pcre2_match.c:5522);testdata 5 个 hunk 重锚定,保留 \X\X 核心回归测试,丢弃 10.39 下无法编译(ERR25 不支持变长 lookbehind)的 (?<=a{1,2}) 测试对。
- 落地验证:适配后补丁已应用到源码目录并提交,commit 0b0f5fe,git diff --stat 为 7 files changed, 42 insertions(+), 9 deletions(-)。
- 前置补丁:无。
四、PR 提交
已提交 PR:https://gitcode.com/src-openeuler/pcre2/merge_requests/178(目标分支 openEuler-22.03-LTS-SP4)


/branches openEuler-24.03-LTS-Next /patch_url https://github.com/PCRE2Project/pcre2/commit/4889caf31a4c5a6b3c051f0031bf2dbd78f2c287.patch /name fly_fzc /email 2385803914@qq.com


【任务 #39 · openEuler-20.03-LTS-SP4】CVE-2026-89160
一、是否受影响
结论:受影响。
- openEuler-20.03-LTS-SP4(pcre2 10.35):受影响
原因:Step 4 源码影响性分析确认核心漏洞代码在本版本源码中存在且可定位。CVE 描述的"PCRE2_MATCH_INVALID_UTF 匹配无效 UTF 主题时 pcre2_match 越界读”的根源——extuni 的区域指示符计数向后扫描(src/pcre2_extuni.c:116 while (bptr > start_subject),配合第 121 行 BACKCHAR 可下溢)及其 4 个调用点(src/pcre2_match.c:2537/2843/3610/4147 均传 mb->start_subject)逐字存在;补丁所需符号 mb->check_subject(pcre2_intmodedep.h:869)与 PCRE2_MATCH_INVALID_UTF 均已具备,且补丁未被预应用,需要修复。
二、是否有修复补丁
有,上游社区补丁:
三、补丁适配情况
存在适配,[原补丁] backport-CVE-2026-89160.patch,状态:adapted,置信度:high。
- 冲突原因:上游补丁基于 10.4x,与目标版本 10.35 存在差异——extuni.c 函数签名尾部上下文不同(上游含 10.41+ 的 ZWJ 逻辑)、match.c@6243 针对的 OP_VREVERSE 变长 lookbehind 反向扫描在 10.35 中不存在、testdata 上游锚点测试在 baseline 不存在。
- 适配内容:原补丁共 14 hunk/7 文件。7 个直接应用 hunk 原样保留(extuni.c 3 个反向扫描边界修复 + pcre2_match.c 4 个 extuni 调用点 @2537/2843/3610/4147,核心行逐字节保真)。7 个失败 hunk 适配:① extuni.c@90 尾部上下文对齐 baseline,核心变更行逐字节一致;② match.c@6243 丢弃——10.35 无 OP_VREVERSE、变长 lookbehind 编译期被 ERR25 拒绝、固定长度 OP_REVERSE 已有等价防护(pcre2_match.c:5522
Feptr <= mb->check_subject),无安全缺口;③-⑦ testdata 五文件改为在 match_invalid_utf 段末分隔符前插入,仅保留/\X\X/回归用例(10.35 可用),丢弃 10.35 编译不过的/(?<=a{1,2})X/用例。核心修复逻辑保真,适配后 7 文件 +42/-9。pcre2_dfa_match.c 4 处 extuni 调用未改(镜像上游,DFA 本身拒绝 match_invalid_utf)。 - 落地验证:补丁已提交至 source_dir(git diff --stat HEAD~1 = 7 files, +42/-9 非空),并在 baseline commit e2220a8 临时 worktree 上通过
git apply --check验证。
四、是否提交 PR
已提交 PR:https://gitcode.com/src-openeuler/pcre2/merge_requests/179


【任务 #39 · openEuler-24.03-LTS-Next】CVE-2026-89160
1. 是否受影响:受影响
Step 4 源码影响性分析判为 NEEDS_ADAPTATION:核心 CVE 修复在 pcre2-10.42 中可定位且几乎完全适用——漏洞模式(PRIV(extuni) 向后 RI 扫描受限于 start_subject,见 pcre2_extuni.c:116 while (bptr > start_subject),以及四处传递 mb->start_subject 的 match() 调用点,见 pcre2_match.c:2574/2934/3763/4354)逐字存在于本版本源码,mb->check_subject 已存在并初始化(pcre2_intmodedep.h:880、pcre2_match.c:6592),需要修复。
- 分支状态:openEuler-24.03-LTS-Next · 版本 10.42 · 受影响(ABI 变化:N/A)
2. 修复补丁:有
上游补丁:https://github.com/PCRE2Project/pcre2/commit/4889caf31a4c5a6b3c051f0031bf2dbd78f2c287.patch
3. 补丁适配情况:存在适配(backport-CVE-2026-89160.patch,状态 adapted,置信度 high)
- 冲突原因:原补丁基于上游 10.43+ 代码。extuni.c 真实定义 hunk 的尾随上下文
BOOL was_ep_ZWJ = FALSE;在 10.42 不存在(10.42 为int lgb = UCD_GRAPHBREAK(c););变长 lookbehind 的反向扫描循环为上游 10.43/10.44 引入,10.42 无此代码;测试数据上下文亦存在版本差异。 - 适配内容:14 个 hunk 中 7 个逐字保留(extuni.c 哑函数签名/注释/核心 while 循环修复 + pcre2_match.c 四处 start_subject→check_subject 重命名);extuni.c 定义 hunk 重定位上下文,核心修复行逐字节保留;变长 lookbehind hunk 丢弃(10.42 编译期即以 ERR25 拒绝变长 lookbehind,该路径不可达,且 OP_REVERSE:5729 已有
Feptr <= mb->check_subject等价防护);5 个 testdata hunk 上下文重定位,\X\X 回归测试逐字保留,不可编译的变长 lookbehind 测试丢弃。核心修复逻辑保真。 - 落地验证:适配补丁已 git apply 到源码目录,经 git diff --stat 验证 baseline 有变化(7 files changed, 42 insertions(+), 9 deletions(-)),header 与原补丁逐字节一致;经对抗性审核 confirmed(核心行逐字节校验 0 损坏、发明代码 0/66、dropped hunk 经 4 路独立证据证实为合法版本差异)。
4. PR:已提交
https://gitcode.com/src-openeuler/pcre2/merge_requests/180


影响性分析说明:
PCRE2 before 10.48 has a pcre2_match out-of-bounds read during the PCRE2_MATCH_INVALID_UTF matching of an invalid UTF subject.
openEuler评分: (评分和向量)
BaseScore:3.7 Low
Vector:CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:L
受影响版本排查(受影响/不受影响):
1.master(10.48):不受影响
2.openEuler-20.03-LTS-SP4(10.35):受影响
3.openEuler-22.03-LTS-SP4(10.39):受影响
4.openEuler-24.03-LTS-Next(10.42):受影响
5.openEuler-24.03-LTS-SP1(10.42):受影响
6.openEuler-24.03-LTS-SP3(10.42):受影响
7.openEuler-24.03-LTS-SP4(10.42):受影响
修复是否涉及abi变化(是/否):
1.master(10.48):否
2.openEuler-20.03-LTS-SP4(10.35):否
3.openEuler-22.03-LTS-SP4(10.39):否
4.openEuler-24.03-LTS-Next(10.42):否
5.openEuler-24.03-LTS-SP1(10.42):否
6.openEuler-24.03-LTS-SP3(10.42):否
7.openEuler-24.03-LTS-SP4(10.42):否
原因说明:
1.master(10.48):不受影响-漏洞代码不存在
2.openEuler-20.03-LTS-SP4(10.35):正常修复
3.openEuler-22.03-LTS-SP4(10.39):正常修复
4.openEuler-24.03-LTS-Next(10.42):正常修复
5.openEuler-24.03-LTS-SP1(10.42):正常修复
6.openEuler-24.03-LTS-SP3(10.42):正常修复
7.openEuler-24.03-LTS-SP4(10.42):正常修复


@openeuler-ci-bot 经过 cve-manager 解析, 已分析的内容如下表所示:
| 状态 | 分析项目 | 内容 |
|---|---|---|
| 已分析 | 1.影响性分析说明 | PCRE2 before 10.48 has a pcre2_match out-of-bounds read during the PCRE2_MATCH_INVALID_UTF matching of an invalid UTF subject. |
| 已分析 | 2.openEulerScore | 3.7 |
| 已分析 | 3.openEulerVector | AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:L |
| 已分析 | 4.受影响版本排查 | master:不受影响,openEuler-20.03-LTS-SP4:受影响,openEuler-22.03-LTS-SP4:受影响,openEuler-24.03-LTS-Next:受影响,openEuler-24.03-LTS-SP1:受影响,openEuler-24.03-LTS-SP3:受影响,openEuler-24.03-LTS-SP4:受影响 |
| 已分析 | 5.是否涉及abi变化 | master:否,openEuler-20.03-LTS-SP4:否,openEuler-22.03-LTS-SP4:否,openEuler-24.03-LTS-Next:否,openEuler-24.03-LTS-SP1:否,openEuler-24.03-LTS-SP3:否,openEuler-24.03-LTS-SP4:否 |
| 已分析 | 6.原因说明 | master:不受影响-漏洞代码不存在,openEuler-20.03-LTS-SP4:正常修复,openEuler-22.03-LTS-SP4:正常修复,openEuler-24.03-LTS-Next:正常修复,openEuler-24.03-LTS-SP1:正常修复,openEuler-24.03-LTS-SP3:正常修复,openEuler-24.03-LTS-SP4:正常修复 |
请确认分析内容的准确性, 确认无误后, 您可以进行后续步骤, 否则您可以继续分析.


经过cve-manager解析,所有PR均已合入


经过cve-manager解析,所有PR均已合入


一、漏洞信息
漏洞编号:CVE-2026-89160
漏洞归属组件:pcre2
漏洞归属的版本:10.35,10.36,10.39,10.40,10.42,10.47,10.48
CVSS评分:
BaseScore:N/A None
Vector:
漏洞简述:
PCRE2 before 10.48 has a pcre2_match out-of-bounds read during the PCRE2_MATCH_INVALID_UTF matching of an invalid UTF subject.
漏洞公开时间:2026-09-11 12:37:06
漏洞创建时间:2026-09-11 12:48:04
漏洞详情参考链接:
https://nvd.nist.gov/vuln/detail/CVE-2026-89160
更多参考(点击展开)
漏洞分析指导链接:
https://atomgit.com/openeuler/cve-manager/blob/master/cve-vulner-manager/doc/md/manual.md
漏洞数据来源:
七彩瞬析开源风险感知平台
漏洞补丁信息:
详情(点击展开)
无
二、漏洞分析结构反馈
影响性分析说明:
PCRE2 before 10.48 has a pcre2_match out-of-bounds read during the PCRE2_MATCH_INVALID_UTF matching of an invalid UTF subject.
openEuler评分:
3.7
Vector:CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:L
受影响版本排查(受影响/不受影响):
1.master(10.48):不受影响
2.openEuler-20.03-LTS-SP4(10.35):受影响
3.openEuler-22.03-LTS-SP4(10.39):受影响
4.openEuler-24.03-LTS-Next(10.42):受影响
5.openEuler-24.03-LTS-SP1(10.42):受影响
6.openEuler-24.03-LTS-SP3(10.42):受影响
7.openEuler-24.03-LTS-SP4(10.42):受影响
修复是否涉及abi变化(是/否):
1.master(10.48):否
2.openEuler-20.03-LTS-SP4(10.35):否
3.openEuler-22.03-LTS-SP4(10.39):否
4.openEuler-24.03-LTS-Next(10.42):否
5.openEuler-24.03-LTS-SP1(10.42):否
6.openEuler-24.03-LTS-SP3(10.42):否
7.openEuler-24.03-LTS-SP4(10.42):否
原因说明:
1.master(10.48):不受影响-漏洞代码不存在
2.openEuler-20.03-LTS-SP4(10.35):正常修复
3.openEuler-22.03-LTS-SP4(10.39):正常修复
4.openEuler-24.03-LTS-Next(10.42):正常修复
5.openEuler-24.03-LTS-SP1(10.42):正常修复
6.openEuler-24.03-LTS-SP3(10.42):正常修复
7.openEuler-24.03-LTS-SP4(10.42):正常修复