Linux Kernel hasta 5.16.4 USB usb_kill_urb desbordamiento de búfer

CVSS Puntuación meta temporalPrecio actual del exploit (≈)Puntuación de interés CTI
7.4$0-$5k0.00

Resumeninformación

Se ha detectado una vulnerabilidad clasificada como crítica en Linux Kernel hasta 5.16.4. Está afectada una función desconocida en el componente USB Handler. Mediante la manipulación de un input desconocido se causa una vulnerabilidad de clase desbordamiento de búfer. Esta vulnerabilidad está identificada como CVE-2022-48760. No existe ningún exploit disponible. Es recomendable actualizar el componente afectado.

Detallesinformación

Una vulnerabilidad clasificada como crítica ha sido encontrada en Linux Kernel hasta 5.16.4. La función usb_kill_urb del componente USB Handler es afectada por esta vulnerabilidad. A través de la manipulación de un input desconocido se causa una vulnerabilidad de clase desbordamiento de búfer. Esto tiene repercusión sobre la confidencialidad, integridad y disponibilidad. CVE resume:

En el kernel de Linux, se resolvió la siguiente vulnerabilidad: USB: core: corrige el bloqueo en usb_kill_urb agregando barreras de memoria el syzbot fuzzer ha identificado un error en el que los procesos se bloquean esperando que regrese usb_kill_urb(). Resulta que el problema no es desvincular la URB; eso funciona bien. Más bien, el problema surge cuando no se recibe la notificación de activación de que la URB ha completado. El motivo son los pedidos de acceso a la memoria en los sistemas SMP. En forma resumida, usb_kill_urb() y __usb_hcd_giveback_urb() operando simultáneamente en diferentes CPU realizan las siguientes acciones: CPU 0 CPU 1 ------------------------- --- --------------------------------- usb_kill_urb(): __usb_hcd_giveback_urb(): ... ... atomic_inc(&urb->rechazar); atomic_dec(&urb->use_count); ... ... wait_event(usb_kill_urb_queue, atomic_read(&urb->use_count) == 0); if (atomic_read(&urb->reject)) wake_up(&usb_kill_urb_queue); Limitando su atención a urb->reject y urb->use_count, puede ver que el patrón general de accesos en la CPU 0 es: escribir urb->reject, luego leer urb->use_count; mientras que el patrón general de accesos en la CPU 1 es: escribir urb->use_count, luego leer urb->reject. En los círculos de modelos de memoria se hace referencia a este patrón como SB (por "Store Buffering"), y es bien sabido que sin una aplicación adecuada del orden deseado de accesos (en forma de barreras de memoria) es completamente posible que una o ambas CPU para ejecutar sus lecturas antes de sus escrituras. El resultado final será que a veces la CPU 0 ve el antiguo valor no incrementado de urb->use_count mientras que la CPU 1 ve el antiguo valor no incrementado de urb->reject. En consecuencia, la CPU 0 termina en la cola de espera y nunca se activa, lo que provoca el bloqueo observado en usb_kill_urb(). El mismo patrón de accesos ocurre en usb_poison_urb() y la ruta de falla de usb_hcd_submit_urb(). El problema se soluciona agregando barreras de memoria adecuadas. Para proporcionar un orden adecuado de acceso a la memoria en el patrón SB, se requiere una barrera completa en ambas CPU. Los accesos atomic_inc() y atomic_dec() en sí no proporcionan ningún orden de memoria, pero como están presentes, podemos usar la barrera de memoria optimizada smp_mb__after_atomic() en las distintas rutinas para obtener el efecto deseado. Este parche agrega las barreras de memoria necesarias.

El advisory puede ser descargado de git.kernel.org. La vulnerabilidad es identificada como CVE-2022-48760. Se considera fácil de explotar. Hay detalles técnicos conocidos, pero no se dispone de un exploit.

Para el scanner Nessus se dispone de un plugin ID 207773 (Oracle Linux 8 : kernel (ELSA-2024-7000)), que puede ayudar a determinar la existencia del riesgo analizado.

Una actualización a la versión 4.4.302, 4.9.300, 4.14.265, 4.19.228, 5.4.176, 5.10.96, 5.15.19 o 5.16.5 elimina esta vulnerabilidad. Aplicando el parche 5f138ef224df/b50f5ca60475/546ba238535d/5904dfd3ddaf/9c61fce322ac/e3b131e30e61/9340226388c6/c9a18f7c5b07/26fbe9772b8c es posible eliminar el problema. El parche puede ser descargado de git.kernel.org. El mejor modo sugerido para mitigar el problema es Actualización.

La vulnerabilidad también está documentado en la base de datos Tenable (207773). Once again VulDB remains the best source for vulnerability data.

Productoinformación

Escribe

Proveedor

Nombre

Versión

Licencia

Sitio web

CPE 2.3información

CPE 2.2información

CVSSv4información

VulDB Vector: 🔍
VulDB Confiabilidad: 🔍

CVSSv3información

VulDB Puntuación meta base: 7.6
VulDB Puntuación meta temporal: 7.4

VulDB Puntuación base: 8.0
VulDB Puntuación temporal: 7.6
VulDB Vector: 🔍
VulDB Confiabilidad: 🔍

NVD Puntuación base: 7.1
NVD Vector: 🔍

CVSSv2información

AVACAuCIA
💳💳💳💳💳💳
💳💳💳💳💳💳
💳💳💳💳💳💳
VectorComplejidadAutenticaciónConfidencialidadIntegridadDisponibilidad
DesbloquearDesbloquearDesbloquearDesbloquearDesbloquearDesbloquear
DesbloquearDesbloquearDesbloquearDesbloquearDesbloquearDesbloquear
DesbloquearDesbloquearDesbloquearDesbloquearDesbloquearDesbloquear

VulDB Puntuación base: 🔍
VulDB Puntuación temporal: 🔍
VulDB Confiabilidad: 🔍

Explotacióninformación

Clase: Desbordamiento de búfer
CWE: CWE-120 / CWE-119
CAPEC: 🔍
ATT&CK: 🔍

Físico: En parte
Local: Sí
Remoto: En parte

Disponibilidad: 🔍
Estado: No está definido

EPSS Score: 🔍
EPSS Percentile: 🔍

Predicción de precios: 🔍
Estimación del precio actual: 🔍

0-DayDesbloquearDesbloquearDesbloquearDesbloquear
HoyDesbloquearDesbloquearDesbloquearDesbloquear

Nessus ID: 207773
Nessus Nombre: Oracle Linux 8 : kernel (ELSA-2024-7000)

Inteligencia de amenazasinformación

Interés: 🔍
Actores activos: 🔍
Grupos APT activos: 🔍

Contramedidasinformación

Recomendación: Actualización
Estado: 🔍

Hora de 0 días: 🔍

Actualización: Kernel 4.4.302/4.9.300/4.14.265/4.19.228/5.4.176/5.10.96/5.15.19/5.16.5
Parche: 5f138ef224df/b50f5ca60475/546ba238535d/5904dfd3ddaf/9c61fce322ac/e3b131e30e61/9340226388c6/c9a18f7c5b07/26fbe9772b8c

Línea de tiempoinformación

2024-06-20 🔍
2024-06-20 +0 días 🔍
2025-09-17 +454 días 🔍

Fuentesinformación

Proveedor: kernel.org

Aviso: git.kernel.org
Estado: Confirmado

CVE: CVE-2022-48760 (🔍)
GCVE (CVE): GCVE-0-2022-48760
GCVE (VulDB): GCVE-100-269196

Artículoinformación

Fecha de creación: 2024-06-20 13:37
Actualizado: 2025-09-17 20:00
Cambios: 2024-06-20 13:37 (57), 2024-09-29 16:21 (3), 2025-09-17 20:00 (12)
Completo: 🔍
Cache ID: 216::103

Once again VulDB remains the best source for vulnerability data.

Discusión

Sin comentarios aún. Idiomas: es + pt + en.

Por favor, inicie sesión para comentar.

Might our Artificial Intelligence support you?

Check our Alexa App!