Логотип exploitDog
Консоль
Логотип exploitDog

exploitDog

redhat логотип

CVE-2026-23066

Опубликовано: 04 фев. 2026
Источник: redhat
CVSS3: 7.4
EPSS Низкий

Описание

In the Linux kernel, the following vulnerability has been resolved: rxrpc: Fix recvmsg() unconditional requeue If rxrpc_recvmsg() fails because MSG_DONTWAIT was specified but the call at the front of the recvmsg queue already has its mutex locked, it requeues the call - whether or not the call is already queued. The call may be on the queue because MSG_PEEK was also passed and so the call was not dequeued or because the I/O thread requeued it. The unconditional requeue may then corrupt the recvmsg queue, leading to things like UAFs or refcount underruns. Fix this by only requeuing the call if it isn't already on the queue - and moving it to the front if it is already queued. If we don't queue it, we have to put the ref we obtained by dequeuing it. Also, MSG_PEEK doesn't dequeue the call so shouldn't call rxrpc_notify_socket() for the call if we didn't use up all the data on the queue, so fix that also.

A flaw was found in the Linux kernel. A local unprivileged process can exploit an unsafe requeue path in the rxrpc_recvmsg function by using AF_RXRPC sockets with MSG_DONTWAIT and MSG_PEEK flags. This improper handling of the receive message queue can lead to memory corruption, such as Use-After-Frees (UAFs) or reference count underruns. The most likely outcome is a kernel crash or memory safety warning, resulting in a denial of service. There is also a conservative possibility of broader impact if the memory corruption is exploitable.

Отчет

An unsafe requeue path in rxrpc_recvmsg can corrupt the recvmsg queue because a call is requeued unconditionally even if it is already on the queue due to MSG_PEEK or a concurrent IO thread requeue. This can corrupt the linked list bookkeeping and can manifest as use after free or refcount underrun in RXRPC call objects. The most likely outcome is a kernel crash or memory safety warning which results in denial of service. For the CVSS the PR is N because a local unprivileged process can trigger the behavior by using AF_RXRPC sockets and recvmsg with MSG_DONTWAIT and MSG_PEEK patterns. The issue is not directly network reachable as a pure remote packet trigger because the vulnerable operation is in the local recvmsg path. Remote traffic can influence timing and queue state but a local caller is still needed to exercise the buggy logic. Impact is primarily availability with a conservative possibility of broader impact if the memory corruption is exploitable.

Меры по смягчению последствий

To mitigate this issue, prevent module rxrpc from being loaded. Please see https://access.redhat.com/solutions/41278 for how to blacklist a kernel module to prevent it from loading automatically.

Затронутые пакеты

ПлатформаПакетСостояниеРекомендацияРелиз
Red Hat Enterprise Linux 10kernelAffected
Red Hat Enterprise Linux 6kernelNot affected
Red Hat Enterprise Linux 7kernelNot affected
Red Hat Enterprise Linux 7kernel-rtNot affected
Red Hat Enterprise Linux 8kernelNot affected
Red Hat Enterprise Linux 8kernel-rtNot affected
Red Hat Enterprise Linux 9kernelAffected
Red Hat Enterprise Linux 9kernel-rtAffected

Показывать по

Дополнительная информация

Статус:

Moderate
Дефект:
CWE-416
https://bugzilla.redhat.com/show_bug.cgi?id=2436805kernel: Linux kernel: Denial of Service via unsafe requeue in rxrpc_recvmsg

EPSS

Процентиль: 3%
0.00015
Низкий

7.4 High

CVSS3

Связанные уязвимости

CVSS3: 5.5
ubuntu
около 2 месяцев назад

In the Linux kernel, the following vulnerability has been resolved: rxrpc: Fix recvmsg() unconditional requeue If rxrpc_recvmsg() fails because MSG_DONTWAIT was specified but the call at the front of the recvmsg queue already has its mutex locked, it requeues the call - whether or not the call is already queued. The call may be on the queue because MSG_PEEK was also passed and so the call was not dequeued or because the I/O thread requeued it. The unconditional requeue may then corrupt the recvmsg queue, leading to things like UAFs or refcount underruns. Fix this by only requeuing the call if it isn't already on the queue - and moving it to the front if it is already queued. If we don't queue it, we have to put the ref we obtained by dequeuing it. Also, MSG_PEEK doesn't dequeue the call so shouldn't call rxrpc_notify_socket() for the call if we didn't use up all the data on the queue, so fix that also.

CVSS3: 5.5
nvd
около 2 месяцев назад

In the Linux kernel, the following vulnerability has been resolved: rxrpc: Fix recvmsg() unconditional requeue If rxrpc_recvmsg() fails because MSG_DONTWAIT was specified but the call at the front of the recvmsg queue already has its mutex locked, it requeues the call - whether or not the call is already queued. The call may be on the queue because MSG_PEEK was also passed and so the call was not dequeued or because the I/O thread requeued it. The unconditional requeue may then corrupt the recvmsg queue, leading to things like UAFs or refcount underruns. Fix this by only requeuing the call if it isn't already on the queue - and moving it to the front if it is already queued. If we don't queue it, we have to put the ref we obtained by dequeuing it. Also, MSG_PEEK doesn't dequeue the call so shouldn't call rxrpc_notify_socket() for the call if we didn't use up all the data on the queue, so fix that also.

msrc
13 дней назад

rxrpc: Fix recvmsg() unconditional requeue

CVSS3: 5.5
debian
около 2 месяцев назад

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

CVSS3: 5.5
github
около 2 месяцев назад

In the Linux kernel, the following vulnerability has been resolved: rxrpc: Fix recvmsg() unconditional requeue If rxrpc_recvmsg() fails because MSG_DONTWAIT was specified but the call at the front of the recvmsg queue already has its mutex locked, it requeues the call - whether or not the call is already queued. The call may be on the queue because MSG_PEEK was also passed and so the call was not dequeued or because the I/O thread requeued it. The unconditional requeue may then corrupt the recvmsg queue, leading to things like UAFs or refcount underruns. Fix this by only requeuing the call if it isn't already on the queue - and moving it to the front if it is already queued. If we don't queue it, we have to put the ref we obtained by dequeuing it. Also, MSG_PEEK doesn't dequeue the call so shouldn't call rxrpc_notify_socket() for the call if we didn't use up all the data on the queue, so fix that also.

EPSS

Процентиль: 3%
0.00015
Низкий

7.4 High

CVSS3