Vulnerabilidad en Linux (CVE-2026-23356)
Gravedad CVSS v3.1:
MEDIA
Tipo:
No Disponible / Otro tipo
Fecha de publicación:
25/03/2026
Última modificación:
24/04/2026
Descripción
En el kernel de Linux, la siguiente vulnerabilidad ha sido resuelta:<br />
<br />
drbd: corrige el &#39;LOGIC BUG&#39; en drbd_al_begin_io_nonblock()<br />
<br />
Aunque verificamos que "deberíamos" poder hacer lc_get_cumulative() mientras mantenemos el spinlock device-&gt;al_lock, aún puede fallar, si alguna otra ruta de código decidió hacer lc_try_lock() con una sincronización deficiente.<br />
<br />
Si eso sucedía, registrábamos &#39;LOGIC BUG for enr=...&#39;, pero aún así no devolvíamos un error.<br />
<br />
El resto del código ahora asumía que esta solicitud tiene referencias para las extensiones de registro de actividad relevantes.<br />
<br />
Las implicaciones son que durante una resincronización activa, la exclusividad mutua de la resincronización frente a la E/S de la aplicación no está garantizada. Y un posible fallo en este punto podría no darse cuenta de que estas extensiones podrían haber sido objetivo de E/S en curso y necesitarían ser resincronizadas por si acaso.<br />
<br />
Además, una vez que la solicitud se completa, liberará referencias del registro de actividad que ni siquiera posee, lo que activará un BUG_ON(refcnt == 0) en lc_put().<br />
<br />
Solución:<br />
<br />
No bloquear el kernel por una condición inofensiva durante el funcionamiento normal: también capturar &#39;e-&gt;refcnt == 0&#39;, no solo &#39;e == NULL&#39; al ser ruidoso sobre &#39;al_complete_io() called on inactive extent %u\n&#39;.<br />
<br />
Y no intentar ser inteligente y "adivinar" si algo funcionará, para luego sorprenderse cuando no lo haga.<br />
Afrontar el hecho de que puede o no funcionar. Si no funciona, recordar un posible estado de &#39;parcialmente en el registro de actividad&#39; (solo posible para solicitudes que cruzan límites de extensión), y devolver un código de error desde drbd_al_begin_io_nonblock().<br />
<br />
Una llamada posterior para la misma solicitud se reanudará desde donde lo dejamos.
Impacto
Puntuación base 3.x
5.50
Gravedad 3.x
MEDIA
Productos y versiones vulnerables
| CPE | Desde | Hasta |
|---|---|---|
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 3.10.1 (incluyendo) | 5.10.253 (excluyendo) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.11 (incluyendo) | 5.15.203 (excluyendo) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.16 (incluyendo) | 6.1.167 (excluyendo) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.2 (incluyendo) | 6.6.130 (excluyendo) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.7 (incluyendo) | 6.12.77 (excluyendo) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.13 (incluyendo) | 6.18.17 (excluyendo) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.19 (incluyendo) | 6.19.7 (excluyendo) |
| cpe:2.3:o:linux:linux_kernel:3.10:-:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:7.0:rc1:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:7.0:rc2:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:7.0:rc3:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:7.0:rc4:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:7.0:rc5:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:7.0:rc6:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:7.0:rc7:*:*:*:*:*:* |
Para consultar la lista completa de nombres de CPE con productos y versiones, ver esta página
Referencias a soluciones, herramientas e información
- https://git.kernel.org/stable/c/7752569fc78e89794ce28946529850282233f99d
- https://git.kernel.org/stable/c/933d161baa3794547adee621c0bf52cbf2c1b3cd
- https://git.kernel.org/stable/c/ab140365fb62c0bdab22b2f516aff563b2559e3b
- https://git.kernel.org/stable/c/cf01aa6288e1190f89865e765056e2a9d8190639
- https://git.kernel.org/stable/c/d1ef3aed4df2ef1fe46befd8f2da9a6ec5445508
- https://git.kernel.org/stable/c/e91d8d6565b7819d13dab21d4dbed5b45efba59b
- https://git.kernel.org/stable/c/eef1390125b660b8b61f9f227a03bb9c5e6d36a5
- https://git.kernel.org/stable/c/f558e5404a72054b525dced1a0c66aa95a144153



