Vulnerabilidad en Linux (CVE-2026-23194)
Gravedad:
Pendiente de análisis
Tipo:
No Disponible / Otro tipo
Fecha de publicación:
14/02/2026
Última modificación:
18/02/2026
Descripción
En el kernel de Linux, la siguiente vulnerabilidad ha sido resuelta:<br />
<br />
rust_binder: manejar correctamente los objetos FDA de longitud cero<br />
<br />
Se corrige un error donde un objeto FDA (matriz de descriptores de archivo) vacío con 0 descriptores de archivo causaría un error de fuera de límites. La implementación anterior utilizaba &#39;skip == 0&#39; para significar &#39;esto es una corrección de puntero&#39;, pero 0 es también la longitud de salto correcta para un FDA vacío. Si el FDA está al final del búfer, entonces esto resulta en un intento de escribir 8 bytes fuera de los límites. Esto es detectado y resulta en que se devuelve un error EINVAL al espacio de usuario.<br />
<br />
El patrón de usar &#39;skip == 0&#39; como un valor especial se origina en la implementación en C de Binder. Como parte de la corrección de este error, este patrón es reemplazado con un enum de Rust.<br />
<br />
Consideré la opción alternativa de no aplicar una corrección cuando la longitud es cero, pero creo que es más limpio simplemente eliminar lo de "cero es especial".<br />
<br />
La causa raíz de este error fue diagnosticada por Gemini CLI al primer intento. Utilicé el siguiente prompt:<br />
<br />
&gt; Parece haber un error en @drivers/android/binder/thread.rs donde el error de fuera de límites (oob) de Fixups se activa con 316 304 316 324. Esto implica que de alguna manera terminamos con una corrección donde el búfer A tiene un puntero al búfer B, pero el puntero está ubicado en un índice en el búfer A que está fuera de los límites. Por favor, investigue el código para encontrar el error. Puede comparar con @drivers/android/binder.c que implementa esto correctamente.



