已开启
audit: auparse 解释 AX.25/ATM sockaddr 时堆越界读取(待 backport 上游 9b6c1747) #69
Lei-Chen创建于  4 天前
Lei-Chen
4 天前 创建

问题描述

auparse 在解释 SOCKADDR 字段时,对 AF_AX25 和 AF_ATMPVC 直接强制转换为固定长度的 sockaddr_ax25 / sockaddr_atmpvc 结构体并读取字段,未校验解码后的字段长度。仅包含 family(2 字节)的 saddr 记录会使 print_sockaddr() 越界读取 au_unescape() 分配的堆缓冲区。

影响范围

  • audit 3.1.2(openEuler 24.03 LTS SP3)
  • audit 4.1.2(openEuler 26.09 / master)
  • 触发条件:auparse 解释包含 AX.25 或 ATM PVC family-only saddr 的审计记录,例如 ausearch -i 或调用 auparse_do_interpretation(AUPARSE_TYPE_SOCKADDR, ...)

复现

构造仅含 sa_family_t(2 字节)的 AX.25 / ATM PVC 值,交给 auparse 解释。基线(audit 4.1.2,ASan 构建)输出:

ERROR: AddressSanitizer: heap-buffer-overflow
READ of size 1 at ... in print_sockaddr auparse/interpret.c:1370
    #1 auparse_do_interpretation auparse/interpret.c:3477
0x... is located 3 bytes to the right of 5-byte region

ATM 分支同样在 print_sockaddr() 读取 sap_addr.itf 时越界(READ of size 2)。audit 3.1.2 基线同样可复现。

修复

上游提交 9b6c174758523b81138ee7138f666b7e5c2f7b43(auparse: validate AX.25 and ATM sockaddr lengths)在解引用前检查 sizeof(struct sockaddr_ax25) / sizeof(struct sockaddr_atmpvc),长度不足时返回 { saddr_fam=... sockaddr len too short }。

上游链接:https://github.com/linux-audit/audit-userspace/commit/9b6c174758523b81138ee7138f666b7e5c2f7b43

验证结果:3.1.2 与 4.1.2 的完整补丁链 + 新补丁均可 -F0 应用;修复前 ASan 报 heap-buffer-overflow,修复后正常返回 short 提示,无越界。

openEuler 侧进展

已按 backport 规范生成补丁并在以下分支验证、推送:

  • openEuler-24.03-LTS-SP3
  • openEuler-26.09
  • master

PR 链接将在创建后补充。上游未为此分配 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

likedislike
LLei-Chen
4 天前 issue类型由 任务 改变为 缺陷
openeuler-ci-botopeneuler-ci-bot成员
4 天前 将 mailofzxf 设为负责人
openeuler-ci-botopeneuler-ci-bot成员
4 天前 将 robertosassu、zhujianwei001、hello-leichen 设为负责人
openeuler-ci-botopeneuler-ci-bot成员
4 天前 修改了issue 的描述
openeuler-ci-botopeneuler-ci-bot成员
4 天前 移除了负责人 robertosassu、zhujianwei001、hello-leichen
openeuler-ci-botopeneuler-ci-bot成员
4 天前 添加了label:sig/sig-security-facility
openeuler-ci-bot
openeuler-ci-bot成员
4 天前 评论:

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: sig-security-facility ,
and any of the maintainers: @mailofzxf, @robertosassu, @zhujianwei001 ,

likedislike
openeuler-ci-bot
openeuler-ci-bot成员
4 天前 评论:

以下的要求不是强制性的, 未按模板评论时对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)

缺陷根因说明:

受影响版本排查(受影响/不受影响):

  1. openEuler-20.03-LTS-SP4:
  2. openEuler-22.03-LTS-SP4:
  3. openEuler-24.03-LTS-SP1:
  4. openEuler-24.03-LTS-SP3:
  5. openEuler-24.03-LTS-SP4:

abi变化(是/否):

  1. openEuler-20.03-LTS-SP4:
  2. openEuler-22.03-LTS-SP4:
  3. openEuler-24.03-LTS-SP1:
  4. openEuler-24.03-LTS-SP3:
  5. 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

likedislike
openeuler-ci-botopeneuler-ci-bot成员
4 天前 添加了label:DEFECT/UNFIXED
LLei-Chen
4 天前 关联了pull request:audit: auparse: validate AX.25/ATM sockaddr lengths (backport 9b6c174758)
LLei-Chen
4 天前 关联了pull request:audit: auparse: validate AX.25/ATM sockaddr lengths (backport 9b6c174758)
LLei-Chen
4 天前 关联了pull request:audit: auparse: validate AX.25/ATM sockaddr lengths (backport 9b6c174758)
Lei-Chen
4 天前 评论:

已提交 PR:

其余 24.03 分支(LTS、LTS-Next、SP1、SP2、SP4)已确认受影响,已通过 SP3 PR 的 /sync 排队同步。

影响性分析说明: auparse 解释 AX.25/ATM family-only saddr 时,print_sockaddr() 未校验解码后的字段长度,越界读取 au_unescape() 分配的堆缓冲区;构造审计记录可触发 heap-buffer-overflow(ASan 已复现)。

缺陷严重等级: Moderate

缺陷根因说明: print_sockaddr() 对 AF_AX25 / AF_ATMPVC 直接强制转换为固定长度 sockaddr_ax25 / sockaddr_atmpvc 并读取字段,缺少 sizeof() 长度校验。

受影响版本排查(受影响/不受影响):

  1. openEuler-24.03-LTS: 受影响
  2. openEuler-24.03-LTS-Next: 受影响
  3. openEuler-24.03-LTS-SP1: 受影响
  4. openEuler-24.03-LTS-SP2: 受影响
  5. openEuler-24.03-LTS-SP3: 受影响
  6. openEuler-24.03-LTS-SP4: 受影响
  7. openEuler-26.09: 受影响
  8. master: 受影响

abi变化(是/否):

  1. openEuler-24.03-LTS: 否
  2. openEuler-24.03-LTS-Next: 否
  3. openEuler-24.03-LTS-SP1: 否
  4. openEuler-24.03-LTS-SP2: 否
  5. openEuler-24.03-LTS-SP3: 否
  6. openEuler-24.03-LTS-SP4: 否
  7. openEuler-26.09: 否
  8. master: 否
likedislike
openeuler-ci-bot
openeuler-ci-bot成员
4 天前 评论:

@hello-leichen 请确认分支: openEuler-20.03-LTS-SP4,openEuler-22.03-LTS-SP4.
请确认受影响分支是否填写完整,否则将无法关闭当前issue.

likedislike
Lei-Chen
4 天前 评论:

/check-issue

likedislike
Lei-Chen
4 天前 评论:

影响性分析说明: auparse 解释 AX.25/ATM family-only saddr 时,print_sockaddr() 未校验解码后的字段长度,越界读取 au_unescape() 分配的堆缓冲区;构造审计记录可触发 heap-buffer-overflow(ASan 已复现)。

缺陷严重等级: Moderate

缺陷根因说明: print_sockaddr() 对 AF_AX25 / AF_ATMPVC 直接强制转换为固定长度 sockaddr_ax25 / sockaddr_atmpvc 并读取字段,缺少 sizeof() 长度校验。

受影响版本排查(受影响/不受影响):

  1. openEuler-20.03-LTS-SP4: 受影响(本次未提交 PR,后续单独回移)
  2. openEuler-22.03-LTS-SP4: 受影响(本次未提交 PR,后续单独回移)
  3. openEuler-24.03-LTS: 受影响(由 SP3 PR /sync 同步)
  4. openEuler-24.03-LTS-Next: 受影响(由 SP3 PR /sync 同步)
  5. openEuler-24.03-LTS-SP1: 受影响(由 SP3 PR /sync 同步)
  6. openEuler-24.03-LTS-SP2: 受影响(由 SP3 PR /sync 同步)
  7. openEuler-24.03-LTS-SP3: 受影响(PR #227)
  8. openEuler-24.03-LTS-SP4: 受影响(由 SP3 PR /sync 同步)
  9. openEuler-26.09: 受影响(PR #228)
  10. master: 受影响(PR #229)

abi变化(是/否):

  1. openEuler-20.03-LTS-SP4: 否
  2. openEuler-22.03-LTS-SP4: 否
  3. openEuler-24.03-LTS: 否
  4. openEuler-24.03-LTS-Next: 否
  5. openEuler-24.03-LTS-SP1: 否
  6. openEuler-24.03-LTS-SP2: 否
  7. openEuler-24.03-LTS-SP3: 否
  8. openEuler-24.03-LTS-SP4: 否
  9. openEuler-26.09: 否
  10. master: 否
likedislike
Lei-Chen
4 天前 评论:

/check-issue

likedislike
openeuler-ci-bot
openeuler-ci-bot成员
4 天前 评论:

@mailofzxf 经过defect-manager解析,已分析的内容如下表所示:

状态 需分析 内容
已分析 1.影响性分析说明 auparse解释AX.25/ATMfamily-onlysaddr时,print_sockaddr()未校验解码后的字段长度,越界读取au_unescape()分配的堆缓冲区;构造审计记录可触发heap-buffer-overflow(ASan已复现)。
已分析 2.缺陷严重等级 Moderate
已分析 3.缺陷根因定位 print_sockaddr()对AF_AX25/AF_ATMPVC直接强制转换为固定长度sockaddr_ax25/sockaddr_atmpvc并读取字段,缺少sizeof()长度校验。
已分析 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:否

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

likedislike
Lei-Chen
9 小时前 评论:

对应 PR 已主动撤回;后续按“同一仓库/分支汇总 3–5 个上游补丁”的方式重新整理后再提交。

likedislike
LLei-Chen
9 小时前 关闭了 issue
openeuler-ci-botopeneuler-ci-bot成员
9 小时前 issue状态由 待办的 改变为 已完成
openeuler-ci-botopeneuler-ci-bot成员
9 小时前 issue状态由 已完成 改变为 待办的
openeuler-ci-botopeneuler-ci-bot成员
9 小时前 重新打开了 issue
openeuler-ci-bot
openeuler-ci-bot成员
9 小时前 评论:

@mailofzxf
关闭issue前,需要将受影响的分支在合并pr时关联上当前issue编号: #69
受影响分支: 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
具体操作参考: https://docs.atomgit.com/docs/help/home/org_project/pullrequests/pr-related-issue

likedislike
LLei-Chen
9 小时前 关闭了 issue
openeuler-ci-botopeneuler-ci-bot成员
9 小时前 issue状态由 待办的 改变为 已完成
openeuler-ci-botopeneuler-ci-bot成员
9 小时前 issue状态由 已完成 改变为 待办的
openeuler-ci-botopeneuler-ci-bot成员
9 小时前 重新打开了 issue
openeuler-ci-bot
openeuler-ci-bot成员
9 小时前 评论:

@mailofzxf
关闭issue前,需要将受影响的分支在合并pr时关联上当前issue编号: #69
受影响分支: 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
具体操作参考: https://docs.atomgit.com/docs/help/home/org_project/pullrequests/pr-related-issue

likedislike