109 Star 72 Fork 299

src-openEuler/kernel

 / 详情

CVE-2025-21951

进行中
CVE和安全问题 拥有者
创建于  
2025-04-02 00:56

一、漏洞信息
漏洞编号:CVE-2025-21951
漏洞归属组件:kernel
漏洞归属的版本:4.19.140,4.19.194,4.19.90,5.10.0,6.1.19,6.4.0,6.6.0
CVSS V3.0分值:
BaseScore:5.5 Medium
Vector:CVSS:3.0/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
漏洞简述:
In the Linux kernel, the following vulnerability has been resolved mhi: host: pci_generic: Use pci_try_reset_function() to avoid deadlockThere are multiple places from where the recovery work gets scheduledasynchronously. Also, there are multiple places where the caller waitssynchronously for the recovery to be completed. One such place is duringthe PM shutdown() callback.If the device is not alive during recovery_work, it will try to reset thedevice using pci_reset_function(). This function internally will take thedevice_lock() first before resetting the device. By this time, if the lockhas already been acquired, then recovery_work will get stalled whilewaiting for the lock. And if the lock was already acquired by the callerwhich waits for the recovery_work to be completed, it will lead todeadlock.This is what happened on the X1E80100 CRD device when the device diedbefore shutdown() callback. Driver core calls the driver s shutdown()callback while holding the device_lock() leading to deadlock.And this deadlock scenario can occur on other paths as well, like duringthe PM suspend() callback, where the driver core would hold thedevice_lock() before calling driver s suspend() callback. And if therecovery_work was already started, it could lead to deadlock. This is alsoobserved on the X1E80100 CRD.So to fix both issues, use pci_try_reset_function() in recovery_work. Thisfunction first checks for the availability of the device_lock() beforetrying to reset the device. If the lock is available, it will acquire itand reset the device. Otherwise, it will return -EAGAIN. If that happens,recovery_work will fail with the error message Recovery failed as notmuch could be done.
漏洞公开时间:2025-04-02 00:15:26
漏洞创建时间:2025-04-02 00:56:23
漏洞详情参考链接:
https://nvd.nist.gov/vuln/detail/CVE-2025-21951

更多参考(点击展开)
参考来源 参考链接 来源链接
416baaa9-dc9f-4396-8d5f-8c081fb06d67 https://git.kernel.org/stable/c/1f9eb7078bc6b5fb5cbfbcb37c4bc01685332b95
416baaa9-dc9f-4396-8d5f-8c081fb06d67 https://git.kernel.org/stable/c/62505657475c245c9cd46e42ac01026d1e61f027
416baaa9-dc9f-4396-8d5f-8c081fb06d67 https://git.kernel.org/stable/c/7746f3bb8917fccb4571a576f3837d80fc513054
416baaa9-dc9f-4396-8d5f-8c081fb06d67 https://git.kernel.org/stable/c/7a5ffadd54fe2662f5c99cdccf30144d060376f7
416baaa9-dc9f-4396-8d5f-8c081fb06d67 https://git.kernel.org/stable/c/985d3cf56d8745ca637deee273929e01df449f85
416baaa9-dc9f-4396-8d5f-8c081fb06d67 https://git.kernel.org/stable/c/a321d163de3d8aa38a6449ab2becf4b1581aed96
suse_bugzilla http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2025-21951 https://bugzilla.suse.com/show_bug.cgi?id=1240718
suse_bugzilla https://www.cve.org/CVERecord?id=CVE-2025-21951 https://bugzilla.suse.com/show_bug.cgi?id=1240718
suse_bugzilla https://git.kernel.org/stable/c/1f9eb7078bc6b5fb5cbfbcb37c4bc01685332b95 https://bugzilla.suse.com/show_bug.cgi?id=1240718
suse_bugzilla https://git.kernel.org/stable/c/62505657475c245c9cd46e42ac01026d1e61f027 https://bugzilla.suse.com/show_bug.cgi?id=1240718
suse_bugzilla https://git.kernel.org/stable/c/7746f3bb8917fccb4571a576f3837d80fc513054 https://bugzilla.suse.com/show_bug.cgi?id=1240718
suse_bugzilla https://git.kernel.org/stable/c/7a5ffadd54fe2662f5c99cdccf30144d060376f7 https://bugzilla.suse.com/show_bug.cgi?id=1240718
suse_bugzilla https://git.kernel.org/stable/c/985d3cf56d8745ca637deee273929e01df449f85 https://bugzilla.suse.com/show_bug.cgi?id=1240718
suse_bugzilla https://git.kernel.org/stable/c/a321d163de3d8aa38a6449ab2becf4b1581aed96 https://bugzilla.suse.com/show_bug.cgi?id=1240718
suse_bugzilla https://bugzilla.redhat.com/show_bug.cgi?id=2356663 https://bugzilla.suse.com/show_bug.cgi?id=1240718
suse_bugzilla https://git.kernel.org/pub/scm/linux/security/vulns.git/plain/cve/published/2025/CVE-2025-21951.mbox https://bugzilla.suse.com/show_bug.cgi?id=1240718
redhat_bugzilla https://lore.kernel.org/linux-cve-announce/2025040137-CVE-2025-21951-5e0f@gregkh/T https://bugzilla.redhat.com/show_bug.cgi?id=2356663
anolis https://anas.openanolis.cn/cves/detail/CVE-2025-21951

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

详情(点击展开)
影响的包 修复版本 修复补丁 问题引入补丁 来源
https://git.kernel.org/stable/c/1f9eb7078bc6b5fb5cbfbcb37c4bc01685332b95 nvd
https://git.kernel.org/stable/c/62505657475c245c9cd46e42ac01026d1e61f027 nvd
https://git.kernel.org/stable/c/7746f3bb8917fccb4571a576f3837d80fc513054 nvd
https://git.kernel.org/stable/c/7a5ffadd54fe2662f5c99cdccf30144d060376f7 nvd
https://git.kernel.org/stable/c/985d3cf56d8745ca637deee273929e01df449f85 nvd
https://git.kernel.org/stable/c/a321d163de3d8aa38a6449ab2becf4b1581aed96 nvd
linux_kernel 5.15.179 https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=7746f3bb8917fccb4571a576f3837d80fc513054Issue https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=7389337f0a78ea099c47f0af08f64f20c52ab4ba linuxkernelcves
linux_kernel 6.1.131 https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=7a5ffadd54fe2662f5c99cdccf30144d060376f7Issue https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=7389337f0a78ea099c47f0af08f64f20c52ab4ba linuxkernelcves
linux_kernel 6.6.83 https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=1f9eb7078bc6b5fb5cbfbcb37c4bc01685332b95Issue https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=7389337f0a78ea099c47f0af08f64f20c52ab4ba linuxkernelcves
linux_kernel 6.12.19 https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=985d3cf56d8745ca637deee273929e01df449f85Issue https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=7389337f0a78ea099c47f0af08f64f20c52ab4ba linuxkernelcves
linux_kernel 6.13.7 https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=62505657475c245c9cd46e42ac01026d1e61f027Issue https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=7389337f0a78ea099c47f0af08f64f20c52ab4ba linuxkernelcves
linux_kernel 6.14 https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=a321d163de3d8aa38a6449ab2becf4b1581aed96Please https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=7389337f0a78ea099c47f0af08f64f20c52ab4ba linuxkernelcves

二、漏洞分析结构反馈
影响性分析说明:
In the Linux kernel, the following vulnerability has been resolved mhi: host: pci_generic: Use pci_try_reset_function() to avoid deadlockThere are multiple places from where the recovery work gets scheduledasynchronously. Also, there are multiple places where the caller waitssynchronously for the recovery to be completed. One such place is duringthe PM shutdown() callback.If the device is not alive during recovery_work, it will try to reset thedevice using pci_reset_function(). This function internally will take thedevice_lock() first before resetting the device. By this time, if the lockhas already been acquired, then recovery_work will get stalled whilewaiting for the lock. And if the lock was already acquired by the callerwhich waits for the recovery_work to be completed, it will lead todeadlock.This is what happened on the X1E80100 CRD device when the device diedbefore shutdown() callback. Driver core calls the driver s shutdown()callback while holding the device_lock() leading to deadlock.And this deadlock scenario can occur on other paths as well, like duringthe PM suspend() callback, where the driver core would hold thedevice_lock() before calling driver s suspend() callback. And if therecovery_work was already started, it could lead to deadlock. This is alsoobserved on the X1E80100 CRD.So to fix both issues, use pci_try_reset_function() in recovery_work. Thisfunction first checks for the availability of the device_lock() beforetrying to reset the device. If the lock is available, it will acquire itand reset the device. Otherwise, it will return -EAGAIN. If that happens,recovery_work will fail with the error message Recovery failed as notmuch could be done.
openEuler评分:
5.5
Vector:CVSS:3.0/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
受影响版本排查(受影响/不受影响):
1.openEuler-24.03-LTS(6.6.0):受影响
2.openEuler-24.03-LTS-SP1(6.6.0):受影响
3.openEuler-24.03-LTS-SP2(6.6.0):受影响
4.openEuler-20.03-LTS-SP4(4.19.90):不受影响
5.openEuler-22.03-LTS-SP3(5.10.0):不受影响
6.openEuler-22.03-LTS-SP4(5.10.0):不受影响
7.master(6.6.0):不受影响
8.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):否
8.openEuler-24.03-LTS-SP2(6.6.0):否

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

评论 (7)

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

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.

openeuler-ci-bot 添加了
 
sig/Kernel
标签
1个月前
参考网址 关联pr 状态 补丁链接
https://nvd.nist.gov/vuln/detail/CVE-2025-21951
https://ubuntu.com/security/CVE-2025-21951
https://www.opencve.io/cve/CVE-2025-21951
https://bugzilla.redhat.com/show_bug.cgi?id=CVE-2025-21951
https://security-tracker.debian.org/tracker/CVE-2025-21951
http://www.cnnvd.org.cn/web/vulnerability/queryLds.tag?qcvCnnvdid=CVE-2025-21951

说明:抱歉,当前工具暂未找到推荐补丁,请人工查找或者之后评论'/find-patch'尝试再次查找。
若人工查找到补丁,烦请在此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 修改了描述 1个月前
openeuler-ci-bot 修改了描述 1个月前

CVE-2025-21951

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

bus: mhi: host: pci_generic: Use pci_try_reset_function() to avoid deadlock

There are multiple places from where the recovery work gets scheduled
asynchronously. Also, there are multiple places where the caller waits
synchronously for the recovery to be completed. One such place is during
the PM shutdown() callback.

If the device is not alive during recovery_work, it will try to reset the
device using pci_reset_function(). This function internally will take the
device_lock() first before resetting the device. By this time, if the lock
has already been acquired, then recovery_work will get stalled while
waiting for the lock. And if the lock was already acquired by the caller
which waits for the recovery_work to be completed, it will lead to
deadlock.

This is what happened on the X1E80100 CRD device when the device died
before shutdown() callback. Driver core calls the driver's shutdown()
callback while holding the device_lock() leading to deadlock.

And this deadlock scenario can occur on other paths as well, like during
the PM suspend() callback, where the driver core would hold the
device_lock() before calling driver's suspend() callback. And if the
recovery_work was already started, it could lead to deadlock. This is also
observed on the X1E80100 CRD.

So to fix both issues, use pci_try_reset_function() in recovery_work. This
function first checks for the availability of the device_lock() before
trying to reset the device. If the lock is available, it will acquire it
and reset the device. Otherwise, it will return -EAGAIN. If that happens,
recovery_work will fail with the error message "Recovery failed" as not
much could be done.

The Linux kernel CVE team has assigned CVE-2025-21951 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 修改了描述 1个月前
openeuler-ci-bot 任务状态待办的 修改为进行中 1个月前
openeuler-ci-bot 修改了描述 1个月前
openeuler-ci-bot 修改了描述 27天前
openeuler-ci-bot 计划开始日期设置为2025-04-02 27天前
openeuler-ci-bot 计划截止日期设置为2025-05-02 27天前
openeuler-ci-bot 优先级设置为次要 27天前
openeuler-ci-bot 修改了描述 25天前

CVE-2025-21951

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

bus: mhi: host: pci_generic: Use pci_try_reset_function() to avoid deadlock

There are multiple places from where the recovery work gets scheduled
asynchronously. Also, there are multiple places where the caller waits
synchronously for the recovery to be completed. One such place is during
the PM shutdown() callback.

If the device is not alive during recovery_work, it will try to reset the
device using pci_reset_function(). This function internally will take the
device_lock() first before resetting the device. By this time, if the lock
has already been acquired, then recovery_work will get stalled while
waiting for the lock. And if the lock was already acquired by the caller
which waits for the recovery_work to be completed, it will lead to
deadlock.

This is what happened on the X1E80100 CRD device when the device died
before shutdown() callback. Driver core calls the driver's shutdown()
callback while holding the device_lock() leading to deadlock.

And this deadlock scenario can occur on other paths as well, like during
the PM suspend() callback, where the driver core would hold the
device_lock() before calling driver's suspend() callback. And if the
recovery_work was already started, it could lead to deadlock. This is also
observed on the X1E80100 CRD.

So to fix both issues, use pci_try_reset_function() in recovery_work. This
function first checks for the availability of the device_lock() before
trying to reset the device. If the lock is available, it will acquire it
and reset the device. Otherwise, it will return -EAGAIN. If that happens,
recovery_work will fail with the error message "Recovery failed" as not
much could be done.

openEuler评分:(评分和向量)
5.5
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/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:受影响
8.openEuler-24.03-LTS-SP2:受影响

原因说明:
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:正常修复
8.openEuler-24.03-LTS-SP2:正常修复

修复是否涉及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:否
8.openEuler-24.03-LTS-SP2:否

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

openeuler-ci-bot 修改了描述 9天前
openeuler-ci-bot 计划开始日期2025-04-02 修改为2025-04-11 3天前
openeuler-ci-bot 计划截止日期2025-05-02 修改为2025-05-11 3天前
openeuler-ci-bot 修改了描述 11小时前

登录 后才可以发表评论

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

搜索帮助