109 Star 72 Fork 297

src-openEuler/kernel

 / 详情

CVE-2024-57874

已完成
CVE和安全问题
创建于  
2025-01-22 16:48

一、漏洞信息
漏洞编号:CVE-2024-57874
漏洞归属组件:kernel
漏洞归属的版本:4.19.140,4.19.194,4.19.90,5.10.0,6.1.19,6.1.8,6.4.0,6.6.0
CVSS V3.0分值:
BaseScore:6.1 Medium
Vector:CVSS:3.0/AV:L/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:H
漏洞简述:
In the Linux kernel, the following vulnerability has been resolved:arm64: ptrace: fix partial SETREGSET for NT_ARM_TAGGED_ADDR_CTRLCurrently tagged_addr_ctrl_set() doesn t initialize the temporary ctrl variable, and a SETREGSET call with a length of zero will leave thisuninitialized. Consequently tagged_addr_ctrl_set() will consume anarbitrary value, potentially leaking up to 64 bits of memory from thekernel stack. The read is limited to a specific slot on the stack, andthe issue does not provide a write mechanism.As set_tagged_addr_ctrl() only accepts values where bits [63:4] zero andrejects other values, a partial SETREGSET attempt will randomly succeedor fail depending on the value of the uninitialized value, and theexposure is significantly limited.Fix this by initializing the temporary value before copying the regsetfrom userspace, as for other regsets (e.g. NT_PRSTATUS, NT_PRFPREG,NT_ARM_SYSTEM_CALL). In the case of a zero-length write, the existingvalue of the tagged address ctrl will be retained.The NT_ARM_TAGGED_ADDR_CTRL regset is only visible in theuser_aarch64_view used by a native AArch64 task to manipulate anothernative AArch64 task. As get_tagged_addr_ctrl() only returns an errorvalue when called for a compat task, tagged_addr_ctrl_get() andtagged_addr_ctrl_set() should never observe an error value fromget_tagged_addr_ctrl(). Add a WARN_ON_ONCE() to both to indicate thatsuch an error would be unexpected, and error handlnig is not missing ineither case.
漏洞公开时间:2025-01-11 23:15:07
漏洞创建时间:2025-01-22 16:49:00
漏洞详情参考链接:
https://nvd.nist.gov/vuln/detail/CVE-2024-57874

更多参考(点击展开)
参考来源 参考链接 来源链接
416baaa9-dc9f-4396-8d5f-8c081fb06d67 https://git.kernel.org/stable/c/1152dd13845efde5554f80c7e1233bae1d26bd3e
416baaa9-dc9f-4396-8d5f-8c081fb06d67 https://git.kernel.org/stable/c/1370cf3eb5495d70e00547598583a4cd45b40b99
416baaa9-dc9f-4396-8d5f-8c081fb06d67 https://git.kernel.org/stable/c/1c176f5155ee6161fee6f416b64aa50394d3f220
416baaa9-dc9f-4396-8d5f-8c081fb06d67 https://git.kernel.org/stable/c/96035c0093db258975b8887676afe59a64c34a72
416baaa9-dc9f-4396-8d5f-8c081fb06d67 https://git.kernel.org/stable/c/abd614bbfcee73247495bd9472da8f85ac83546e
416baaa9-dc9f-4396-8d5f-8c081fb06d67 https://git.kernel.org/stable/c/ca62d90085f4af36de745883faab9f8a7cbb45d3
suse_bugzilla http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2024-57874 https://bugzilla.suse.com/show_bug.cgi?id=1235808
suse_bugzilla https://git.kernel.org/pub/scm/linux/security/vulns.git/plain/cve/published/2024/CVE-2024-57874.mbox https://bugzilla.suse.com/show_bug.cgi?id=1235808
suse_bugzilla https://git.kernel.org/stable/c/1152dd13845efde5554f80c7e1233bae1d26bd3e https://bugzilla.suse.com/show_bug.cgi?id=1235808
suse_bugzilla https://git.kernel.org/stable/c/1c176f5155ee6161fee6f416b64aa50394d3f220 https://bugzilla.suse.com/show_bug.cgi?id=1235808
suse_bugzilla https://git.kernel.org/stable/c/1370cf3eb5495d70e00547598583a4cd45b40b99 https://bugzilla.suse.com/show_bug.cgi?id=1235808
suse_bugzilla https://git.kernel.org/stable/c/96035c0093db258975b8887676afe59a64c34a72 https://bugzilla.suse.com/show_bug.cgi?id=1235808
suse_bugzilla https://git.kernel.org/stable/c/abd614bbfcee73247495bd9472da8f85ac83546e https://bugzilla.suse.com/show_bug.cgi?id=1235808
suse_bugzilla https://git.kernel.org/stable/c/ca62d90085f4af36de745883faab9f8a7cbb45d3 https://bugzilla.suse.com/show_bug.cgi?id=1235808
suse_bugzilla https://www.cve.org/CVERecord?id=CVE-2024-57874 https://bugzilla.suse.com/show_bug.cgi?id=1235808
suse_bugzilla https://bugzilla.redhat.com/show_bug.cgi?id=2337145 https://bugzilla.suse.com/show_bug.cgi?id=1235808
redhat_bugzilla https://lore.kernel.org/linux-cve-announce/2025011113-CVE-2024-57874-539d@gregkh/T https://bugzilla.redhat.com/show_bug.cgi?id=2337145
debian https://security-tracker.debian.org/tracker/CVE-2024-57874

漏洞分析指导链接:
https://gitee.com/openeuler/cve-manager/blob/master/cve-vulner-manager/doc/md/manual.md
漏洞数据来源:
openBrain开源漏洞感知系统
漏洞补丁信息:

详情(点击展开)
影响的包 修复版本 修复补丁 问题引入补丁 来源
linux_kernel 5.10.231 https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=1152dd13845efde5554f80c7e1233bae1d26bd3eIssue https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=2200aa7154cb7ef76bac93e98326883ba64bfa2e linuxkernelcves
linux_kernel 5.15.174 https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=1c176f5155ee6161fee6f416b64aa50394d3f220Issue https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=2200aa7154cb7ef76bac93e98326883ba64bfa2e linuxkernelcves
linux_kernel 6.1.120 https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=1370cf3eb5495d70e00547598583a4cd45b40b99Issue https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=2200aa7154cb7ef76bac93e98326883ba64bfa2e linuxkernelcves
linux_kernel 6.6.66 https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=96035c0093db258975b8887676afe59a64c34a72Issue https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=2200aa7154cb7ef76bac93e98326883ba64bfa2e linuxkernelcves
linux_kernel 6.12.5 https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=abd614bbfcee73247495bd9472da8f85ac83546eIssue https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=2200aa7154cb7ef76bac93e98326883ba64bfa2e linuxkernelcves
linux_kernel 6.13-rc2 https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=ca62d90085f4af36de745883faab9f8a7cbb45d3Please https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=2200aa7154cb7ef76bac93e98326883ba64bfa2e linuxkernelcves

二、漏洞分析结构反馈
影响性分析说明:
In the Linux kernel, the following vulnerability has been resolved:arm64: ptrace: fix partial SETREGSET for NT_ARM_TAGGED_ADDR_CTRLCurrently tagged_addr_ctrl_set() doesn t initialize the temporary ctrl variable, and a SETREGSET call with a length of zero will leave thisuninitialized. Consequently tagged_addr_ctrl_set() will consume anarbitrary value, potentially leaking up to 64 bits of memory from thekernel stack. The read is limited to a specific slot on the stack, andthe issue does not provide a write mechanism.As set_tagged_addr_ctrl() only accepts values where bits [63:4] zero andrejects other values, a partial SETREGSET attempt will randomly succeedor fail depending on the value of the uninitialized value, and theexposure is significantly limited.Fix this by initializing the temporary value before copying the regsetfrom userspace, as for other regsets (e.g. NT_PRSTATUS, NT_PRFPREG,NT_ARM_SYSTEM_CALL). In the case of a zero-length write, the existingvalue of the tagged address ctrl will be retained.The NT_ARM_TAGGED_ADDR_CTRL regset is only visible in theuser_aarch64_view used by a native AArch64 task to manipulate anothernative AArch64 task. As get_tagged_addr_ctrl() only returns an errorvalue when called for a compat task, tagged_addr_ctrl_get() andtagged_addr_ctrl_set() should never observe an error value fromget_tagged_addr_ctrl(). Add a WARN_ON_ONCE() to both to indicate thatsuch an error would be unexpected, and error handlnig is not missing ineither case.
openEuler评分:
6.1
Vector:CVSS:3.0/AV:L/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:H
受影响版本排查(受影响/不受影响):
1.openEuler-22.03-LTS-SP3(5.10.0):受影响
2.openEuler-22.03-LTS-SP4(5.10.0):受影响
3.openEuler-24.03-LTS(6.6.0):受影响
4.openEuler-24.03-LTS-SP1(6.6.0):受影响
5.openEuler-20.03-LTS-SP4(4.19.90):不受影响
6.master(6.6.0):不受影响
7.openEuler-24.03-LTS-Next(6.6.0):不受影响

修复是否涉及abi变化(是/否):
1.openEuler-20.03-LTS-SP4(4.19.90):否
2.openEuler-22.03-LTS-SP3(5.10.0):否
3.master(6.6.0):否
4.openEuler-24.03-LTS(6.6.0):否
5.openEuler-24.03-LTS-Next(6.6.0):否
6.openEuler-22.03-LTS-SP4(5.10.0):否
7.openEuler-24.03-LTS-SP1(6.6.0):否

原因说明:
1.openEuler-24.03-LTS(6.6.0):正常修复
2.openEuler-24.03-LTS-SP1(6.6.0):正常修复
3.openEuler-22.03-LTS-SP3(5.10.0):不修复-超出修复范围
4.openEuler-22.03-LTS-SP4(5.10.0):不修复-超出修复范围
5.master(6.6.0):不受影响-漏洞代码不能被攻击者触发
6.openEuler-24.03-LTS-Next(6.6.0):不受影响-漏洞代码不能被攻击者触发
7.openEuler-20.03-LTS-SP4(4.19.90):不受影响-漏洞代码不存在

评论 (8)

lyt5239 创建了内核缺陷 3个月前

Hi lyt5239, welcome to the openEuler Community.
I'm the Bot here serving you. You can find the instructions on how to interact with me at Here.
If you have any questions, please contact the SIG: Kernel, and any of the maintainers.

openeuler-ci-bot 添加了
 
sig/Kernel
标签
3个月前
openeuler-ci-bot 负责人设置为sanglipeng 3个月前
openeuler-ci-bot 修改了描述 3个月前
openeuler-ci-bot 添加了
 
CVE/UNFIXED
标签
3个月前
openeuler-ci-bot 修改了描述 3个月前

CVE-2024-57874

影响性分析说明:
In the Linux kernel, the following vulnerability has been resolved:

arm64: ptrace: fix partial SETREGSET for NT_ARM_TAGGED_ADDR_CTRL

Currently tagged_addr_ctrl_set() doesn't initialize the temporary 'ctrl'
variable, and a SETREGSET call with a length of zero will leave this
uninitialized. Consequently tagged_addr_ctrl_set() will consume an
arbitrary value, potentially leaking up to 64 bits of memory from the
kernel stack. The read is limited to a specific slot on the stack, and
the issue does not provide a write mechanism.

As set_tagged_addr_ctrl() only accepts values where bits [63:4] zero and
rejects other values, a partial SETREGSET attempt will randomly succeed
or fail depending on the value of the uninitialized value, and the
exposure is significantly limited.

Fix this by initializing the temporary value before copying the regset
from userspace, as for other regsets (e.g. NT_PRSTATUS, NT_PRFPREG,
NT_ARM_SYSTEM_CALL). In the case of a zero-length write, the existing
value of the tagged address ctrl will be retained.

The NT_ARM_TAGGED_ADDR_CTRL regset is only visible in the
user_aarch64_view used by a native AArch64 task to manipulate another
native AArch64 task. As get_tagged_addr_ctrl() only returns an error
value when called for a compat task, tagged_addr_ctrl_get() and
tagged_addr_ctrl_set() should never observe an error value from
get_tagged_addr_ctrl(). Add a WARN_ON_ONCE() to both to indicate that
such an error would be unexpected, and error handlnig is not missing in
either case.

The Linux kernel CVE team has assigned CVE-2024-57874 to this issue.

openEuler评分:(评分和向量)
3.9
AV:L/AC:H/PR:H/UI:N/S:U/C:L/I:L/A:L

受影响版本排查(受影响/不受影响):
1.master(6.1.0):不受影响
2.openEuler-20.03-LTS-SP4:不受影响
3.openEuler-22.03-LTS-SP3:受影响
4.openEuler-22.03-LTS-SP4:受影响
5.openEuler-24.03-LTS:受影响
6.openEuler-24.03-LTS-Next:不受影响
7.openEuler-24.03-LTS-SP1:受影响

修复是否涉及abi变化(是/否):
1.master(6.1.0):否
2.openEuler-20.03-LTS-SP4:否
3.openEuler-22.03-LTS-SP3:否
4.openEuler-22.03-LTS-SP4:否
5.openEuler-24.03-LTS:否
6.openEuler-24.03-LTS-Next:否
7.openEuler-24.03-LTS-SP1:否

原因说明:
1.master(23.08.5):不受影响-漏洞代码不能被攻击者触发
2.openEuler-20.03-LTS-SP4:不受影响-漏洞代码不存在
4.openEuler-22.03-LTS-SP3:不修复-超出修复范围
5.openEuler-22.03-LTS-SP4:不修复-超出修复范围
6.openEuler-24.03-LTS:正常修复
7.openEuler-24.03-LTS-Next:不受影响-漏洞代码不能被攻击者触发
8.openEuler-24.03-LTS-SP1:正常修复

openeuler-ci-bot 修改了描述 3个月前
openeuler-ci-bot 修改了描述 3个月前
openeuler-ci-bot 修改了描述 3个月前
openeuler-ci-bot 修改了描述 3个月前

CVE-2024-57874

影响性分析说明:
In the Linux kernel, the following vulnerability has been resolved:

arm64: ptrace: fix partial SETREGSET for NT_ARM_TAGGED_ADDR_CTRL

Currently tagged_addr_ctrl_set() doesn't initialize the temporary 'ctrl'
variable, and a SETREGSET call with a length of zero will leave this
uninitialized. Consequently tagged_addr_ctrl_set() will consume an
arbitrary value, potentially leaking up to 64 bits of memory from the
kernel stack. The read is limited to a specific slot on the stack, and
the issue does not provide a write mechanism.

As set_tagged_addr_ctrl() only accepts values where bits [63:4] zero and
rejects other values, a partial SETREGSET attempt will randomly succeed
or fail depending on the value of the uninitialized value, and the
exposure is significantly limited.

Fix this by initializing the temporary value before copying the regset
from userspace, as for other regsets (e.g. NT_PRSTATUS, NT_PRFPREG,
NT_ARM_SYSTEM_CALL). In the case of a zero-length write, the existing
value of the tagged address ctrl will be retained.

The NT_ARM_TAGGED_ADDR_CTRL regset is only visible in the
user_aarch64_view used by a native AArch64 task to manipulate another
native AArch64 task. As get_tagged_addr_ctrl() only returns an error
value when called for a compat task, tagged_addr_ctrl_get() and
tagged_addr_ctrl_set() should never observe an error value from
get_tagged_addr_ctrl(). Add a WARN_ON_ONCE() to both to indicate that
such an error would be unexpected, and error handlnig is not missing in
either case.

The Linux kernel CVE team has assigned CVE-2024-57874 to this issue.

openEuler评分:(评分和向量)
6.1
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:H

受影响版本排查(受影响/不受影响):
1.master(6.1.0):不受影响
2.openEuler-20.03-LTS-SP4:不受影响
3.openEuler-22.03-LTS-SP3:受影响
4.openEuler-22.03-LTS-SP4:受影响
5.openEuler-24.03-LTS:受影响
6.openEuler-24.03-LTS-Next:不受影响
7.openEuler-24.03-LTS-SP1:受影响

修复是否涉及abi变化(是/否):
1.master(6.1.0):否
2.openEuler-20.03-LTS-SP4:否
3.openEuler-22.03-LTS-SP3:否
4.openEuler-22.03-LTS-SP4:否
5.openEuler-24.03-LTS:否
6.openEuler-24.03-LTS-Next:否
7.openEuler-24.03-LTS-SP1:否

原因说明:
1.master(23.08.5):不受影响-漏洞代码不能被攻击者触发
2.openEuler-20.03-LTS-SP4:不受影响-漏洞代码不存在
4.openEuler-22.03-LTS-SP3:不修复-超出修复范围
5.openEuler-22.03-LTS-SP4:不修复-超出修复范围
6.openEuler-24.03-LTS:正常修复
7.openEuler-24.03-LTS-Next:不受影响-漏洞代码不能被攻击者触发
8.openEuler-24.03-LTS-SP1:正常修复

openeuler-ci-bot 修改了描述 3个月前
郭梦琪 任务类型内核缺陷 修改为CVE和安全问题 3个月前
openeuler-ci-bot 计划开始日期设置为2025-01-22 3个月前
openeuler-ci-bot 计划截止日期设置为2025-02-21 3个月前
openeuler-ci-bot 优先级设置为次要 3个月前

CVE-2024-57874

影响性分析说明:
In the Linux kernel, the following vulnerability has been resolved:

arm64: ptrace: fix partial SETREGSET for NT_ARM_TAGGED_ADDR_CTRL

Currently tagged_addr_ctrl_set() doesn't initialize the temporary 'ctrl'
variable, and a SETREGSET call with a length of zero will leave this
uninitialized. Consequently tagged_addr_ctrl_set() will consume an
arbitrary value, potentially leaking up to 64 bits of memory from the
kernel stack. The read is limited to a specific slot on the stack, and
the issue does not provide a write mechanism.

As set_tagged_addr_ctrl() only accepts values where bits [63:4] zero and
rejects other values, a partial SETREGSET attempt will randomly succeed
or fail depending on the value of the uninitialized value, and the
exposure is significantly limited.

Fix this by initializing the temporary value before copying the regset
from userspace, as for other regsets (e.g. NT_PRSTATUS, NT_PRFPREG,
NT_ARM_SYSTEM_CALL). In the case of a zero-length write, the existing
value of the tagged address ctrl will be retained.

The NT_ARM_TAGGED_ADDR_CTRL regset is only visible in the
user_aarch64_view used by a native AArch64 task to manipulate another
native AArch64 task. As get_tagged_addr_ctrl() only returns an error
value when called for a compat task, tagged_addr_ctrl_get() and
tagged_addr_ctrl_set() should never observe an error value from
get_tagged_addr_ctrl(). Add a WARN_ON_ONCE() to both to indicate that
such an error would be unexpected, and error handlnig is not missing in
either case.

openEuler评分:(评分和向量)
6.1
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:H

受影响版本排查(受影响/不受影响):
1.openEuler-20.03-LTS-SP4:不受影响
2.openEuler-22.03-LTS-SP3:受影响
3.openEuler-22.03-LTS-SP4:受影响
4.master(6.6.0):不受影响
5.openEuler-24.03-LTS:受影响
6.openEuler-24.03-LTS-Next:不受影响
7.openEuler-24.03-LTS-SP1:受影响

原因说明:
1.openEuler-20.03-LTS-SP4:不受影响-漏洞代码不存在
2.openEuler-22.03-LTS-SP3:不修复-超出修复范围
3.openEuler-22.03-LTS-SP4:不修复-超出修复范围
4.master(6.6.0):不受影响-漏洞代码不能被攻击者触发
5.openEuler-24.03-LTS:正常修复
6.openEuler-24.03-LTS-Next:不受影响-漏洞代码不能被攻击者触发
7.openEuler-24.03-LTS-SP1:正常修复

修复是否涉及abi变化(是/否):
1.openEuler-20.03-LTS-SP4:否
2.openEuler-22.03-LTS-SP3:否
3.master(23.08.5):否
4.openEuler-24.03-LTS:否
5.openEuler-24.03-LTS-Next:否
6.openEuler-22.03-LTS-SP4:否
7.openEuler-24.03-LTS-SP1:否

===========================================================

郭梦琪 任务状态待办的 修改为已完成 3个月前
openeuler-ci-bot 移除了
 
sig/Kernel
标签
3个月前
openeuler-ci-bot 移除了
 
CVE/UNFIXED
标签
3个月前
openeuler-ci-bot 添加了
 
CVE/FIXED
标签
3个月前
openeuler-ci-bot 添加了
 
sig/Kernel
标签
3个月前
openeuler-ci-bot 任务状态已完成 修改为待办的 3个月前
openeuler-ci-bot 修改了描述 3个月前
openeuler-ci-bot 移除了
 
CVE/FIXED
标签
3个月前
openeuler-ci-bot 添加了
 
CVE/UNFIXED
标签
3个月前
openeuler-ci-bot 移除了
 
sig/Kernel
标签
3个月前
openeuler-ci-bot 移除了
 
CVE/UNFIXED
标签
3个月前
openeuler-ci-bot 添加了
 
CVE/FIXED
标签
3个月前
openeuler-ci-bot 添加了
 
sig/Kernel
标签
3个月前
郭梦琪 任务状态待办的 修改为已完成 3个月前

登录 后才可以发表评论

状态
负责人
项目
里程碑
Pull Requests
关联的 Pull Requests 被合并后可能会关闭此 issue
分支
开始日期   -   截止日期
-
置顶选项
优先级
预计工期 (小时)
参与者(4)
5329419 openeuler ci bot 1632792936 hulk-robot-zhixiuzhou 郭梦琪-guo-mengqi lyt5239-lyt5239
1
https://gitee.com/src-openeuler/kernel.git
git@gitee.com:src-openeuler/kernel.git
src-openeuler
kernel
kernel

搜索帮助