Análisis de la corrección de errores en el núcleo de Linux — en promedio, los errores se detectan después de 2 años

Se publicaron los resultados de un estudio sobre el tiempo de detección y corrección de errores en el código del núcleo de Linux. Los datos se obtuvieron a partir del análisis de 125,000 errores etiquetados en el repositorio de Git con la etiqueta «Fixes:», que hace referencia al commit en el que se generó el error. El tiempo promedio de detección de errores en el núcleo fue de 2.1 años. Si se consideran únicamente los errores corregidos en 2025, este indicador fue de 2.8 años.

El 30% de los errores fueron corregidos por los mismos desarrolladores que los introdujeron. El 56.9% de los errores se resuelven en el transcurso de un año. El 13.5% de los errores permanecieron sin ser detectados durante más de 5 años (si se consideran únicamente los errores corregidos en 2025 — 19.4%). Debido a la distribución desigual, el tiempo medio de existencia de un error en el código del núcleo fue de 8 meses para la muestra desde 2005 y 1 año para los errores corregidos en 2025. El error que más tiempo permaneció en el código fue el desbordamiento de búfer en ethtool, que fue corregido después de 20.7 años.

Análisis de la corrección de errores en el núcleo de Linux: en promedio, los errores son detectados después de 2 años.

La dinámica de detección de errores varía notablemente de la media para algunos subsistemas, por ejemplo, en el controlador del bus CAN y la pila SCTP, la detección de problemas en promedio toma alrededor de 4 años; en la pila IPv4 — 3.6 años, USB y TTY — 3.5 años, Netfilter y la pila de red — 2.9 años, VM — 1.8 años, GPU — 1.4 años, y BPF — 1.1 años.

Análisis de la corrección de errores en el núcleo de Linux: en promedio, los errores son detectados después de 2 años.

El tiempo de detección se correlaciona con los tipos de errores: el promedio de tiempo de detección de errores relacionados con condiciones de carrera fue de 5.1 años, desbordamiento de enteros — 3.9 años, acceso después de liberación de memoria — 3.2 años, desbordamiento de búfer y fuga de memoria — 3.1 años, conteo de referencias — 2.8 años, dereferenciación de punteros nulos y bloqueos mutuos — 2.2 años.

En las estadísticas obtenidas también se refleja la influencia de la implementación de nuevas herramientas para la búsqueda automatizada de errores, análisis estático y pruebas de código, como Syzkaller, KASAN, KMSAN y KCSAN. Por ejemplo, en 2010 no se registraron correcciones de errores encontradas durante el año. Mientras que en 2014 se detectó el 31% de los errores durante el año, en 2018 — el 54%, y en 2022 — el 69% de los errores.

La estadística obtenida se utilizó para crear el modelo de aprendizaje automático VulnBERT, que permite predecir la presencia de vulnerabilidades en los commits. Al probarlo con commits del año 2024, la precisión en la detección de errores fue del 92.2% con una tasa de falsos positivos del 1.2% (para comparar, el modelo disponible anteriormente, CodeBERT, detectaba el 89.2% de los problemas con una tasa de falsos positivos del 48.1%).

Fuente: opennet.ru

Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS 🔥 Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS | ProHoster