Die Ergebnisse der Studie zur Entdeckungs- und Behebungszeit von Fehlern im Linux-Kernel wurden veröffentlicht. Die Daten stammen aus der Analyse von 125.000 Fehlern, die im Git-Repository mit dem Tag âFixes:â gekennzeichnet sind, der auf den Commit verweist, in dem der Fehler aufgetreten ist. Die durchschnittliche Entdeckungszeit der Fehler im Kernel betrug 2,1 Jahre. Wenn man nur die Fehler betrachtet, die im Jahr 2025 behoben wurden, betrug dieser Wert 2,8 Jahre.
30 % der Fehler wurden von denselben Entwicklern behoben, die sie auch eingefĂŒhrt hatten. 56,9 % der Fehler werden innerhalb eines Jahres behoben. 13,5 % der Fehler blieben mehr als 5 Jahre unbemerkt (betrachtet man nur die im Jahr 2025 behobenen Fehler â 19,4 %). Aufgrund der ungleichmĂ€Ăigen Verteilung betrug die mediane Existenzdauer eines Fehlers im Kernel 8 Monate fĂŒr die Auswahl aus dem Jahr 2005 und 1 Jahr fĂŒr die 2025 behobenen Fehler. Der am lĂ€ngsten im Code verbleibende Fehler war ein PufferĂŒberlauf in ethtool, der nach 20,7 Jahren behoben wurde.

Die Dynamik der Fehlerentdeckung weicht deutlich vom Durchschnitt fĂŒr einige Subsysteme ab, zum Beispiel im CAN-Bus-Treiber und im SCTP-Stack dauert die Erkennung von Problemen im Durchschnitt etwa 4 Jahre, im IPv4-Stack 3,6 Jahre, USB und TTY 3,5, Netfilter und das Netzwerk-Stack 2,9, VM 1,8, GPU 1,4, BPF 1,1 Jahre.

Die Entdeckungszeit korreliert mit den Fehlertypen: Die durchschnittliche Entdeckungszeit fĂŒr Fehler, die mit Race Conditions zusammenhĂ€ngen, betrug 5,1 Jahre, fĂŒr ganzzahlige ĂberlĂ€ufe 3,9, fĂŒr Zugriffe nach der Freigabe von Speicher 3,2, fĂŒr PufferĂŒberlĂ€ufe und Speicherlecks 3,1, fĂŒr ReferenzzĂ€hlung 2,8, fĂŒr Nullzeiger-Dereferenzierung und gegenseitige Blockierungen 2,2 Jahre.
In der erhaltenen Statistik ist auch der Einfluss der EinfĂŒhrung neuer Werkzeuge zur automatisierten Fehlersuche, statischen Analyse und Code-Testung, wie Syzkaller, KASAN, KMSAN und KCSAN, zu erkennen. Beispielsweise wurden im Jahr 2010 keine Fehlerbehebungen verzeichnet, die innerhalb eines Jahres gefunden wurden. WĂ€hrend im Jahr 2014 innerhalb eines Jahres 31 % der Fehler entdeckt wurden, waren es im Jahr 2018 54 % und im Jahr 2022 69 % der Fehler.
Die erhaltenen Statistiken wurden zur Erstellung des Machine-Learning-Modells VulnBERT verwendet, das die Vorhersage von Schwachstellen in Commits ermöglicht. Bei Tests an Commits aus dem Jahr 2024 betrug die Genauigkeit der Fehlerentdeckung 92,2 % bei einer Fehlalarmrate von 1,2 % (zum Vergleich: das zuvor verfĂŒgbare Modell CodeBERT entdeckte 89,2 % der Probleme bei einer Fehlalarmrate von 48,1 %).
Quelle: opennet.ru
