Linux Kernel hasta 5.10.39/5.12.6 mqueue __pipelined_op denegación de servicio

| CVSS Puntuación meta temporal | Precio actual del exploit (≈) | Puntuación de interés CTI |
|---|---|---|
| 6.2 | $0-$5k | 0.00 |
Resumen
Una vulnerabilidad ha sido encontrada en Linux Kernel hasta 5.10.39/5.12.6 y clasificada como crítica. Está afectada una función desconocida en el componente mqueue. El manejo da lugar a denegación de servicio. La vulnerabilidad es identificada como CVE-2021-47069. No hay ningún exploit disponible. El mejor modo sugerido para mitigar el problema es actualizar a la última versión.
Detalles
Una vulnerabilidad fue encontrada en Linux Kernel hasta 5.10.39/5.12.6 (Operating System) y clasificada como crítica. La función do_mq_timedsend::__pipelined_op del componente mqueue es afectada por esta vulnerabilidad. A través de la manipulación de un input desconocido se causa una vulnerabilidad de clase denegación de servicio. Esto tiene repercusión sobre la la disponibilidad. El resumen de CVE es:
En el kernel de Linux, se resolvió la siguiente vulnerabilidad: ipc/mqueue, msg, sem: evite confiar en una referencia de pila después de su vencimiento do_mq_timedreceive llama a wq_sleep con una dirección local de pila. El remitente (do_mq_timedsend) usa esta dirección para luego llamar a pipelined_send. Esto conduce a una ejecución muy difícil de desencadenar en la que una llamada do_mq_timedreceive puede regresar y dejar que do_mq_timedsend dependa de una dirección no válida, lo que provoca el siguiente bloqueo: RIP: 0010:wake_q_add_safe+0x13/0x60 Seguimiento de llamadas: __x64_sys_mq_timedsend+0x2a9/0x490 do_syscall_64+0x80 /0x680 Entry_SYSCALL_64_after_hwframe+0x44/0xa9 RIP: 0033:0x7f5928e40343 La ejecución ocurre como: 1. do_mq_timedreceive llama a wq_sleep con la dirección de `struct ext_wait_queue` en la pila de funciones (alias `ewq_addr` aquí): contiene una `struct ext_wait_queue * válida ` siempre y cuando la pila no haya sido sobrescrita. 2. `ewq_addr` se agrega a info->e_wait_q[RECV].list en wq_add, y do_mq_timedsend lo recibe a través de wq_get_first_waiter(info, RECV) para llamar a __pipelined_op. 3. El remitente llama a __pipelined_op::smp_store_release(&this->state, STATE_READY). Aquí es donde comienza la ventana de ejecución. (`esto` es `ewq_addr`.) 4. Si el receptor se activa ahora en do_mq_timedreceive::wq_sleep, verá `state == STATE_READY` y se interrumpirá. 5. do_mq_timedreceive regresa y ya no se garantiza que `ewq_addr` sea una `struct ext_wait_queue *` ya que estaba en la pila de do_mq_timedreceive. (Aunque es posible que la dirección no se sobrescriba hasta que otra función la toque, lo que significa que puede persistir por un tiempo indefinido). 6. do_mq_timedsend::__pipelined_op() todavía cree que `ewq_addr` es una `struct ext_wait_queue *`, y lo usa para encontrar una task_struct para pasar a la llamada wake_q_add_safe. En el afortunado caso de que nada haya sobrescrito `ewq_addr` todavía, `ewq_addr->task` es la estructura de tarea correcta. En el desafortunado caso, __pipelined_op::wake_q_add_safe recibe una dirección falsa como la task_struct del receptor que causa el bloqueo. do_mq_timedsend::__pipelined_op() no debe eliminar la referencia a "esto" después de configurar STATE_READY, ya que la contraparte del receptor ahora puede regresar. Cambie __pipelined_op para llamar a wake_q_add_safe en el task_struct del receptor devuelto por get_task_struct, en lugar de desreferenciar "this" que se encuentra en la pila del receptor. Como señaló Manfred, la ejecución también existe potencialmente en ipc/msg.c::expunge_all e ipc/sem.c::wake_up_sem_queue_prepare. Arréglelos de la misma manera.La vulnerabilidad fue publicada el 2024-03-02 (confirmado). El advisory puede ser descargado de git.kernel.org. La vulnerabilidad es identificada como CVE-2021-47069. Detalles técnicos son conocidos, pero no hay ningún exploit público disponible.
Para el scanner Nessus se dispone de un plugin ID 208718 (SUSE SLES15 Security Update : kernel (SUSE-SU-2024:3585-1)), que puede ayudar a determinar la existencia del riesgo analizado.
Una actualización a la versión 5.10.40, 5.12.7 o 5.13 elimina esta vulnerabilidad. Aplicando el parche 4528c0c32308/807fa14536b2/a11ddb37bf36 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 (208718). Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.
Producto
Escribe
Proveedor
Nombre
Versión
- 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.12.0
- 5.12.1
- 5.12.2
- 5.12.3
- 5.12.4
- 5.12.5
- 5.12.6
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: 6.3VulDB Puntuación meta temporal: 6.2
VulDB Puntuación base: 5.7
VulDB Puntuación temporal: 5.5
VulDB Vector: 🔍
VulDB Confiabilidad: 🔍
NVD Puntuación base: 7.0
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: Denegación de servicioCWE: CWE-476 / CWE-404
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: 208718
Nessus Nombre: SUSE SLES15 Security Update : kernel (SUSE-SU-2024:3585-1)
Inteligencia de amenazas
Interés: 🔍Actores activos: 🔍
Grupos APT activos: 🔍
Contramedidas
Recomendación: ActualizaciónEstado: 🔍
Hora de 0 días: 🔍
Actualización: Kernel 5.10.40/5.12.7/5.13
Parche: 4528c0c32308/807fa14536b2/a11ddb37bf36
Línea de tiempo
2024-02-29 🔍2024-03-02 🔍
2024-03-02 🔍
2025-01-09 🔍
Fuentes
Proveedor: kernel.orgAviso: git.kernel.org
Estado: Confirmado
CVE: CVE-2021-47069 (🔍)
GCVE (CVE): GCVE-0-2021-47069
GCVE (VulDB): GCVE-100-255459
Artículo
Fecha de creación: 2024-03-02 05:20Actualizado: 2025-01-09 23:13
Cambios: 2024-03-02 05:20 (44), 2024-10-11 14:04 (17), 2025-01-09 23:13 (12)
Completo: 🔍
Cache ID: 216::103
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.
Sin comentarios aún. Idiomas: es + pt + en.
Por favor, inicie sesión para comentar.