Linux Kernel bis 6.6.36/6.9.7 drm_file drm_file_update_pid Pufferüberlauf

CVSS Meta Temp ScoreAktueller Exploitpreis (≈)CTI Interest Score
6.7$0-$5k0.00

Zusammenfassunginfo

In Linux Kernel bis 6.6.36/6.9.7 wurde eine kritische Schwachstelle gefunden. Hierbei geht es um die Funktion drm_file_update_pid der Komponente drm_file. Durch Manipulation mit unbekannten Daten kann eine Pufferüberlauf-Schwachstelle ausgenutzt werden. Diese Verwundbarkeit ist als CVE-2024-39486 gelistet. Ferner existiert ein Exploit. Ein Upgrade der betroffenen Komponente wird empfohlen.

Detailsinfo

In Linux Kernel bis 6.6.36/6.9.7 wurde eine Schwachstelle gefunden. Sie wurde als kritisch eingestuft. Betroffen ist die Funktion drm_file_update_pid der Komponente drm_file. Durch die Manipulation mit einer unbekannten Eingabe kann eine Pufferüberlauf-Schwachstelle ausgenutzt werden. CWE definiert das Problem als CWE-416. Die Auswirkungen sind bekannt für Vertraulichkeit, Integrität und Verfügbarkeit. Die Zusammenfassung von CVE lautet:

In the Linux kernel, the following vulnerability has been resolved: drm/drm_file: Fix pid refcounting race 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, , 1) mutex_unlock(&dev->filelist_mutex) begin drm_file_update_pid mutex_lock(&dev->filelist_mutex) rcu_replace_pointer(filp->pid, , 1) mutex_unlock(&dev->filelist_mutex) get_pid() synchronize_rcu() put_pid() *** pid B reaches refcount 0 and is freed here *** get_pid() *** UAF *** synchronize_rcu() put_pid() 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.

Das Advisory findet sich auf git.kernel.org. Die Verwundbarkeit wird seit dem 25.06.2024 als CVE-2024-39486 geführt. Sie gilt als schwierig ausnutzbar. Es sind technische Details sowie ein öffentlicher Exploit zur Schwachstelle bekannt.

Der Download des Exploits kann von packetstormsecurity.com geschehen. Er wird als proof-of-concept gehandelt. Für den Vulnerability Scanner Nessus wurde ein Plugin mit der ID 210060 (Ubuntu 22.04 LTS / 24.04 LTS : Linux kernel kernel vulnerabilities (USN-7089-1)) herausgegeben, womit die Existenz der Schwachstelle geprüft werden kann.

Ein Aktualisieren auf die Version 6.6.37 oder 6.9.8 vermag dieses Problem zu lösen. Die Schwachstelle lässt sich auch durch das Einspielen des Patches 16682588ead4/0acce2a5c619/4f2a129b33a2 lösen. Dieser kann von git.kernel.org bezogen werden. Als bestmögliche Massnahme wird das Upgrade auf eine neue Version empfohlen.

Unter anderem wird der Fehler auch in der Verwundbarkeitsdatenbank von Tenable (210060) dokumentiert. Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.

Produktinfo

Typ

Hersteller

Name

Version

Lizenz

Webseite

CPE 2.3info

CPE 2.2info

CVSSv4info

VulDB Vector: 🔍
VulDB Zuverlässigkeit: 🔍

CVSSv3info

VulDB Meta Base Score: 7.1
VulDB Meta Temp Score: 6.7

VulDB Base Score: 7.1
VulDB Temp Score: 6.4
VulDB Vector: 🔍
VulDB Zuverlässigkeit: 🔍

NVD Base Score: 7.0
NVD Vector: 🔍

CVSSv2info

AVACAuCIA
💳💳💳💳💳💳
💳💳💳💳💳💳
💳💳💳💳💳💳
VektorKomplexitätAuthentisierungVertraulichkeitIntegritätVerfügbarkeit
freischaltenfreischaltenfreischaltenfreischaltenfreischaltenfreischalten
freischaltenfreischaltenfreischaltenfreischaltenfreischaltenfreischalten
freischaltenfreischaltenfreischaltenfreischaltenfreischaltenfreischalten

VulDB Base Score: 🔍
VulDB Temp Score: 🔍
VulDB Zuverlässigkeit: 🔍

Exploitinginfo

Klasse: Pufferüberlauf
CWE: CWE-416 / CWE-119
CAPEC: 🔍
ATT&CK: 🔍

Physisch: Teilweise
Lokal: Ja
Remote: Teilweise

Verfügbarkeit: 🔍
Zugang: öffentlich
Status: Proof-of-Concept
Download: 🔍

EPSS Score: 🔍
EPSS Percentile: 🔍

Preisentwicklung: 🔍
Aktuelle Preisschätzung: 🔍

0-Dayfreischaltenfreischaltenfreischaltenfreischalten
Heutefreischaltenfreischaltenfreischaltenfreischalten

Nessus ID: 210060
Nessus Name: Ubuntu 22.04 LTS / 24.04 LTS : Linux kernel kernel vulnerabilities (USN-7089-1)

Threat Intelligenceinfo

Interesse: 🔍
Aktive Akteure: 🔍
Aktive APT Gruppen: 🔍

Gegenmassnahmeninfo

Empfehlung: Upgrade
Status: 🔍

0-Day Time: 🔍

Upgrade: Kernel 6.6.37/6.9.8
Patch: 16682588ead4/0acce2a5c619/4f2a129b33a2

Timelineinfo

25.06.2024 🔍
06.07.2024 +11 Tage 🔍
06.07.2024 +0 Tage 🔍
02.11.2024 +119 Tage 🔍

Quelleninfo

Hersteller: kernel.org

Advisory: git.kernel.org
Status: Bestätigt

CVE: CVE-2024-39486 (🔍)
GCVE (CVE): GCVE-0-2024-39486
GCVE (VulDB): GCVE-100-270427
scip Labs: https://www.scip.ch/?labs.20161013

Eintraginfo

Erstellt: 06.07.2024 11:49
Aktualisierung: 02.11.2024 03:02
Anpassungen: 06.07.2024 11:49 (58), 09.07.2024 04:15 (1), 05.08.2024 20:34 (10), 22.08.2024 16:05 (11), 02.11.2024 03:02 (2)
Komplett: 🔍
Cache ID: 216::103

Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.

Diskussion

Bisher keine Kommentare. Sprachen: de + en.

Bitte loggen Sie sich ein, um kommentieren zu können.

Interested in the pricing of exploits?

See the underground prices here!