Welcome To openEuler Community
Hey @hello-leichen , 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: @houmingyong, @jiayi0118, @qq_28851361 .


以下的要求不是强制性的, 未按模板评论时对issue无任何影响
issue处理注意事项:
1. 当前issue受影响的分支提交pr时, 须在pr描述中填写当前issue编号进行关联, 否则无法关闭当前issue;
2. 模板内容需要填写完整, 无论是受影响或者不受影响都需要填写完整内容,未引入的分支不需要填写, 否则无法关闭当前issue;
3. 以下为模板中需要填写完整的内容, 请复制到评论区回复, 注: 内容的标题名称(影响性分析说明, 缺陷严重等级, 受影响版本排查(受影响/不受影响), 修复是否涉及abi变化(是/否))不能省略,省略后defect-manager将无法正常解析填写内容.
评论区可能使用到的指令说明:
| 指令 | 指令说明 | 使用权限 |
|---|---|---|
| /check-issue | 触发defect-manager校验 | 不限 |
| /reason xxx | /reason +挂起或取消条件 | 不限 |
影响性分析说明:
缺陷严重等级:(Critical/High/Moderate/Low)
缺陷根因说明:
受影响版本排查(受影响/不受影响):
- openEuler-20.03-LTS-SP4:
- openEuler-22.03-LTS-SP4:
- openEuler-24.03-LTS-SP1:
- openEuler-24.03-LTS-SP3:
- openEuler-24.03-LTS-SP4:
abi变化(是/否):
- openEuler-20.03-LTS-SP4:
- openEuler-22.03-LTS-SP4:
- openEuler-24.03-LTS-SP1:
- openEuler-24.03-LTS-SP3:
- openEuler-24.03-LTS-SP4:
缺陷issue处理具体操作请参考:
https://atomgit.com/openeuler/cve-manager/blob/master/cve-vulner-manager/doc/md/defect-manager-manual.md
pr关联issue具体操作请参考:
https://docs.atomgit.com/docs/help/home/org_project/pullrequests/pr-related-issue


已按分支提交 PR:
| 目标分支 | 版本/Release | PR |
|---|---|---|
| master | 1.9.17p2-7 | https://gitcode.com/src-openeuler/sudo/merge_requests/233 |
| openEuler-26.09 | 1.9.17p2-7 | https://gitcode.com/src-openeuler/sudo/merge_requests/234 |
| openEuler-24.03-LTS-SP3(24.03 代表 PR) | 1.9.15p5-10 | https://gitcode.com/src-openeuler/sudo/merge_requests/235 |
24.03 大版本其余分支已核实同样受影响,并在 #235 上执行 /sync openEuler-24.03-LTS openEuler-24.03-LTS-Next openEuler-24.03-LTS-SP1 openEuler-24.03-LTS-SP2 openEuler-24.03-LTS-SP4,由 openeuler-ci-bot 在当前 PR 合入后创建同步 PR。
验证结果:
- 三个分支完整补丁链 + 新补丁
patch -p1 -F0全部零 fuzz 应用; - 1.9.17p2(master 链)与 1.9.15p5(SP3 链)ASan 构建成功,
make check全量通过(check_editor 20/20;sudoers 174、testsudoers 62、visudo 20、cvtsudoers 82 等 0 errors); - 基线 check_editor 用例失败(
edit_argc: expected 5, got 6),打补丁后通过; - 三个 PR 已通过 openeuler-cla/yes、ai-compliance-successful,CI 通过且无冲突。


影响性分析说明: sudo 的 wordsplit() 在解析编辑器字符串时,对结尾引号前的多个反斜杠处理不当,可能越界读取;编辑器串来自用户可控的 SUDO_EDITOR/VISUAL/EDITOR,由 setuid root 的 sudo 解析。
缺陷严重等级: Moderate
缺陷根因说明: wordsplit() 在连续反斜杠 + 结尾引号的边界条件下未正确限制读取位置,导致 out-of-bounds read(CWE-125)。
受影响版本排查(受影响/不受影响):
- openEuler-20.03-LTS-SP4: 受影响(本次未提交 PR,后续单独回移)
- openEuler-22.03-LTS-SP4: 受影响(本次未提交 PR,后续单独回移)
- openEuler-24.03-LTS: 受影响(由 SP3 PR /sync 同步)
- openEuler-24.03-LTS-Next: 受影响(由 SP3 PR /sync 同步)
- openEuler-24.03-LTS-SP1: 受影响(由 SP3 PR /sync 同步)
- openEuler-24.03-LTS-SP2: 受影响(由 SP3 PR /sync 同步)
- openEuler-24.03-LTS-SP3: 受影响(PR #235)
- openEuler-24.03-LTS-SP4: 受影响(由 SP3 PR /sync 同步)
- openEuler-26.09: 受影响(PR #234)
- master: 受影响(PR #233)
abi变化(是/否):
- openEuler-20.03-LTS-SP4: 否
- openEuler-22.03-LTS-SP4: 否
- openEuler-24.03-LTS: 否
- openEuler-24.03-LTS-Next: 否
- openEuler-24.03-LTS-SP1: 否
- openEuler-24.03-LTS-SP2: 否
- openEuler-24.03-LTS-SP3: 否
- openEuler-24.03-LTS-SP4: 否
- openEuler-26.09: 否
- master: 否


@houmingyong 经过defect-manager解析,已分析的内容如下表所示:
| 状态 | 需分析 | 内容 |
|---|---|---|
| 已分析 | 1.影响性分析说明 | sudo的wordsplit()在解析编辑器字符串时,对结尾引号前的多个反斜杠处理不当,可能越界读取;编辑器串来自用户可控的SUDO_EDITOR/VISUAL/EDITOR,由setuidroot的sudo解析。 |
| 已分析 | 2.缺陷严重等级 | Moderate |
| 已分析 | 3.缺陷根因定位 | wordsplit()在连续反斜杠+结尾引号的边界条件下未正确限制读取位置,导致out-of-boundsread(CWE-125)。 |
| 已分析 | 4.受影响版本排查 | openEuler-20.03-LTS-SP4:受影响,openEuler-22.03-LTS-SP4:受影响,openEuler-24.03-LTS:受影响,openEuler-24.03-LTS-Next:受影响,openEuler-24.03-LTS-SP1:受影响,openEuler-24.03-LTS-SP2:受影响,openEuler-24.03-LTS-SP3:受影响,openEuler-24.03-LTS-SP4:受影响,openEuler-26.09:受影响 |
| 已分析 | 5.abi变化 | openEuler-20.03-LTS-SP4:否,openEuler-22.03-LTS-SP4:否,openEuler-24.03-LTS:否,openEuler-24.03-LTS-Next:否,openEuler-24.03-LTS-SP1:否,openEuler-24.03-LTS-SP2:否,openEuler-24.03-LTS-SP3:否,openEuler-24.03-LTS-SP4:否,openEuler-26.09:否 |
请确认分析内容的准确性,确认无误后,您可以进行后续步骤,否则您可以继续分析


@houmingyong
关闭issue前,需要将受影响的分支在合并pr时关联上当前issue编号: #92
受影响分支: openEuler-20.03-LTS-SP4/openEuler-22.03-LTS-SP4/openEuler-24.03-LTS-SP1/openEuler-24.03-LTS-SP4
具体操作参考: https://docs.atomgit.com/docs/help/home/org_project/pullrequests/pr-related-issue


@houmingyong
关闭issue前,需要将受影响的分支在合并pr时关联上当前issue编号: #92
受影响分支: openEuler-20.03-LTS-SP4/openEuler-22.03-LTS-SP4
具体操作参考: https://docs.atomgit.com/docs/help/home/org_project/pullrequests/pr-related-issue


openEuler-20.03-LTS-SP4: 受影响(本次未提交 PR,后续单独回移)
openEuler-22.03-LTS-SP4: 受影响(本次未提交 PR,后续单独回移)
@hello-leichen 你好 这两个分支 可有修复计划?


@houmingyong
关闭issue前,需要将受影响的分支在合并pr时关联上当前issue编号: #92
受影响分支: openEuler-20.03-LTS-SP4/openEuler-22.03-LTS-SP4
具体操作参考: https://docs.atomgit.com/docs/help/home/org_project/pullrequests/pr-related-issue


受影响版本排查(受影响/不受影响):
openEuler-20.03-LTS-SP4: 不受影响
openEuler-22.03-LTS-SP4: 不受影响(存在新增用例失败)


/check-issue


@houmingyong
关闭issue前,需要将受影响的分支在合并pr时关联上当前issue编号: #92
受影响分支: openEuler-20.03-LTS-SP4/openEuler-22.03-LTS-SP4
具体操作参考: https://docs.atomgit.com/docs/help/home/org_project/pullrequests/pr-related-issue


影响性分析说明: sudo 的 wordsplit() 在解析编辑器字符串时,对结尾引号前的多个反斜杠处理不当,可能越界读取;编辑器串来自用户可控的 SUDO_EDITOR/VISUAL/EDITOR,由 setuid root 的 sudo 解析。
缺陷严重等级: Moderate
缺陷根因说明: wordsplit() 在连续反斜杠 + 结尾引号的边界条件下未正确限制读取位置,导致 out-of-bounds read(CWE-125)。
受影响版本排查(受影响/不受影响):
openEuler-20.03-LTS-SP4: 不受影响
openEuler-22.03-LTS-SP4: 不受影响(存在新增用例失败)
openEuler-24.03-LTS: 受影响(由 SP3 PR /sync 同步)
openEuler-24.03-LTS-Next: 受影响(由 SP3 PR /sync 同步)
openEuler-24.03-LTS-SP1: 受影响(由 SP3 PR /sync 同步)
openEuler-24.03-LTS-SP2: 受影响(由 SP3 PR /sync 同步)
openEuler-24.03-LTS-SP3: 受影响(PR #235)
openEuler-24.03-LTS-SP4: 受影响(由 SP3 PR /sync 同步)
openEuler-26.09: 受影响(PR #234)
master: 受影响(PR #233)
abi变化(是/否):
openEuler-20.03-LTS-SP4: 否
openEuler-22.03-LTS-SP4: 否
openEuler-24.03-LTS: 否
openEuler-24.03-LTS-Next: 否
openEuler-24.03-LTS-SP1: 否
openEuler-24.03-LTS-SP2: 否
openEuler-24.03-LTS-SP3: 否
openEuler-24.03-LTS-SP4: 否
openEuler-26.09: 否
master: 否


@houmingyong 经过defect-manager解析,已分析的内容如下表所示:
| 状态 | 需分析 | 内容 |
|---|---|---|
| 已分析 | 1.影响性分析说明 | sudo的wordsplit()在解析编辑器字符串时,对结尾引号前的多个反斜杠处理不当,可能越界读取;编辑器串来自用户可控的SUDO_EDITOR/VISUAL/EDITOR,由setuidroot的sudo解析。 |
| 已分析 | 2.缺陷严重等级 | Moderate |
| 已分析 | 3.缺陷根因定位 | wordsplit()在连续反斜杠+结尾引号的边界条件下未正确限制读取位置,导致out-of-boundsread(CWE-125)。 |
| 已分析 | 4.受影响版本排查 | openEuler-20.03-LTS-SP4:不受影响,openEuler-22.03-LTS-SP4:不受影响,openEuler-24.03-LTS:受影响,openEuler-24.03-LTS-Next:受影响,openEuler-24.03-LTS-SP1:受影响,openEuler-24.03-LTS-SP2:受影响,openEuler-24.03-LTS-SP3:受影响,openEuler-24.03-LTS-SP4:受影响,openEuler-26.09:受影响 |
| 已分析 | 5.abi变化 | openEuler-20.03-LTS-SP4:否,openEuler-22.03-LTS-SP4:否,openEuler-24.03-LTS:否,openEuler-24.03-LTS-Next:否,openEuler-24.03-LTS-SP1:否,openEuler-24.03-LTS-SP2:否,openEuler-24.03-LTS-SP3:否,openEuler-24.03-LTS-SP4:否,openEuler-26.09:否 |
请确认分析内容的准确性,确认无误后,您可以进行后续步骤,否则您可以继续分析


问题描述
sudo的编辑器命令行解析函数wordsplit()(plugins/sudoers/editor.c)在处理「以引号包围、且结束引号前有偶数个反斜杠」的字符串时,会把结束引号误判为被转义的引号,导致:SUDO_EDITOR='sh -c "vi $1\\"'被拆成 6 个参数(期望 5 个);编辑器字符串来自用户可控的
SUDO_EDITOR/VISUAL/EDITOR环境变量(openEuler 构建启用了--with-env-editor),由 setuid root 的 sudo 在运行sudoedit之前解析,属于特权进程中的内存安全问题。上游已通过 commit
b205d6a6b337f20c04d78634a973e143af751a86("wordsplit: Fix handling of multiple backslashes before end quote")修复,由 Marius Momeu 报告。该提交及上游公告未标注 CVE 编号。影响范围
受影响分支(打包版本均早于该修复):
openEuler-24.03-LTS-SP3(sudo 1.9.15p5)openEuler-26.09(sudo 1.9.17p2)master(sudo 1.9.17p2)同一 24.03 大版本的
openEuler-24.03-LTS/-SP1/-SP2/-SP4/-Next在应用各自现有补丁链后,plugins/sudoers/editor.c的 blob 与脆弱版本一致(0c4221bc4309c58890b8bd72e9dc6aaa500ae17e),同样受影响;将按社区流程在代表 PR 上使用/sync同步,不逐个分支重复提 PR。复现
用上游新增的回归用例(
plugins/sudoers/regress/editor/check_editor.c):基线(不含本修复)结果:
check_editor: test 7: edit_argc: expected 5, got 6(19 tests, 1 error)。打补丁后:
check_editor: 20 tests run, 0 errors, 100% success rate。修复
backport-wordsplit-fix-multiple-backslashes-before-end-quote.patch(源码改动 + 上游回归用例,未带入版权年份等元数据改动)Patch6008(1.9.17p2 的 26.09/master)/Patch6007(1.9.15p5 的 SP3),Release+1,%changelog署名dev03108@linx-info.com验证
patch -p1 -F0逐条应用,全部干净通过(零 fuzz);make check全部通过:1.9.17p2 的 sudoers 174、testsudoers 62、visudo 20、cvtsudoers 82、check_editor 20 等均为 0 errors;openEuler 侧进展
已推送分支并提交 PR(见本 issue 评论 / 关联 PR)。
是否 CVE
否。上游未为该提交分配 CVE 编号,本 issue 按普通缺陷(安全加固)跟踪,未使用 CVE 标签。
二、缺陷分析结构反馈
影响性分析说明:
缺陷严重等级:(Critical/High/Moderate/Low)
缺陷根因说明:
受影响版本排查(受影响/不受影响):
openEuler-20.03-LTS-SP4
openEuler-22.03-LTS-SP4
openEuler-24.03-LTS-SP1
openEuler-24.03-LTS-SP3
openEuler-24.03-LTS-SP4
修复是否涉及abi变化(是/否):
openEuler-20.03-LTS-SP4
openEuler-22.03-LTS-SP4
openEuler-24.03-LTS-SP1
openEuler-24.03-LTS-SP3
openEuler-24.03-LTS-SP4