CVE-2022-49149

In the Linux kernel, the following vulnerability has been resolved: rxrpc: Fix call timer start racing with call destruction The rxrpc_call struct has a timer used to handle various timed events relating to a call. This timer can get started from the packet input routines that are run in softirq mode with just the RCU read lock held. Unfortunately, because only the RCU read lock is held - and neither ref or other lock is taken - the call can start getting destroyed at the same time a packet comes in addressed to that call. This causes the timer - which was already stopped - to get restarted. Later, the timer dispatch code may then oops if the timer got deallocated first. Fix this by trying to take a ref on the rxrpc_call struct and, if successful, passing that ref along to the timer. If the timer was already running, the ref is discarded. The timer completion routine can then pass the ref along to the call's work item when it queues it. If the timer or work item where already queued/running, the extra ref is discarded.
Configurations

Configuration 1 (hide)

OR cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:4.15:-:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:4.15:rc2:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:4.15:rc3:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:4.15:rc4:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:4.15:rc5:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:4.15:rc6:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:4.15:rc7:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:4.15:rc8:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:4.15:rc9:*:*:*:*:*:*

History

23 Sep 2025, 13:53

Type Values Removed Values Added
CVSS v2 : unknown
v3 : unknown
v2 : unknown
v3 : 4.7
CWE CWE-362
First Time Linux
Linux linux Kernel
References () https://git.kernel.org/stable/c/051360e51341cd17738d82c15a8226010c7cb7f6 - () https://git.kernel.org/stable/c/051360e51341cd17738d82c15a8226010c7cb7f6 - Patch
References () https://git.kernel.org/stable/c/4a7f62f91933c8ae5308f9127fd8ea48188b6bc3 - () https://git.kernel.org/stable/c/4a7f62f91933c8ae5308f9127fd8ea48188b6bc3 - Patch
References () https://git.kernel.org/stable/c/54df5a37f1d951ed27fd47bf9b15a42279582110 - () https://git.kernel.org/stable/c/54df5a37f1d951ed27fd47bf9b15a42279582110 - Patch
References () https://git.kernel.org/stable/c/5e3c11144e557a9dbf9a2f6abe444689ef9d8aae - () https://git.kernel.org/stable/c/5e3c11144e557a9dbf9a2f6abe444689ef9d8aae - Patch
References () https://git.kernel.org/stable/c/8cbf4ae7a2833767d63114573e5f9a45740cc975 - () https://git.kernel.org/stable/c/8cbf4ae7a2833767d63114573e5f9a45740cc975 - Patch
CPE cpe:2.3:o:linux:linux_kernel:4.15:rc2:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:4.15:rc4:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:4.15:rc3:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:4.15:rc7:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:4.15:rc8:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:4.15:-:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:4.15:rc5:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:4.15:rc6:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:4.15:rc9:*:*:*:*:*:*
Summary
  • (es) En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: rxrpc: Se soluciona el inicio del temporizador de llamadas con la destrucción de llamadas La estructura rxrpc_call tiene un temporizador que se utiliza para gestionar varios eventos temporizados relacionados con una llamada. Este temporizador puede iniciarse desde las rutinas de entrada de paquetes que se ejecutan en modo softirq con solo el bloqueo de lectura RCU mantenido. Desafortunadamente, debido a que solo se mantiene el bloqueo de lectura RCU, y no se toma ninguna referencia ni ningún otro bloqueo, la llamada puede comenzar a destruirse al mismo tiempo que llega un paquete dirigido a esa llamada. Esto hace que el temporizador, que ya estaba detenido, se reinicie. Más tarde, el código de despacho del temporizador puede fallar si el temporizador se desasignó primero. Solucione esto intentando tomar una referencia en la estructura rxrpc_call y, si tiene éxito, pasando esa referencia al temporizador. Si el temporizador ya se estaba ejecutando, la referencia se descarta. La rutina de finalización del temporizador puede pasar la referencia al elemento de trabajo de la llamada cuando lo pone en cola. Si el temporizador o el elemento de trabajo ya estaban en cola o en ejecución, la referencia adicional se descarta.

26 Feb 2025, 07:00

Type Values Removed Values Added
New CVE

Information

Published : 2025-02-26 07:00

Updated : 2025-09-23 13:53


NVD link : CVE-2022-49149

Mitre link : CVE-2022-49149

CVE.ORG link : CVE-2022-49149


JSON object : View

Products Affected

linux

  • linux_kernel
CWE
CWE-362

Concurrent Execution using Shared Resource with Improper Synchronization ('Race Condition')