已关闭
CVE-2026-89160 #39
openeuler-ci-bot创建于  9月11日关闭于  9月16日
openeuler-ci-bot
openeuler-ci-bot成员
9月11日 创建

一、漏洞信息
漏洞编号: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://github.com/PCRE2Project/pcre2/releases/tag/pcre2-10.48
https://github.com/PCRE2Project/pcre2/security/advisories/GHSA-9qww-pwc4-77qq

漏洞分析指导链接:
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):正常修复

likedislike
openeuler-ci-botopeneuler-ci-bot成员
9月11日 添加了label:CVE/UNFIXED
openeuler-ci-bot
openeuler-ci-bot成员
9月11日 评论:

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

likedislike
openeuler-ci-botopeneuler-ci-bot成员
9月11日 将 openeuler-ci-bot、licihua、dillon_chen、overweight、zhujianwei001、xujing99、shenyangyang 设为负责人
openeuler-ci-botopeneuler-ci-bot成员
9月11日 添加了label:sig/Base-service
openeuler-ci-bot
openeuler-ci-bot成员
9月11日 评论:

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 .

likedislike
openeuler-ci-bot
openeuler-ci-bot成员
9月11日 评论:
参考网址 关联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-89160NoneNonehttps://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

likedislike
openeuler-ci-botopeneuler-ci-bot成员
9月11日 修改了issue 的描述
openeuler-ci-botopeneuler-ci-bot成员
9月11日 移除了负责人 licihua、dillon_chen、overweight、zhujianwei001、jiayi0118、xujing99、shenyangyang
fly_fzc
9月15日 评论:

/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

likedislike
xiaoo_robot
xiaoo_robot
9月15日 评论:

正在自动化处理任务,任务编号:TASK-gitcode__pcre2-39-20260915085239-0,指定分支:master,使用指定补丁(1个)

✅ 任务结束 (用时: 10分钟)

likedislike
xiaoo_robot
xiaoo_robot
9月15日 评论:

正在自动化处理任务,任务编号:TASK-gitcode__pcre2-39-20260915085240-1,指定分支:openEuler-20.03-LTS-SP4,使用指定补丁(1个)

✅ 任务结束 (用时: 71分钟)

likedislike
xiaoo_robot
xiaoo_robot
9月15日 评论:

正在自动化处理任务,任务编号:TASK-gitcode__pcre2-39-20260915085241-2,指定分支:openEuler-22.03-LTS-SP4,使用指定补丁(1个)

✅ 任务结束 (用时: 71分钟)

likedislike
xiaoo_robot
xiaoo_robot
9月15日 评论:

正在自动化处理任务,任务编号:TASK-gitcode__pcre2-39-20260915085241-3,指定分支:openEuler-24.03-LTS-Next,使用指定补丁(1个)

✅ 任务结束 (用时: 85分钟)

likedislike
xiaoo_robot
xiaoo_robot
9月15日 评论:

【任务 #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(本分支不受影响,无需修复)。

likedislike
xiaoo_robotxiaoo_robot
9月15日 关联了pull request:fix: CVE-2026-89160 - openEuler-20.03-LTS-SP4
xiaoo_robotxiaoo_robot
9月15日 关联了pull request:fix: CVE-2026-89160 - openEuler-22.03-LTS-SP4
xiaoo_robot
xiaoo_robot
9月15日 评论:

【任务 #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:已提交

likedislike
xiaoo_robot
xiaoo_robot
9月15日 评论:

【任务 #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

likedislike
xiaoo_robotxiaoo_robot
9月15日 关联了pull request:fix: CVE-2026-89160 - openEuler-24.03-LTS-Next
xiaoo_robot
xiaoo_robot
9月15日 评论:

【任务 #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

likedislike
fly_fzc
9月15日 评论:

/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

likedislike
xiaoo_robot
xiaoo_robot
9月15日 评论:

正在自动化处理任务,任务编号:TASK-gitcode__pcre2-39-20260915163157-0,指定分支:master,使用指定补丁(1个)

✅ 任务结束 (用时: 11分钟)

likedislike
xiaoo_robot
xiaoo_robot
9月15日 评论:

正在自动化处理任务,任务编号:TASK-gitcode__pcre2-39-20260915163158-1,指定分支:openEuler-20.03-LTS-SP4,使用指定补丁(1个)

✅ 任务结束 (用时: 210分钟)

likedislike
xiaoo_robot
xiaoo_robot
9月15日 评论:

正在自动化处理任务,任务编号:TASK-gitcode__pcre2-39-20260915163159-2,指定分支:openEuler-22.03-LTS-SP4,使用指定补丁(1个)

✅ 任务结束 (用时: 156分钟)

likedislike
xiaoo_robot
xiaoo_robot
9月15日 评论:

正在自动化处理任务,任务编号:TASK-gitcode__pcre2-39-20260915163159-3,指定分支:openEuler-24.03-LTS-Next,使用指定补丁(1个)

✅ 任务结束 (用时: 136分钟)

likedislike
xiaoo_robot
xiaoo_robot
9月15日 评论:

【任务 #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。

likedislike
xiaoo_robotxiaoo_robot
9月15日 关联了pull request:fix: CVE-2026-89160 - openEuler-24.03-LTS-Next
xiaoo_robot
xiaoo_robot
9月15日 评论:

【任务 #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(-)。
  • 前置补丁:无。

4. PR 提交

likedislike
xiaoo_robotxiaoo_robot
9月15日 关联了pull request:fix: CVE-2026-89160 - openEuler-22.03-LTS-SP4
xiaoo_robot
xiaoo_robot
9月15日 评论:

任务已识别:根据事实清单生成 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)

likedislike
fly_fzc
9月15日 评论:
likedislike
xiaoo_robot
xiaoo_robot
9月15日 评论:

正在自动化处理任务,任务编号:TASK-gitcode__pcre2-39-20260915193107,指定分支:openEuler-24.03-LTS-Next,使用指定补丁(1个)

✅ 任务结束 (用时: 56分钟)

likedislike
xiaoo_robotxiaoo_robot
9月15日 关联了pull request:fix: CVE-2026-89160 - openEuler-20.03-LTS-SP4
xiaoo_robot
xiaoo_robot
9月15日 评论:

【任务 #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

likedislike
xiaoo_robotxiaoo_robot
9月15日 关联了pull request:fix: CVE-2026-89160 - openEuler-24.03-LTS-Next
xiaoo_robot
xiaoo_robot
9月15日 评论:

【任务 #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

likedislike
openeuler-ci-botopeneuler-ci-bot成员
9月16日 关联了pull request:[sync] PR-180: fix: CVE-2026-89160 - openEuler-24.03-LTS-Next
openeuler-ci-botopeneuler-ci-bot成员
9月16日 关联了pull request:[sync] PR-180: fix: CVE-2026-89160 - openEuler-24.03-LTS-Next
openeuler-ci-botopeneuler-ci-bot成员
9月16日 关联了pull request:[sync] PR-180: fix: CVE-2026-89160 - openEuler-24.03-LTS-Next
openeuler-ci-botopeneuler-ci-bot成员
9月16日 关联了pull request:[sync] PR-180: fix: CVE-2026-89160 - openEuler-24.03-LTS-Next
fly_fzc
9月16日 评论:

影响性分析说明:
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):正常修复

likedislike
openeuler-ci-botopeneuler-ci-bot成员
9月16日 修改了issue 的描述
openeuler-ci-bot
openeuler-ci-bot成员
9月16日 评论:

@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:正常修复

请确认分析内容的准确性, 确认无误后, 您可以进行后续步骤, 否则您可以继续分析.

likedislike
openeuler-ci-bot
openeuler-ci-bot成员
9月16日 评论:

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

likedislike
openeuler-ci-botopeneuler-ci-bot成员
9月16日 issue状态由 待办的 改变为 已完成
openeuler-ci-botopeneuler-ci-bot成员
9月16日 关闭了 issue
openeuler-ci-bot
openeuler-ci-bot成员
9月16日 评论:

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

likedislike
openeuler-ci-botopeneuler-ci-bot成员
9月16日 删除了label:CVE/UNFIXED
openeuler-ci-botopeneuler-ci-bot成员
9月16日 添加了label:CVE/FIXED