Linux Kernel hasta 5.16.4 USB usb_kill_urb desbordamiento de búfer

| CVSS Puntuación meta temporal | Precio actual del exploit (≈) | Puntuación de interés CTI |
|---|---|---|
| 7.4 | $0-$5k | 0.00 |
Resumen
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.
Detalles
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.
Producto
Escribe
Proveedor
Nombre
Versión
- 4.4.301
- 4.9.299
- 4.14.264
- 4.19.227
- 5.4.175
- 5.10.0
- 5.10.1
- 5.10.2
- 5.10.3
- 5.10.4
- 5.10.5
- 5.10.6
- 5.10.7
- 5.10.8
- 5.10.9
- 5.10.10
- 5.10.11
- 5.10.12
- 5.10.13
- 5.10.14
- 5.10.15
- 5.10.16
- 5.10.17
- 5.10.18
- 5.10.19
- 5.10.20
- 5.10.21
- 5.10.22
- 5.10.23
- 5.10.24
- 5.10.25
- 5.10.26
- 5.10.27
- 5.10.28
- 5.10.29
- 5.10.30
- 5.10.31
- 5.10.32
- 5.10.33
- 5.10.34
- 5.10.35
- 5.10.36
- 5.10.37
- 5.10.38
- 5.10.39
- 5.10.40
- 5.10.41
- 5.10.42
- 5.10.43
- 5.10.44
- 5.10.45
- 5.10.46
- 5.10.47
- 5.10.48
- 5.10.49
- 5.10.50
- 5.10.51
- 5.10.52
- 5.10.53
- 5.10.54
- 5.10.55
- 5.10.56
- 5.10.57
- 5.10.58
- 5.10.59
- 5.10.60
- 5.10.61
- 5.10.62
- 5.10.63
- 5.10.64
- 5.10.65
- 5.10.66
- 5.10.67
- 5.10.68
- 5.10.69
- 5.10.70
- 5.10.71
- 5.10.72
- 5.10.73
- 5.10.74
- 5.10.75
- 5.10.76
- 5.10.77
- 5.10.78
- 5.10.79
- 5.10.80
- 5.10.81
- 5.10.82
- 5.10.83
- 5.10.84
- 5.10.85
- 5.10.86
- 5.10.87
- 5.10.88
- 5.10.89
- 5.10.90
- 5.10.91
- 5.10.92
- 5.10.93
- 5.10.94
- 5.10.95
- 5.15.0
- 5.15.1
- 5.15.2
- 5.15.3
- 5.15.4
- 5.15.5
- 5.15.6
- 5.15.7
- 5.15.8
- 5.15.9
- 5.15.10
- 5.15.11
- 5.15.12
- 5.15.13
- 5.15.14
- 5.15.15
- 5.15.16
- 5.15.17
- 5.15.18
- 5.16.0
- 5.16.1
- 5.16.2
- 5.16.3
- 5.16.4
Licencia
Sitio web
- Proveedor: https://www.kernel.org/
CPE 2.3
CPE 2.2
CVSSv4
VulDB Vector: 🔍VulDB Confiabilidad: 🔍
CVSSv3
VulDB Puntuación meta base: 7.6VulDB 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: 🔍
CVSSv2
| AV | AC | Au | C | I | A |
|---|---|---|---|---|---|
| 💳 | 💳 | 💳 | 💳 | 💳 | 💳 |
| 💳 | 💳 | 💳 | 💳 | 💳 | 💳 |
| 💳 | 💳 | 💳 | 💳 | 💳 | 💳 |
| Vector | Complejidad | Autenticación | Confidencialidad | Integridad | Disponibilidad |
|---|---|---|---|---|---|
| Desbloquear | Desbloquear | Desbloquear | Desbloquear | Desbloquear | Desbloquear |
| Desbloquear | Desbloquear | Desbloquear | Desbloquear | Desbloquear | Desbloquear |
| Desbloquear | Desbloquear | Desbloquear | Desbloquear | Desbloquear | Desbloquear |
VulDB Puntuación base: 🔍
VulDB Puntuación temporal: 🔍
VulDB Confiabilidad: 🔍
Explotación
Clase: Desbordamiento de búferCWE: 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-Day | Desbloquear | Desbloquear | Desbloquear | Desbloquear |
|---|---|---|---|---|
| Hoy | Desbloquear | Desbloquear | Desbloquear | Desbloquear |
Nessus ID: 207773
Nessus Nombre: Oracle Linux 8 : kernel (ELSA-2024-7000)
Inteligencia de amenazas
Interés: 🔍Actores activos: 🔍
Grupos APT activos: 🔍
Contramedidas
Recomendación: ActualizaciónEstado: 🔍
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 tiempo
2024-06-20 🔍2024-06-20 🔍
2025-09-17 🔍
Fuentes
Proveedor: kernel.orgAviso: git.kernel.org
Estado: Confirmado
CVE: CVE-2022-48760 (🔍)
GCVE (CVE): GCVE-0-2022-48760
GCVE (VulDB): GCVE-100-269196
Artículo
Fecha de creación: 2024-06-20 13:37Actualizado: 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.
Sin comentarios aún. Idiomas: es + pt + en.
Por favor, inicie sesión para comentar.