Race Condition Affecting kernel-uek-modules-deprecated package, versions <0:6.12.0-102.36.5.2.el9uek


Severity

Recommended
0.0
high
0
10

Based on Oracle Linux security rating.

Threat Intelligence

EPSS
0.17% (8th percentile)

Do your applications use this vulnerable package?

In a few clicks we can analyze your entire application and see what components are vulnerable in your application, and suggest you quick fixes.

Test your applications
  • Snyk IDSNYK-ORACLE9-KERNELUEKMODULESDEPRECATED-10818172
  • published19 Jul 2025
  • disclosed27 Dec 2024

Introduced: 27 Dec 2024

CVE-2024-53186  (opens in a new tab)
CWE-362  (opens in a new tab)
CWE-416  (opens in a new tab)

How to fix?

Upgrade Oracle:9 kernel-uek-modules-deprecated to version 0:6.12.0-102.36.5.2.el9uek or higher.
This issue was patched in ELSA-2025-20530.

NVD Description

Note: Versions mentioned in the description apply only to the upstream kernel-uek-modules-deprecated package and not the kernel-uek-modules-deprecated package as distributed by Oracle. See How to fix? for Oracle:9 relevant fixed versions and status.

In the Linux kernel, the following vulnerability has been resolved:

ksmbd: fix use-after-free in SMB request handling

A race condition exists between SMB request handling in ksmbd_conn_handler_loop() and the freeing of ksmbd_conn in the workqueue handler handle_ksmbd_work(). This leads to a UAF.

  • KASAN: slab-use-after-free Read in handle_ksmbd_work
  • KASAN: slab-use-after-free in rtlock_slowlock_locked

This race condition arises as follows:

  • ksmbd_conn_handler_loop() waits for conn-&gt;r_count to reach zero: wait_event(conn-&gt;r_count_q, atomic_read(&amp;conn-&gt;r_count) == 0);
  • Meanwhile, handle_ksmbd_work() decrements conn-&gt;r_count using atomic_dec_return(&amp;conn-&gt;r_count), and if it reaches zero, calls ksmbd_conn_free(), which frees conn.
  • However, after handle_ksmbd_work() decrements conn-&gt;r_count, it may still access conn-&gt;r_count_q in the following line: waitqueue_active(&amp;conn-&gt;r_count_q) or wake_up(&amp;conn-&gt;r_count_q) This results in a UAF, as conn has already been freed.

The discovery of this UAF can be referenced in the following PR for syzkaller's support for SMB requests.

CVSS Base Scores

version 3.1