Race Condition Affecting libperf package, versions <0:5.14.0-362.8.1.el9_3


Severity

Recommended
high

Based on Red Hat Enterprise Linux security rating.

Threat Intelligence

EPSS
0.03% (7th 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-RHEL9-LIBPERF-15672179
  • published16 Mar 2026
  • disclosed30 Dec 2025

Introduced: 30 Dec 2025

CVE-2023-54195  (opens in a new tab)
CWE-366  (opens in a new tab)

How to fix?

Upgrade RHEL:9 libperf to version 0:5.14.0-362.8.1.el9_3 or higher.
This issue was patched in RHSA-2023:6583.

NVD Description

Note: Versions mentioned in the description apply only to the upstream libperf package and not the libperf package as distributed by RHEL. See How to fix? for RHEL:9 relevant fixed versions and status.

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

rxrpc: Fix timeout of a call that hasn't yet been granted a channel

afs_make_call() calls rxrpc_kernel_begin_call() to begin a call (which may get stalled in the background waiting for a connection to become available); it then calls rxrpc_kernel_set_max_life() to set the timeouts - but that starts the call timer so the call timer might then expire before we get a connection assigned - leading to the following oops if the call stalled:

BUG: kernel NULL pointer dereference, address: 0000000000000000
...
CPU: 1 PID: 5111 Comm: krxrpcio/0 Not tainted 6.3.0-rc7-build3+ #701
RIP: 0010:rxrpc_alloc_txbuf+0xc0/0x157
...
Call Trace:
 &lt;TASK&gt;
 rxrpc_send_ACK+0x50/0x13b
 rxrpc_input_call_event+0x16a/0x67d
 rxrpc_io_thread+0x1b6/0x45f
 ? _raw_spin_unlock_irqrestore+0x1f/0x35
 ? rxrpc_input_packet+0x519/0x519
 kthread+0xe7/0xef
 ? kthread_complete_and_exit+0x1b/0x1b
 ret_from_fork+0x22/0x30

Fix this by noting the timeouts in struct rxrpc_call when the call is created. The timer will be started when the first packet is transmitted.

It shouldn't be possible to trigger this directly from userspace through AF_RXRPC as sendmsg() will return EBUSY if the call is in the waiting-for-conn state if it dropped out of the wait due to a signal.

CVSS Base Scores

version 3.1