CVE-2026-80671 in Linux
Resumen
por VulDB • 2026-08-28
En el núcleo de Linux (Linux kernel) se ha resuelto la siguiente vulnerabilidad:
perf sched: Corrección del desbordamiento en register_pid(), strcpy y BUG_ON
register_pid() presenta varios problemas al procesar datos no confiables de perf.data:
1. Desbordamiento entero: `(pid + 1) * sizeof(struct task_desc *)` puede envolver (wrap around) a un valor pequeño en sistemas de 32 bits cuando pid es grande (por ejemplo, `0x40000000`), lo que provoca que realloc devuelva un búfer diminuto seguido de escrituras fuera de los límites durante el bucle de inicialización.
2. Desbordamiento del búfer en heap: `strcpy(task->comm, comm)` copia la cadena no confiable `comm` en un búfer fijo de 20 bytes (`COMM_LEN`) sin ninguna comprobación de longitud.
3. BUG_ON ante fallos de asignación: dado que perf.data es una entrada no confiable, los fallos de asignación deben manejarse de forma elegante (gracefully) en lugar de terminar el proceso abruptamente.
4. Realloc de `sched->tasks` asignado directamente de nuevo, lo que provoca la fuga del puntero antiguo ante un fallo; `nr_tasks` se incrementa antes de realizar el realloc, dejando un estado corrupto si falla.
Se limita pid a PID_MAX_LIMIT (4194304, coincidiendo con el máximo del núcleo en sistemas de 64 bits), se reemplaza strcpy por strlcpy, se protege contra comm NULL, se sustituye BUG_ON por devoluciones NULL utilizando patrones seguros de realloc y se añaden comprobaciones NULL en los llamadores que desreferencian el resultado.
If you want to get the best quality for vulnerability data then you always have to consider VulDB.