100 Star 60 Fork 240

src-openEuler / kernel

 / 详情

CVE-2024-26923

已完成
CVE和安全问题 拥有者
创建于  
2024-04-25 07:28

一、漏洞信息
漏洞编号:CVE-2024-26923
漏洞归属组件:kernel
漏洞归属的版本:4.19.140,4.19.194,4.19.90,5.10.0,6.1.0,6.1.14,6.1.19,6.1.5,6.1.6,6.1.8,6.4.0,6.6.0
CVSS V2.0分值:
BaseScore:0.0 Low
Vector:CVSS:2.0/
漏洞简述:
In the Linux kernel, the following vulnerability has been resolved:af_unix: Fix garbage collector racing against connect()Garbage collector does not take into account the risk of embryo gettingenqueued during the garbage collection. If such embryo has a peer thatcarries SCM_RIGHTS, two consecutive passes of scan_children() may see adifferent set of children. Leading to an incorrectly elevated inflightcount, and then a dangling pointer within the gc_inflight_list.sockets are AF_UNIX/SOCK_STREAMS is an unconnected socketL is a listening in-flight socket bound to addr, not in fdtableV s fd will be passed via sendmsg(), gets inflight count bumpedconnect(S, addr) sendmsg(S, [V]); close(V) __unix_gc()---------------- ------------------------- -----------NS = unix_create1()skb1 = sock_wmalloc(NS)L = unix_find_other(addr)unix_state_lock(L)unix_peer(S) = NS // V count=1 inflight=0 NS = unix_peer(S) skb2 = sock_alloc() skb_queue_tail(NS, skb2[V]) // V became in-flight // V count=2 inflight=1 close(V) // V count=1 inflight=1 // GC candidate condition met for u in gc_inflight_list: if (total_refs == inflight_refs) add u to gc_candidates // gc_candidates={L, V} for u in gc_candidates: scan_children(u, dec_inflight) // embryo (skb1) was not // reachable from L yet, so V s // inflight remains unchanged__skb_queue_tail(L, skb1)unix_state_unlock(L) for u in gc_candidates: if (u.inflight) scan_children(u, inc_inflight_move_tail) // V count=1 inflight=2 (!)If there is a GC-candidate listening socket, lock/unlock its state. Thismakes GC wait until the end of any ongoing connect() to that socket. Afterflipping the lock, a possibly SCM-laden embryo is already enqueued. And ifthere is another embryo coming, it can not possibly carry SCM_RIGHTS. Atthis point, unix_inflight() can not happen because unix_gc_lock is alreadytaken. Inflight graph remains unaffected.
漏洞公开时间:2024-04-25 14:15:57
漏洞创建时间:2024-04-25 07:28:43
漏洞详情参考链接:
https://nvd.nist.gov/vuln/detail/CVE-2024-26923

更多参考(点击展开)
参考来源 参考链接 来源链接
416baaa9-dc9f-4396-8d5f-8c081fb06d67 https://git.kernel.org/stable/c/2e2a03787f4f0abc0072350654ab0ef3324d9db3
416baaa9-dc9f-4396-8d5f-8c081fb06d67 https://git.kernel.org/stable/c/343c5372d5e17b306db5f8f3c895539b06e3177f
416baaa9-dc9f-4396-8d5f-8c081fb06d67 https://git.kernel.org/stable/c/47d8ac011fe1c9251070e1bd64cb10b48193ec51
416baaa9-dc9f-4396-8d5f-8c081fb06d67 https://git.kernel.org/stable/c/507cc232ffe53a352847893f8177d276c3b532a9
416baaa9-dc9f-4396-8d5f-8c081fb06d67 https://git.kernel.org/stable/c/b75722be422c276b699200de90527d01c602ea7c
416baaa9-dc9f-4396-8d5f-8c081fb06d67 https://git.kernel.org/stable/c/dbdf7bec5c920200077d693193f989cb1513f009
416baaa9-dc9f-4396-8d5f-8c081fb06d67 https://git.kernel.org/stable/c/e76c2678228f6aec74b305ae30c9374cc2f28a51
suse_bugzilla http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2024-26923 https://bugzilla.suse.com/show_bug.cgi?id=1223384
suse_bugzilla https://git.kernel.org/pub/scm/linux/security/vulns.git/plain/cve/published/2024/CVE-2024-26923.mbox https://bugzilla.suse.com/show_bug.cgi?id=1223384
suse_bugzilla https://git.kernel.org/stable/c/e76c2678228f6aec74b305ae30c9374cc2f28a51 https://bugzilla.suse.com/show_bug.cgi?id=1223384
suse_bugzilla https://git.kernel.org/stable/c/b75722be422c276b699200de90527d01c602ea7c https://bugzilla.suse.com/show_bug.cgi?id=1223384
suse_bugzilla https://git.kernel.org/stable/c/507cc232ffe53a352847893f8177d276c3b532a9 https://bugzilla.suse.com/show_bug.cgi?id=1223384
suse_bugzilla https://git.kernel.org/stable/c/dbdf7bec5c920200077d693193f989cb1513f009 https://bugzilla.suse.com/show_bug.cgi?id=1223384
suse_bugzilla https://git.kernel.org/stable/c/47d8ac011fe1c9251070e1bd64cb10b48193ec51 https://bugzilla.suse.com/show_bug.cgi?id=1223384
suse_bugzilla https://www.cve.org/CVERecord?id=CVE-2024-26923 https://bugzilla.suse.com/show_bug.cgi?id=1223384
redhat_bugzilla https://lore.kernel.org/linux-cve-announce/2024042418-CVE-2024-26923-f7f6@gregkh/T https://bugzilla.redhat.com/show_bug.cgi?id=2277171
ubuntu https://www.cve.org/CVERecord?id=CVE-2024-26923 https://ubuntu.com/security/CVE-2024-26923
ubuntu https://git.kernel.org/linus/47d8ac011fe1c9251070e1bd64cb10b48193ec51 (6.9-rc4) https://ubuntu.com/security/CVE-2024-26923
ubuntu https://git.kernel.org/stable/c/e76c2678228f6aec74b305ae30c9374cc2f28a51 https://ubuntu.com/security/CVE-2024-26923
ubuntu https://git.kernel.org/stable/c/b75722be422c276b699200de90527d01c602ea7c https://ubuntu.com/security/CVE-2024-26923
ubuntu https://git.kernel.org/stable/c/507cc232ffe53a352847893f8177d276c3b532a9 https://ubuntu.com/security/CVE-2024-26923
ubuntu https://git.kernel.org/stable/c/dbdf7bec5c920200077d693193f989cb1513f009 https://ubuntu.com/security/CVE-2024-26923
ubuntu https://git.kernel.org/stable/c/47d8ac011fe1c9251070e1bd64cb10b48193ec51 https://ubuntu.com/security/CVE-2024-26923
ubuntu https://nvd.nist.gov/vuln/detail/CVE-2024-26923 https://ubuntu.com/security/CVE-2024-26923
ubuntu https://launchpad.net/bugs/cve/CVE-2024-26923 https://ubuntu.com/security/CVE-2024-26923
ubuntu https://security-tracker.debian.org/tracker/CVE-2024-26923 https://ubuntu.com/security/CVE-2024-26923
debian https://security-tracker.debian.org/tracker/CVE-2024-26923
cve_search https://git.kernel.org/stable/c/e76c2678228f6aec74b305ae30c9374cc2f28a51
cve_search https://git.kernel.org/stable/c/b75722be422c276b699200de90527d01c602ea7c
cve_search https://git.kernel.org/stable/c/507cc232ffe53a352847893f8177d276c3b532a9
cve_search https://git.kernel.org/stable/c/dbdf7bec5c920200077d693193f989cb1513f009
cve_search https://git.kernel.org/stable/c/47d8ac011fe1c9251070e1bd64cb10b48193ec51
cve_search https://git.kernel.org/stable/c/343c5372d5e17b306db5f8f3c895539b06e3177f
cve_search https://git.kernel.org/stable/c/2e2a03787f4f0abc0072350654ab0ef3324d9db3
cve_search https://git.kernel.org/stable/c/a36ae0ec2353015f0f6762e59f4c2dbc0c906423

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

详情(点击展开)
影响的包 修复版本 修复补丁 问题引入补丁 来源
linux https://git.kernel.org/linus/47d8ac011fe1c9251070e1bd64cb10b48193ec51 https://git.kernel.org/linus/1fd05ba5a2f2aa8e7b9b52ef55df850e2e7d54c9 ubuntu
linux https://git.kernel.org/linus/47d8ac011fe1c9251070e1bd64cb10b48193ec51 https://git.kernel.org/linus/1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 ubuntu

二、漏洞分析结构反馈
影响性分析说明:
In the Linux kernel, the following vulnerability has been resolved:af_unix: Fix garbage collector racing against connect()Garbage collector does not take into account the risk of embryo gettingenqueued during the garbage collection. If such embryo has a peer thatcarries SCM_RIGHTS, two consecutive passes of scan_children() may see adifferent set of children. Leading to an incorrectly elevated inflightcount, and then a dangling pointer within the gc_inflight_list.sockets are AF_UNIX/SOCK_STREAMS is an unconnected socketL is a listening in-flight socket bound to addr, not in fdtableV s fd will be passed via sendmsg(), gets inflight count bumpedconnect(S, addr)sendmsg(S, [V]); close(V)__unix_gc()----------------------------------------------------NS = unix_create1()skb1 = sock_wmalloc(NS)L = unix_find_other(addr)unix_state_lock(L)unix_peer(S) = NS// V count=1 inflight=0 NS = unix_peer(S) skb2 = sock_alloc()skb_queue_tail(NS, skb2[V])// V became in-flight// V count=2 inflight=1close(V)// V count=1 inflight=1// GC candidate condition metfor u in gc_inflight_list: if (total_refs == inflight_refs) add u to gc_candidates// gc_candidates={L, V}for u in gc_candidates: scan_children(u, dec_inflight)// embryo (skb1) was not// reachable from L yet, so V s// inflight remains unchanged__skb_queue_tail(L, skb1)unix_state_unlock(L)for u in gc_candidates: if (u.inflight) scan_children(u, inc_inflight_move_tail)// V count=1 inflight=2 (!)If there is a GC-candidate listening socket, lock/unlock its state. Thismakes GC wait until the end of any ongoing connect() to that socket. Afterflipping the lock, a possibly SCM-laden embryo is already enqueued. And ifthere is another embryo coming, it can not possibly carry SCM_RIGHTS. Atthis point, unix_inflight() can not happen because unix_gc_lock is alreadytaken. Inflight graph remains unaffected.
openEuler评分:
7.0
Vector:CVSS:2.0/AV:L/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H
受影响版本排查(受影响/不受影响):
1.openEuler-20.03-LTS-SP1(4.19.90):受影响
2.openEuler-20.03-LTS-SP4:受影响
3.openEuler-22.03-LTS(5.10.0):受影响
4.openEuler-22.03-LTS-SP1(5.10.0):受影响
5.openEuler-22.03-LTS-SP2(5.10.0):受影响
6.openEuler-22.03-LTS-SP3:受影响
7.openEuler-22.03-LTS-SP4:不受影响
8.master(6.1.0):不受影响
9.openEuler-22.03-LTS-Next(5.10.0):不受影响
10.openEuler-24.03-LTS(6.6.0):不受影响
11.openEuler-24.03-LTS-Next(6.6.0):不受影响

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

三、漏洞修复
安全公告链接:https://www.openeuler.org/zh/security/safety-bulletin/detail/?id=openEuler-SA-2024-1681

评论 (17)

openeuler-ci-bot 创建了CVE和安全问题
openeuler-ci-bot 添加了
 
CVE/UNFIXED
标签
展开全部操作日志

Hi openeuler-ci-bot, 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.

@YangYingliang ,@成坚 (CHENG Jian) ,@jiaoff ,@AlexGuo ,@hanjun-guo ,@woqidaideshi ,@Jackie Liu ,@Zhang Yi ,@colyli ,@ThunderTown ,@htforge ,@Chiqijun ,@冷嘲啊 ,@zhujianwei001 ,@kylin-mayukun ,@wangxiongfeng ,@Kefeng ,@SuperSix173 ,@WangShaoBo ,@Zheng Zucheng
issue处理注意事项:
1. 当前issue受影响的分支提交pr时, 须在pr描述中填写当前issue编号进行关联, 否则无法关闭当前issue;
2. 模板内容需要填写完整, 无论是受影响或者不受影响都需要填写完整内容,未引入的分支不需要填写, 否则无法关闭当前issue;
3. 以下为模板中需要填写完整的内容, 请复制到评论区回复, 注: 内容的标题名称(影响性分析说明, openEuler评分, 受影响版本排查(受影响/不受影响), 修复是否涉及abi变化(是/否))不能省略,省略后cve-manager将无法正常解析填写内容.


影响性分析说明:

openEuler评分: (评分和向量)

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

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


issue处理具体操作请参考:
https://gitee.com/openeuler/cve-manager/blob/master/cve-vulner-manager/doc/md/manual.md
pr关联issue具体操作请参考:
https://gitee.com/help/articles/4142

openeuler-ci-bot 添加了
 
sig/Kernel
标签
参考网址 关联pr 状态 补丁链接
https://nvd.nist.gov/vuln/detail/CVE-2024-26923
https://ubuntu.com/security/CVE-2024-26923 None None https://discourse.ubuntu.com/c/ubuntu-pro
https://www.opencve.io/cve/CVE-2024-26923
https://bugzilla.redhat.com/show_bug.cgi?id=CVE-2024-26923
https://security-tracker.debian.org/tracker/CVE-2024-26923

说明:补丁链接仅供初步排查参考,实际可用性请人工再次确认,补丁下载验证可使用CVE补丁工具
若补丁不准确,烦请在此issue下评论 '/report-patch 参考网址 补丁链接1,补丁链接2' 反馈正确信息,便于我们不断优化工具,不胜感激。
如 /report-patch https://security-tracker.debian.org/tracker/CVE-2021-3997 https://github.com/systemd/systemd/commit/5b1cf7a9be37e20133c0208005274ce4a5b5c6a1

openeuler-ci-bot 修改了描述
openeuler-ci-bot 修改了描述
openeuler-ci-bot 修改了描述
openeuler-ci-bot 修改了描述
openeuler-ci-bot 修改了描述
openeuler-ci-bot 修改了描述
openeuler-ci-bot 修改了描述
openeuler-ci-bot 修改了描述
openeuler-ci-bot 修改了描述
openeuler-ci-bot 修改了描述
openeuler-ci-bot 修改了描述
openeuler-ci-bot 修改了描述
openeuler-ci-bot 修改了描述
openeuler-ci-bot 修改了描述
openeuler-ci-bot 修改了描述
openeuler-ci-bot 修改了描述
openeuler-ci-bot 修改了描述
openeuler-ci-bot 修改了描述
openeuler-ci-bot 修改了描述
openeuler-ci-bot 修改了描述
openeuler-ci-bot 修改了描述
openeuler-ci-bot 修改了描述
openeuler-ci-bot 修改了描述
openeuler-ci-bot 修改了描述
openeuler-ci-bot 修改了描述
openeuler-ci-bot 修改了描述
openeuler-ci-bot 修改了描述
openeuler-ci-bot 修改了描述
openeuler-ci-bot 修改了描述
openeuler-ci-bot 修改了描述
openeuler-ci-bot 修改了描述
openeuler-ci-bot 修改了描述
openeuler-ci-bot 修改了描述
openeuler-ci-bot 修改了描述
openeuler-ci-bot 修改了描述
openeuler-ci-bot 修改了描述
openeuler-ci-bot 修改了描述
ci-robot 通过openeuler/kernel Pull Request !6807任务状态待办的 修改为已完成

@ci-robot 请确认分支: master,openEuler-20.03-LTS-SP1,openEuler-20.03-LTS-SP4,openEuler-22.03-LTS,openEuler-22.03-LTS-Next,openEuler-22.03-LTS-SP1,openEuler-22.03-LTS-SP2,openEuler-22.03-LTS-SP3,openEuler-24.03-LTS,openEuler-24.03-LTS-Next 受影响/不受影响.
请确认分支信息是否填写完整,否则将无法关闭当前issue.

openeuler-ci-bot 任务状态已完成 修改为待办的
openeuler-ci-bot 移除了
 
CVE/UNFIXED
标签
openeuler-ci-bot 移除了
 
sig/Kernel
标签
openeuler-ci-bot 添加了
 
CVE/UNFIXED
标签
openeuler-ci-bot 添加了
 
sig/Kernel
标签
openeuler-ci-bot 修改了描述
ci-robot 通过openeuler/kernel Pull Request !6808任务状态待办的 修改为已完成
openeuler-ci-bot 任务状态已完成 修改为待办的

@ci-robot 请确认分支: master,openEuler-20.03-LTS-SP1,openEuler-20.03-LTS-SP4,openEuler-22.03-LTS,openEuler-22.03-LTS-Next,openEuler-22.03-LTS-SP1,openEuler-22.03-LTS-SP2,openEuler-22.03-LTS-SP3,openEuler-24.03-LTS,openEuler-24.03-LTS-Next 受影响/不受影响.
请确认分支信息是否填写完整,否则将无法关闭当前issue.

openeuler-ci-bot 移除了
 
CVE/UNFIXED
标签
openeuler-ci-bot 移除了
 
sig/Kernel
标签
openeuler-ci-bot 添加了
 
CVE/UNFIXED
标签
openeuler-ci-bot 添加了
 
sig/Kernel
标签
zhangchangzhong 通过src-openeuler/kernel Pull Request !1556任务状态待办的 修改为已完成
openeuler-ci-bot 任务状态已完成 修改为待办的

@zhangchangzhong 请确认分支: master,openEuler-20.03-LTS-SP1,openEuler-20.03-LTS-SP4,openEuler-22.03-LTS,openEuler-22.03-LTS-Next,openEuler-22.03-LTS-SP1,openEuler-22.03-LTS-SP2,openEuler-22.03-LTS-SP3,openEuler-24.03-LTS,openEuler-24.03-LTS-Next 受影响/不受影响.
请确认分支信息是否填写完整,否则将无法关闭当前issue.

openeuler-ci-bot 移除了
 
CVE/UNFIXED
标签
openeuler-ci-bot 移除了
 
sig/Kernel
标签
openeuler-ci-bot 添加了
 
CVE/UNFIXED
标签
openeuler-ci-bot 添加了
 
sig/Kernel
标签
chenyi 通过src-openeuler/kernel Pull Request !1557任务状态待办的 修改为已完成

@chenyi 请确认分支: master,openEuler-20.03-LTS-SP1,openEuler-20.03-LTS-SP4,openEuler-22.03-LTS,openEuler-22.03-LTS-Next,openEuler-22.03-LTS-SP1,openEuler-22.03-LTS-SP2,openEuler-22.03-LTS-SP3,openEuler-24.03-LTS,openEuler-24.03-LTS-Next 受影响/不受影响.
请确认分支信息是否填写完整,否则将无法关闭当前issue.

openeuler-ci-bot 任务状态已完成 修改为待办的
openeuler-ci-bot 移除了
 
CVE/UNFIXED
标签
openeuler-ci-bot 移除了
 
sig/Kernel
标签
openeuler-ci-bot 添加了
 
CVE/UNFIXED
标签
openeuler-ci-bot 添加了
 
sig/Kernel
标签
zhangjialin 通过src-openeuler/kernel Pull Request !1561任务状态待办的 修改为已完成
openeuler-ci-bot 任务状态已完成 修改为待办的

@zhangjialin 请确认分支: master,openEuler-20.03-LTS-SP1,openEuler-20.03-LTS-SP4,openEuler-22.03-LTS,openEuler-22.03-LTS-Next,openEuler-22.03-LTS-SP1,openEuler-22.03-LTS-SP2,openEuler-22.03-LTS-SP3,openEuler-24.03-LTS,openEuler-24.03-LTS-Next 受影响/不受影响.
请确认分支信息是否填写完整,否则将无法关闭当前issue.

openeuler-ci-bot 移除了
 
CVE/UNFIXED
标签
openeuler-ci-bot 移除了
 
sig/Kernel
标签
openeuler-ci-bot 添加了
 
CVE/UNFIXED
标签
openeuler-ci-bot 添加了
 
sig/Kernel
标签
zhangjialin 通过src-openeuler/kernel Pull Request !1562任务状态待办的 修改为已完成
openeuler-ci-bot 任务状态已完成 修改为待办的

@zhangjialin 请确认分支: master,openEuler-20.03-LTS-SP1,openEuler-20.03-LTS-SP4,openEuler-22.03-LTS,openEuler-22.03-LTS-Next,openEuler-22.03-LTS-SP1,openEuler-22.03-LTS-SP2,openEuler-22.03-LTS-SP3,openEuler-24.03-LTS,openEuler-24.03-LTS-Next 受影响/不受影响.
请确认分支信息是否填写完整,否则将无法关闭当前issue.

openeuler-ci-bot 移除了
 
CVE/UNFIXED
标签
openeuler-ci-bot 移除了
 
sig/Kernel
标签
openeuler-ci-bot 添加了
 
CVE/UNFIXED
标签
openeuler-ci-bot 添加了
 
sig/Kernel
标签
openeuler-ci-bot 修改了描述
openeuler-ci-bot 修改了描述
openeuler-ci-bot 修改了描述
openeuler-ci-bot 修改了描述
openeuler-ci-bot 修改了描述
openeuler-ci-bot 修改了描述
openeuler-ci-bot 修改了描述
openeuler-ci-bot 修改了描述
openeuler-ci-bot 修改了描述
openeuler-ci-bot 修改了描述
openeuler-ci-bot 修改了描述
openeuler-ci-bot 修改了描述
openeuler-ci-bot 修改了描述
openeuler-ci-bot 修改了描述
openeuler-ci-bot 修改了描述
openeuler-ci-bot 修改了描述
openeuler-ci-bot 修改了描述
openeuler-ci-bot 修改了描述
openeuler-ci-bot 修改了描述
openeuler-ci-bot 修改了描述
openeuler-ci-bot 修改了描述
openeuler-ci-bot 修改了描述
openeuler-ci-bot 修改了描述
openeuler-ci-bot 修改了描述
openeuler-ci-bot 修改了描述
openeuler-ci-bot 修改了描述
openeuler-ci-bot 修改了描述
openeuler-ci-bot 修改了描述
openeuler-ci-bot 修改了描述
openeuler-ci-bot 修改了描述
openeuler-ci-bot 修改了描述
openeuler-ci-bot 修改了描述
openeuler-ci-bot 修改了描述
openeuler-ci-bot 修改了描述
openeuler-ci-bot 修改了描述
openeuler-ci-bot 修改了描述
openeuler-ci-bot 修改了描述
openeuler-ci-bot 修改了描述
openeuler-ci-bot 修改了描述
openeuler-ci-bot 修改了描述
openeuler-ci-bot 修改了描述
openeuler-ci-bot 修改了描述

CVE-2024-26923

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

af_unix: Fix garbage collector racing against connect()

Garbage collector does not take into account the risk of embryo getting
enqueued during the garbage collection. If such embryo has a peer that
carries SCM_RIGHTS, two consecutive passes of scan_children() may see a
different set of children. Leading to an incorrectly elevated inflight
count, and then a dangling pointer within the gc_inflight_list.

sockets are AF_UNIX/SOCK_STREAM
S is an unconnected socket
L is a listening in-flight socket bound to addr, not in fdtable
V's fd will be passed via sendmsg(), gets inflight count bumped

connect(S, addr) sendmsg(S, [V]); close(V) __unix_gc()


NS = unix_create1()
skb1 = sock_wmalloc(NS)
L = unix_find_other(addr)
unix_state_lock(L)
unix_peer(S) = NS
// V count=1 inflight=0

		NS = unix_peer(S)
		skb2 = sock_alloc()
		skb_queue_tail(NS, skb2[V])

		// V became in-flight
		// V count=2 inflight=1

		close(V)

		// V count=1 inflight=1
		// GC candidate condition met

					for u in gc_inflight_list:
					  if (total_refs == inflight_refs)
					    add u to gc_candidates

					// gc_candidates={L, V}

					for u in gc_candidates:
					  scan_children(u, dec_inflight)

					// embryo (skb1) was not
					// reachable from L yet, so V's
					// inflight remains unchanged

__skb_queue_tail(L, skb1)
unix_state_unlock(L)
for u in gc_candidates:
if (u.inflight)
scan_children(u, inc_inflight_move_tail)

					// V count=1 inflight=2 (!)

If there is a GC-candidate listening socket, lock/unlock its state. This
makes GC wait until the end of any ongoing connect() to that socket. After
flipping the lock, a possibly SCM-laden embryo is already enqueued. And if
there is another embryo coming, it can not possibly carry SCM_RIGHTS. At
this point, unix_inflight() can not happen because unix_gc_lock is already
taken. Inflight graph remains unaffected.

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

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

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

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

openeuler-ci-bot 修改了描述

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

状态 需分析 内容
已分析 1.影响性分析说明 In the Linux kernel, the following vulnerability has been resolved:af_unix: Fix garbage collector racing against connect()Garbage collector does not take into account the risk of embryo gettingenqueued during the garbage collection. If such embryo has a peer thatcarries SCM_RIGHTS, two consecutive passes of scan_children() may see adifferent set of children. Leading to an incorrectly elevated inflightcount, and then a dangling pointer within the gc_inflight_list.sockets are AF_UNIX/SOCK_STREAMS is an unconnected socketL is a listening in-flight socket bound to addr, not in fdtableV's fd will be passed via sendmsg(), gets inflight count bumpedconnect(S, addr)sendmsg(S, [V]); close(V)__unix_gc()----------------------------------------------------NS = unix_create1()skb1 = sock_wmalloc(NS)L = unix_find_other(addr)unix_state_lock(L)unix_peer(S) = NS// V count=1 inflight=0 NS = unix_peer(S) skb2 = sock_alloc()skb_queue_tail(NS, skb2[V])// V became in-flight// V count=2 inflight=1close(V)// V count=1 inflight=1// GC candidate condition metfor u in gc_inflight_list: if (total_refs == inflight_refs) add u to gc_candidates// gc_candidates={L, V}for u in gc_candidates: scan_children(u, dec_inflight)// embryo (skb1) was not// reachable from L yet, so V's// inflight remains unchanged__skb_queue_tail(L, skb1)unix_state_unlock(L)for u in gc_candidates: if (u.inflight) scan_children(u, inc_inflight_move_tail)// V count=1 inflight=2 (!)If there is a GC-candidate listening socket, lock/unlock its state. Thismakes GC wait until the end of any ongoing connect() to that socket. Afterflipping the lock, a possibly SCM-laden embryo is already enqueued. And ifthere is another embryo coming, it can not possibly carry SCM_RIGHTS. Atthis point, unix_inflight() can not happen because unix_gc_lock is alreadytaken. Inflight graph remains unaffected.
已分析 2.openEulerScore 7
已分析 3.openEulerVector AV:L/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H
已分析 4.受影响版本排查 openEuler-20.03-LTS-SP1:受影响,openEuler-20.03-LTS-SP4:受影响,openEuler-22.03-LTS:受影响,openEuler-22.03-LTS-SP1:受影响,openEuler-22.03-LTS-SP2:受影响,openEuler-22.03-LTS-SP3:受影响,openEuler-22.03-LTS-SP3:不受影响,master:不受影响,openEuler-22.03-LTS-Next:不受影响,openEuler-24.03-LTS:不受影响,openEuler-24.03-LTS-Next:不受影响
已分析 5.修复是否涉及abi变化 openEuler-20.03-LTS-SP1:否,openEuler-20.03-LTS-SP4:否,openEuler-22.03-LTS:否,openEuler-22.03-LTS-SP1:否,openEuler-22.03-LTS-SP2:否,openEuler-22.03-LTS-SP3:否,master:否,openEuler-22.03-LTS-Next:否,openEuler-24.03-LTS:否,openEuler-24.03-LTS-Next:否,openEuler-22.03-LTS-SP4:否

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

CVE-2024-26923

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

af_unix: Fix garbage collector racing against connect()

Garbage collector does not take into account the risk of embryo getting
enqueued during the garbage collection. If such embryo has a peer that
carries SCM_RIGHTS, two consecutive passes of scan_children() may see a
different set of children. Leading to an incorrectly elevated inflight
count, and then a dangling pointer within the gc_inflight_list.

sockets are AF_UNIX/SOCK_STREAM
S is an unconnected socket
L is a listening in-flight socket bound to addr, not in fdtable
V's fd will be passed via sendmsg(), gets inflight count bumped

connect(S, addr) sendmsg(S, [V]); close(V) __unix_gc()


NS = unix_create1()
skb1 = sock_wmalloc(NS)
L = unix_find_other(addr)
unix_state_lock(L)
unix_peer(S) = NS
// V count=1 inflight=0

		NS = unix_peer(S)
		skb2 = sock_alloc()
		skb_queue_tail(NS, skb2[V])

		// V became in-flight
		// V count=2 inflight=1

		close(V)

		// V count=1 inflight=1
		// GC candidate condition met

					for u in gc_inflight_list:
					  if (total_refs == inflight_refs)
					    add u to gc_candidates

					// gc_candidates={L, V}

					for u in gc_candidates:
					  scan_children(u, dec_inflight)

					// embryo (skb1) was not
					// reachable from L yet, so V's
					// inflight remains unchanged

__skb_queue_tail(L, skb1)
unix_state_unlock(L)
for u in gc_candidates:
if (u.inflight)
scan_children(u, inc_inflight_move_tail)

					// V count=1 inflight=2 (!)

If there is a GC-candidate listening socket, lock/unlock its state. This
makes GC wait until the end of any ongoing connect() to that socket. After
flipping the lock, a possibly SCM-laden embryo is already enqueued. And if
there is another embryo coming, it can not possibly carry SCM_RIGHTS. At
this point, unix_inflight() can not happen because unix_gc_lock is already
taken. Inflight graph remains unaffected.

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

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

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

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

openeuler-ci-bot 修改了描述

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

状态 需分析 内容
已分析 1.影响性分析说明 In the Linux kernel, the following vulnerability has been resolved:af_unix: Fix garbage collector racing against connect()Garbage collector does not take into account the risk of embryo gettingenqueued during the garbage collection. If such embryo has a peer thatcarries SCM_RIGHTS, two consecutive passes of scan_children() may see adifferent set of children. Leading to an incorrectly elevated inflightcount, and then a dangling pointer within the gc_inflight_list.sockets are AF_UNIX/SOCK_STREAMS is an unconnected socketL is a listening in-flight socket bound to addr, not in fdtableV's fd will be passed via sendmsg(), gets inflight count bumpedconnect(S, addr)sendmsg(S, [V]); close(V)__unix_gc()----------------------------------------------------NS = unix_create1()skb1 = sock_wmalloc(NS)L = unix_find_other(addr)unix_state_lock(L)unix_peer(S) = NS// V count=1 inflight=0 NS = unix_peer(S) skb2 = sock_alloc()skb_queue_tail(NS, skb2[V])// V became in-flight// V count=2 inflight=1close(V)// V count=1 inflight=1// GC candidate condition metfor u in gc_inflight_list: if (total_refs == inflight_refs) add u to gc_candidates// gc_candidates={L, V}for u in gc_candidates: scan_children(u, dec_inflight)// embryo (skb1) was not// reachable from L yet, so V's// inflight remains unchanged__skb_queue_tail(L, skb1)unix_state_unlock(L)for u in gc_candidates: if (u.inflight) scan_children(u, inc_inflight_move_tail)// V count=1 inflight=2 (!)If there is a GC-candidate listening socket, lock/unlock its state. Thismakes GC wait until the end of any ongoing connect() to that socket. Afterflipping the lock, a possibly SCM-laden embryo is already enqueued. And ifthere is another embryo coming, it can not possibly carry SCM_RIGHTS. Atthis point, unix_inflight() can not happen because unix_gc_lock is alreadytaken. Inflight graph remains unaffected.
已分析 2.openEulerScore 7
已分析 3.openEulerVector AV:L/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H
已分析 4.受影响版本排查 openEuler-20.03-LTS-SP1:受影响,openEuler-20.03-LTS-SP4:受影响,openEuler-22.03-LTS:受影响,openEuler-22.03-LTS-SP1:受影响,openEuler-22.03-LTS-SP2:受影响,openEuler-22.03-LTS-SP3:受影响,openEuler-22.03-LTS-SP4:不受影响,master:不受影响,openEuler-22.03-LTS-Next:不受影响,openEuler-24.03-LTS:不受影响,openEuler-24.03-LTS-Next:不受影响
已分析 5.修复是否涉及abi变化 openEuler-20.03-LTS-SP1:否,openEuler-20.03-LTS-SP4:否,openEuler-22.03-LTS:否,openEuler-22.03-LTS-SP1:否,openEuler-22.03-LTS-SP2:否,openEuler-22.03-LTS-SP3:否,master:否,openEuler-22.03-LTS-Next:否,openEuler-24.03-LTS:否,openEuler-24.03-LTS-Next:否,openEuler-22.03-LTS-SP4:否

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

郭梦琪 任务状态待办的 修改为已完成
openeuler-ci-bot 任务状态已完成 修改为待办的

@成坚 (CHENG Jian) ,@Xie XiuQi ,@YangYingliang ,@pi3orama ,@jiaoff ,@郭梦琪
关闭issue前,需要将受影响的分支在合并pr时关联上当前issue编号: #I9JFG0:CVE-2024-26923
受影响分支: openEuler-22.03-LTS/openEuler-22.03-LTS-SP1/openEuler-22.03-LTS-SP2
具体操作参考: https://gitee.com/help/articles/4142

openeuler-ci-bot 移除了
 
CVE/UNFIXED
标签
openeuler-ci-bot 移除了
 
sig/Kernel
标签
openeuler-ci-bot 添加了
 
CVE/UNFIXED
标签
openeuler-ci-bot 添加了
 
sig/Kernel
标签
openeuler-ci-bot 修改了描述
openeuler-ci-bot 修改了描述
openeuler-ci-bot 修改了描述
openeuler-ci-bot 修改了描述
openeuler-ci-bot 修改了描述
openeuler-ci-bot 修改了描述
openeuler-ci-bot 修改了描述
openeuler-ci-bot 修改了描述
openeuler-ci-bot 修改了描述
openeuler-ci-bot 修改了描述
openeuler-ci-bot 修改了描述
openeuler-ci-bot 修改了描述
openeuler-ci-bot 修改了描述
openeuler-ci-bot 修改了描述
openeuler-ci-bot 修改了描述

CVE-2024-26923

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

af_unix: Fix garbage collector racing against connect()

Garbage collector does not take into account the risk of embryo getting
enqueued during the garbage collection. If such embryo has a peer that
carries SCM_RIGHTS, two consecutive passes of scan_children() may see a
different set of children. Leading to an incorrectly elevated inflight
count, and then a dangling pointer within the gc_inflight_list.

sockets are AF_UNIX/SOCK_STREAM
S is an unconnected socket
L is a listening in-flight socket bound to addr, not in fdtable
V's fd will be passed via sendmsg(), gets inflight count bumped

connect(S, addr) sendmsg(S, [V]); close(V) __unix_gc()


NS = unix_create1()
skb1 = sock_wmalloc(NS)
L = unix_find_other(addr)
unix_state_lock(L)
unix_peer(S) = NS
// V count=1 inflight=0

		NS = unix_peer(S)
		skb2 = sock_alloc()
		skb_queue_tail(NS, skb2[V])

		// V became in-flight
		// V count=2 inflight=1

		close(V)

		// V count=1 inflight=1
		// GC candidate condition met

					for u in gc_inflight_list:
					  if (total_refs == inflight_refs)
					    add u to gc_candidates

					// gc_candidates={L, V}

					for u in gc_candidates:
					  scan_children(u, dec_inflight)

					// embryo (skb1) was not
					// reachable from L yet, so V's
					// inflight remains unchanged

__skb_queue_tail(L, skb1)
unix_state_unlock(L)
for u in gc_candidates:
if (u.inflight)
scan_children(u, inc_inflight_move_tail)

					// V count=1 inflight=2 (!)

If there is a GC-candidate listening socket, lock/unlock its state. This
makes GC wait until the end of any ongoing connect() to that socket. After
flipping the lock, a possibly SCM-laden embryo is already enqueued. And if
there is another embryo coming, it can not possibly carry SCM_RIGHTS. At
this point, unix_inflight() can not happen because unix_gc_lock is already
taken. Inflight graph remains unaffected.

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

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

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

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

openeuler-ci-bot 修改了描述

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

状态 需分析 内容
已分析 1.影响性分析说明 In the Linux kernel, the following vulnerability has been resolved:af_unix: Fix garbage collector racing against connect()Garbage collector does not take into account the risk of embryo gettingenqueued during the garbage collection. If such embryo has a peer thatcarries SCM_RIGHTS, two consecutive passes of scan_children() may see adifferent set of children. Leading to an incorrectly elevated inflightcount, and then a dangling pointer within the gc_inflight_list.sockets are AF_UNIX/SOCK_STREAMS is an unconnected socketL is a listening in-flight socket bound to addr, not in fdtableV's fd will be passed via sendmsg(), gets inflight count bumpedconnect(S, addr)sendmsg(S, [V]); close(V)__unix_gc()----------------------------------------------------NS = unix_create1()skb1 = sock_wmalloc(NS)L = unix_find_other(addr)unix_state_lock(L)unix_peer(S) = NS// V count=1 inflight=0 NS = unix_peer(S) skb2 = sock_alloc()skb_queue_tail(NS, skb2[V])// V became in-flight// V count=2 inflight=1close(V)// V count=1 inflight=1// GC candidate condition metfor u in gc_inflight_list: if (total_refs == inflight_refs) add u to gc_candidates// gc_candidates={L, V}for u in gc_candidates: scan_children(u, dec_inflight)// embryo (skb1) was not// reachable from L yet, so V's// inflight remains unchanged__skb_queue_tail(L, skb1)unix_state_unlock(L)for u in gc_candidates: if (u.inflight) scan_children(u, inc_inflight_move_tail)// V count=1 inflight=2 (!)If there is a GC-candidate listening socket, lock/unlock its state. Thismakes GC wait until the end of any ongoing connect() to that socket. Afterflipping the lock, a possibly SCM-laden embryo is already enqueued. And ifthere is another embryo coming, it can not possibly carry SCM_RIGHTS. Atthis point, unix_inflight() can not happen because unix_gc_lock is alreadytaken. Inflight graph remains unaffected.
已分析 2.openEulerScore 7
已分析 3.openEulerVector AV:L/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H
已分析 4.受影响版本排查 openEuler-20.03-LTS-SP1:受影响,openEuler-20.03-LTS-SP4:受影响,openEuler-22.03-LTS:受影响,openEuler-22.03-LTS-SP1:受影响,openEuler-22.03-LTS-SP2:受影响,openEuler-22.03-LTS-SP3:受影响,openEuler-22.03-LTS-SP4:不受影响,master:不受影响,openEuler-22.03-LTS-Next:不受影响,openEuler-24.03-LTS:不受影响,openEuler-24.03-LTS-Next:不受影响
已分析 5.修复是否涉及abi变化 openEuler-20.03-LTS-SP1:否,openEuler-20.03-LTS-SP4:否,openEuler-22.03-LTS:否,openEuler-22.03-LTS-SP1:否,openEuler-22.03-LTS-SP2:否,openEuler-22.03-LTS-SP3:否,master:否,openEuler-22.03-LTS-Next:否,openEuler-24.03-LTS:否,openEuler-24.03-LTS-Next:否,openEuler-22.03-LTS-SP4:否

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

openeuler-sync-bot 通过openeuler/kernel Pull Request !8084任务状态待办的 修改为已完成
openeuler-ci-bot 任务状态已完成 修改为待办的
openeuler-ci-bot 修改了描述
openeuler-sync-bot 通过openeuler/kernel Pull Request !8083任务状态待办的 修改为已完成

@成坚 (CHENG Jian) ,@Xie XiuQi ,@YangYingliang ,@pi3orama ,@jiaoff ,@openeuler-sync-bot
关闭issue前,需要将受影响的分支在合并pr时关联上当前issue编号: #I9JFG0:CVE-2024-26923
受影响分支: openEuler-22.03-LTS-SP1/openEuler-22.03-LTS
具体操作参考: https://gitee.com/help/articles/4142

openeuler-ci-bot 移除了
 
CVE/UNFIXED
标签
openeuler-ci-bot 移除了
 
sig/Kernel
标签
openeuler-ci-bot 添加了
 
CVE/UNFIXED
标签
openeuler-ci-bot 添加了
 
sig/Kernel
标签
openeuler-ci-bot 移除了
 
CVE/UNFIXED
标签
openeuler-ci-bot 移除了
 
sig/Kernel
标签
openeuler-ci-bot 添加了
 
CVE/FIXED
标签
openeuler-ci-bot 添加了
 
sig/Kernel
标签
openeuler-ci-bot 修改了描述

登录 后才可以发表评论

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

搜索帮助