跳转到帖子

Ubuntu: (Multiple Advisories) (CVE-2024-39486): Linux kernel kernel vulnerabilities

recommended_posts

发布于
  • Members

Ubuntu: (Multiple Advisories) (CVE-2024-39486): Linux kernel kernel vulnerabilities

Severity
7
CVSS
(AV:L/AC:M/Au:S/C:C/I:C/A:C)
Published
07/06/2024
Created
11/05/2024
Added
11/04/2024
Modified
01/30/2025

Description

In the Linux kernel, the following vulnerability has been resolved: drm/drm_file: Fix pid refcounting race <[email protected]>, Maxime Ripard <[email protected]>, Thomas Zimmermann <[email protected]> filp->pid is supposed to be a refcounted pointer; however, before this patch, drm_file_update_pid() only increments the refcount of a struct pid after storing a pointer to it in filp->pid and dropping the dev->filelist_mutex, making the following race possible: process A process B ========= ========= begin drm_file_update_pid mutex_lock(&dev->filelist_mutex) rcu_replace_pointer(filp->pid, <pid B>, 1) mutex_unlock(&dev->filelist_mutex) begin drm_file_update_pid mutex_lock(&dev->filelist_mutex) rcu_replace_pointer(filp->pid, <pid A>, 1) mutex_unlock(&dev->filelist_mutex) get_pid(<pid A>) synchronize_rcu() put_pid(<pid B>) *** pid B reaches refcount 0 and is freed here *** get_pid(<pid B>) *** UAF *** synchronize_rcu() put_pid(<pid A>) As far as I know, this race can only occur with CONFIG_PREEMPT_RCU=y because it requires RCU to detect a quiescent state in code that is not explicitly calling into the scheduler. This race leads to use-after-free of a "struct pid". It is probably somewhat hard to hit because process A has to pass through a synchronize_rcu() operation while process B is between mutex_unlock() and get_pid(). Fix it by ensuring that by the time a pointer to the current task's pid is stored in the file, an extra reference to the pid has been taken. This fix also removes the condition for synchronize_rcu(); I think that optimization is unnecessary complexity, since in that case we would usually have bailed out on the lockless check above.

Solution(s)

  • ubuntu-upgrade-linux-image-6-8-0-1002-gkeop
  • ubuntu-upgrade-linux-image-6-8-0-1013-gke
  • ubuntu-upgrade-linux-image-6-8-0-1014-ibm
  • ubuntu-upgrade-linux-image-6-8-0-1014-raspi
  • ubuntu-upgrade-linux-image-6-8-0-1015-oracle
  • ubuntu-upgrade-linux-image-6-8-0-1015-oracle-64k
  • ubuntu-upgrade-linux-image-6-8-0-1016-azure
  • ubuntu-upgrade-linux-image-6-8-0-1016-azure-fde
  • ubuntu-upgrade-linux-image-6-8-0-1016-gcp
  • ubuntu-upgrade-linux-image-6-8-0-1016-oem
  • ubuntu-upgrade-linux-image-6-8-0-1017-azure
  • ubuntu-upgrade-linux-image-6-8-0-1017-azure-fde
  • ubuntu-upgrade-linux-image-6-8-0-1017-gcp
  • ubuntu-upgrade-linux-image-6-8-0-1017-nvidia
  • ubuntu-upgrade-linux-image-6-8-0-1017-nvidia-64k
  • ubuntu-upgrade-linux-image-6-8-0-1017-nvidia-lowlatency
  • ubuntu-upgrade-linux-image-6-8-0-1017-nvidia-lowlatency-64k
  • ubuntu-upgrade-linux-image-6-8-0-1018-aws
  • ubuntu-upgrade-linux-image-6-8-0-48-generic
  • ubuntu-upgrade-linux-image-6-8-0-48-generic-64k
  • ubuntu-upgrade-linux-image-6-8-0-48-lowlatency
  • ubuntu-upgrade-linux-image-6-8-0-48-lowlatency-64k
  • ubuntu-upgrade-linux-image-aws
  • ubuntu-upgrade-linux-image-azure
  • ubuntu-upgrade-linux-image-azure-fde
  • ubuntu-upgrade-linux-image-gcp
  • ubuntu-upgrade-linux-image-generic
  • ubuntu-upgrade-linux-image-generic-64k
  • ubuntu-upgrade-linux-image-generic-64k-hwe-22-04
  • ubuntu-upgrade-linux-image-generic-64k-hwe-24-04
  • ubuntu-upgrade-linux-image-generic-hwe-22-04
  • ubuntu-upgrade-linux-image-generic-hwe-24-04
  • ubuntu-upgrade-linux-image-generic-lpae
  • ubuntu-upgrade-linux-image-gke
  • ubuntu-upgrade-linux-image-gkeop
  • ubuntu-upgrade-linux-image-gkeop-6-8
  • ubuntu-upgrade-linux-image-ibm
  • ubuntu-upgrade-linux-image-ibm-classic
  • ubuntu-upgrade-linux-image-ibm-lts-24-04
  • ubuntu-upgrade-linux-image-kvm
  • ubuntu-upgrade-linux-image-lowlatency
  • ubuntu-upgrade-linux-image-lowlatency-64k
  • ubuntu-upgrade-linux-image-lowlatency-64k-hwe-22-04
  • ubuntu-upgrade-linux-image-lowlatency-64k-hwe-24-04
  • ubuntu-upgrade-linux-image-lowlatency-hwe-22-04
  • ubuntu-upgrade-linux-image-lowlatency-hwe-24-04
  • ubuntu-upgrade-linux-image-nvidia
  • ubuntu-upgrade-linux-image-nvidia-6-8
  • ubuntu-upgrade-linux-image-nvidia-64k
  • ubuntu-upgrade-linux-image-nvidia-64k-6-8
  • ubuntu-upgrade-linux-image-nvidia-64k-hwe-22-04
  • ubuntu-upgrade-linux-image-nvidia-hwe-22-04
  • ubuntu-upgrade-linux-image-nvidia-lowlatency
  • ubuntu-upgrade-linux-image-nvidia-lowlatency-64k
  • ubuntu-upgrade-linux-image-oem-22-04
  • ubuntu-upgrade-linux-image-oem-22-04a
  • ubuntu-upgrade-linux-image-oem-22-04b
  • ubuntu-upgrade-linux-image-oem-22-04c
  • ubuntu-upgrade-linux-image-oem-22-04d
  • ubuntu-upgrade-linux-image-oem-24-04
  • ubuntu-upgrade-linux-image-oem-24-04a
  • ubuntu-upgrade-linux-image-oracle
  • ubuntu-upgrade-linux-image-oracle-64k
  • ubuntu-upgrade-linux-image-raspi
  • ubuntu-upgrade-linux-image-virtual
  • ubuntu-upgrade-linux-image-virtual-hwe-22-04
  • ubuntu-upgrade-linux-image-virtual-hwe-24-04

References

  • https://attackerkb.com/topics/cve-2024-39486
  • CVE - 2024-39486
  • USN-7089-1
  • USN-7089-2
  • USN-7089-3
  • USN-7089-4
  • USN-7089-5
  • USN-7089-6
  • USN-7089-7
  • USN-7090-1
  • USN-7095-1
  • USN-7156-1
View more
  • 查看数 701
  • 已创建
  • 最后回复

参与讨论

你可立刻发布并稍后注册。 如果你有帐户,立刻登录发布帖子。

游客
回帖…