Welcome To openEuler Community
Hey @u011145029 , 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.
Contact Guide
If you have any questions, please contact the SIG: Networking ,
and any of the maintainers: @Apricity_HW, @MrRlu, @robert-xingwang, @sunsuwan ,
and any of the committers: @jiangheng12138, @zhongxuan2 .


以下的要求不是强制性的, 未按模板评论时对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-SP3:
- openEuler-22.03-LTS-SP4:
- openEuler-24.03-LTS:
- openEuler-24.03-LTS-SP1:
- openEuler-24.03-LTS-SP2:
abi变化(是/否):
- openEuler-20.03-LTS-SP4:
- openEuler-22.03-LTS-SP3:
- openEuler-22.03-LTS-SP4:
- openEuler-24.03-LTS:
- openEuler-24.03-LTS-SP1:
- openEuler-24.03-LTS-SP2:
缺陷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


影响性分析说明:
sftp命令chmod发送 lsetstat 越权请求 ,绕过 path_permition_check检查
缺陷严重等级:(Critical/High/Moderate/Low)
Critical
缺陷根因说明:
process_extended_lsetstat遗漏path_permition_check检查
受影响版本排查(受影响/不受影响):
openEuler-20.03-LTS-SP4 受影响
openEuler-22.03-LTS-SP3 受影响
openEuler-22.03-LTS-SP4 受影响
openEuler-24.03-LTS 受影响
openEuler-24.03-LTS-SP1 受影响
openEuler-24.03-LTS-SP2 受影响
修复是否涉及abi变化(是/否):
openEuler-20.03-LTS-SP4 否
openEuler-22.03-LTS-SP3 否
openEuler-22.03-LTS-SP4 否
openEuler-24.03-LTS 否
openEuler-24.03-LTS-SP1 否
openEuler-24.03-LTS-SP2 否


@zhongxuan2 请对受影响版本排查/abi变化进行分析


影响性分析说明:
sftp命令chmod发送 lsetstat 越权请求 ,绕过 path_permition_check检查
缺陷严重等级:(Critical/High/Moderate/Low)
Critical
缺陷根因说明:
process_extended_lsetstat遗漏path_permition_check检查
受影响版本排查(受影响/不受影响):
openEuler-20.03-LTS-SP4:受影响
openEuler-22.03-LTS-SP3:受影响
openEuler-22.03-LTS-SP4:受影响
openEuler-24.03-LTS:受影响
openEuler-24.03-LTS-SP1:受影响
openEuler-24.03-LTS-SP2:受影响
abi变化(是/否):
openEuler-20.03-LTS-SP4:否
openEuler-22.03-LTS-SP3:否
openEuler-22.03-LTS-SP4:否
openEuler-24.03-LTS:否
openEuler-24.03-LTS-SP1:否
openEuler-24.03-LTS-SP2:否


@jiangheng12138 经过defect-manager解析,已分析的内容如下表所示:
| 状态 | 需分析 | 内容 |
|---|---|---|
| 已分析 | 1.影响性分析说明 | sftp命令chmod发送lsetstat越权请求,绕过path_permition_check检查 |
| 已分析 | 2.缺陷严重等级 | Critical |
| 已分析 | 3.缺陷根因定位 | process_extended_lsetstat遗漏path_permition_check检查 |
| 已分析 | 4.受影响版本排查 | openEuler-20.03-LTS-SP4:受影响,openEuler-22.03-LTS-SP3:受影响,openEuler-22.03-LTS-SP4:受影响,openEuler-24.03-LTS:受影响,openEuler-24.03-LTS-SP1:受影响,openEuler-24.03-LTS-SP2:受影响 |
| 已分析 | 5.abi变化 | openEuler-20.03-LTS-SP4:否,openEuler-22.03-LTS-SP3:否,openEuler-22.03-LTS-SP4:否,openEuler-24.03-LTS:否,openEuler-24.03-LTS-SP1:否,openEuler-24.03-LTS-SP2:否 |
请确认分析内容的准确性,确认无误后,您可以进行后续步骤,否则您可以继续分析


【缺陷描述】:请补充详细的缺陷问题现象描述
OpenSSH sftp-server 组件存在路径授权绕过漏洞。该漏洞源于 process_extended_lsetstat() 函数在处理 lsetstat@openssh.com 扩展请求时,缺少 path_permition_check() 路径授权检查——而所有其他写操作(setstat、fsetstat、remove、mkdir、rmdir、rename、symlink、hardlink、fsync、posix-rename 等共 24 处调用点)均在执行前调用了该检查。攻击者可利用该漏洞绕过 SFTP permit 目录限制,对任意路径执行 fchmodat()(修改文件权限)、fchownat()(修改文件属主)和 utimensat()(修改文件时间戳),造成系统文件权限篡改、SUID 提权、后门账户注入等危害。
一、缺陷信息
SSH 文件传输服务组件存在授权检查缺失问题。用户可通过特定文件传输扩展请求绕过路径访问限制,对受限范围外的文件执行属性修改操作。成功利用该问题可能导致系统文件权限被非授权更改。
【缺陷所属的os版本】
openEuler-20.03-LTS ~ openEuler-24.03-LTS
【内核版本】
【缺陷所属软件及版本号】
openssh-8.2p1-1 ~ 至今
【环境信息】
硬件信息
软件信息
网络信息
【问题复现步骤】
配置 SFTP 权限控制 (限制 root 用户仅在 permit 目录内操作):
echo "/root" > /usr/local/etc/sftppermit.config
验证权限限制生效 (permit目录外,非lsetstat 的操作被拒绝):登录后执行:chmod 4755 /usr/bin/find
sftp root@
发送 lsetstat 越权请求 (绕过 path_permition_check):登录后执行:chmod -h 4755 /usr/bin/find
sftp root@
【实际结果】
chmod 4755 /usr/bin/find 无法给/usr/bin/find增加suid权限;
chmod -h 4755 /usr/bin/find 可以给/usr/bin/find增加suid权限。
【期望结果】
chmod -h 4755 /usr/bin/find 也无法给/usr/bin/find增加suid权限。
【其他相关附件信息】
【缺陷详情及分析指导参考链接】
欧拉为 OpenSSH 8.0之后 的 sftp-server 打入补丁 feature-openssh-7.4-hima-sftpserver-oom-and-fix.patch,该补丁通过 path_permition_check() 函数实现 SFTP 路径访问控制:读取配置文件 /usr/local/etc/sftppermit.config等获取 permit/deny 路径列表,对每个 SFTP 操作的目标路径调用 realpath() 解析后做前缀匹配,若路径不在 permit 列表内或在 deny 列表内则拒绝操作。
补丁对以下写操作均插入了 path_permition_check() 检查(共 24 处调用点):process_setstat、process_fsetstat、process_remove、process_mkdir、process_rmdir、process_rename、process_posix_rename、process_symlink、process_extended_hardlink、process_extended_fsync、process_extended_fstatvfs、process_readlink、process_stat、process_lstat、process_open、process_opendir、process_realpath 等。
但 process_extended_lsetstat()(处理 lsetstat@openssh.com 扩展请求)遗漏了该检查。该函数直接对用户传入的 name 参数执行 fchmodat()、utimensat()、fchownat(),无任何路径授权校验。
lsetstat 是 OpenSSH 8.0 引入的 SFTP 扩展(2019-01-17 由 Damien Miller 提交),其语义类似 setstat 但通过 *at() 系列系统调用配合 AT_SYMLINK_NOFOLLOW 标志操作符号链接本身。补丁编写时(基于 OpenSSH 7.4)该扩展尚不存在,补丁移植到 8.0 之后的版本时未覆盖此新增函数,导致检查缺失。对比:process_extended_fsync(同属 extended 处理函数)正确插入了检查,而 process_extended_lsetstat 结构相似却遗漏,覆盖不全。
二、缺陷分析结构反馈
影响性分析说明:
sftp命令chmod发送lsetstat越权请求,绕过path_permition_check检查
缺陷严重等级:(Critical/High/Moderate/Low)
Critical
缺陷根因说明:
process_extended_lsetstat遗漏path_permition_check检查
受影响版本排查(受影响/不受影响):
openEuler-20.03-LTS-SP4:受影响
openEuler-22.03-LTS-SP3:受影响
openEuler-22.03-LTS-SP4:受影响
openEuler-24.03-LTS:受影响
openEuler-24.03-LTS-SP1:受影响
openEuler-24.03-LTS-SP2:受影响
修复是否涉及abi变化(是/否):
openEuler-20.03-LTS-SP4:否
openEuler-22.03-LTS-SP3:否
openEuler-22.03-LTS-SP4:否
openEuler-24.03-LTS:否
openEuler-24.03-LTS-SP1:否
openEuler-24.03-LTS-SP2:否