已开启
file: NUL terminate CDF directory name passed to cdf_app_to_mime() #91
file: NUL terminate CDF directory name passed to cdf_app_to_mime() #91
已开启
liu-haodong142创建于 9 天前
liu-haodong142
9 天前

当前PR是否有AI参与:

[] 否
[x] 是
__1. Agent平台信息: opencode 1.19.0
__2. 模型信息: zai-org/GLM-5.2-FP8
__3. Prompt摘要: 让 AI 在上游版本区间内查找 openEuler file 包尚未回移的安全修复,生成规范 backport 补丁并做 ASan 复现与构建验证

参考:openEuler社区《生成式AI工具使用与开源贡献政策》

PR功能描述 / 为什么需要这个合入:

回移上游 commit 029e5bae(PR/812):cdf_check_summary_info() 将 32 字符的 CDF 目录项名称拷贝到 32 字节栈缓冲区 name[] 后未写 NUL 终止符,随即将它传给 cdf_app_to_mime(),后者用 strcasestr() 做子串匹配,造成栈越界读。补丁按 5.45 源码重算 hunk,将缓冲区扩大 1 字节并显式写入 NUL 终止符。

该PR关联的issue

fixes #29

希望检视人员了解:

24.03 各分支均为 file 5.45,现有补丁均未触及 src/readcdf.c,因此均受影响。按同大版本单点提交约定,本 PR 以 openEuler-24.03-LTS-SP3 为代表分支,合入后通过 /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。已人工核对补丁与上游修复语义一致,并使用 ASan 构建复现修复前栈越界、修复后无报错。

改动类型

测试信息

  • file 5.45 + SP3 现有 Patch1/Patch2 + 本补丁:补丁干净应用,src/readcdf.c blob 由 30c3d246 变为 19a44146。
  • 基线:32 字符无 NUL 目录名的 PoC CDF 触发 ASan stack-buffer-overflow(READ,strcasestr 调用链进入 cdf_app_to_mime 与 cdf_check_summary_info)。
  • 修复后:同一 PoC 无 ASan 报错,输出 application/vnd.ms-office;/bin/ls、/etc/passwd、tar.gz、magic.mgc 等常规文件识别结果与修复前一致。
  • 其余 24.03 分支的 readcdf.c 与 SP3 相同,补丁可干净应用。

检查清单

likedislike
合并受阻
liu-haodong142liu-haodong142
9 天前 创建了 pull request,commit de156cf0
liu-haodong142liu-haodong142
9 天前 关联了issue:file: CDF 目录名未 NUL 终止导致栈越界读(待 backport 上游 029e5bae)
openeuler-ci-botopeneuler-ci-bot成员
9 天前 将VICTORY2017,mszjaas,swf504,liuzhiqiang26,louhongxiang,kouwq,dragon1147e3设为审查人
openeuler-ci-botopeneuler-ci-bot成员
9 天前 添加了label:sig/Storage
liu-haodong142
liu-haodong142
9 天前 评论:

/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

likedislike
此处折叠了55条消息 查看更多
openeuler-bot
openeuler-bot成员
8 天前 评论:

x86_64架构构建及构建后检查:multiarch/src-openeuler/x86-64/file/51

likedislike
openeuler-bot
openeuler-bot成员
8 天前 评论:

aarch64架构构建及构建后检查:multiarch/src-openeuler/aarch64/file/51

likedislike
openeuler-bot
openeuler-bot成员
8 天前 评论:
Check Name Build Result 详情 Build Details
check_binary_file ✅SUCCESS #51
check_lfsconfig ☑EXCLUDE
check_package_yaml_file ✅SUCCESS
check_repo_in_maintain ✅SUCCESS
check_consistency ✅SUCCESS
check_spec_file ✅SUCCESS
x86_64 check_build ✅SUCCESS #51
check_install ✅SUCCESS
check_license ✅SUCCESS
aarch64 check_build ✅SUCCESS #51
check_install ✅SUCCESS
check_license ✅SUCCESS
likedislike
openeuler-bot
openeuler-bot成员
8 天前 评论:

如下为接口变更检查结果,目标分支为openEuler-24.03-LTS-SP3,请PR提交者check差异信息

Arch Name Check Items Rpm Name Check Result Build Details
compare_package(x86_64) add_rpms ✅SUCCESS #51
delete_rpms ✅SUCCESS
rpm_abi ✅SUCCESS
rpm_cmd ✅SUCCESS
rpm_files ✅SUCCESS
rpm_header ✅SUCCESS
rpm_lib ✅SUCCESS
rpm_provides ✅SUCCESS
rpm_requires ✅SUCCESS
rpm_symbol ✅SUCCESS
compare_package(aarch64) add_rpms ✅SUCCESS #51
delete_rpms ✅SUCCESS
rpm_abi ✅SUCCESS
rpm_cmd ✅SUCCESS
rpm_files ✅SUCCESS
rpm_header ✅SUCCESS
rpm_lib ✅SUCCESS
rpm_provides ✅SUCCESS
rpm_requires ✅SUCCESS
rpm_symbol ✅SUCCESS
likedislike
openeuler-bot
openeuler-bot成员
8 天前 评论:
likedislike