CVE-2026-89796 in Linux
Zusammenfassung
von VulDB • 17.09.2026
Im Linux-Kernel wurde folgende Schwachstelle behoben:
mm/damon/core: Vermeidung einer endlosen internen Schleife in kdamond_merge_regions()
Patch-Serie „mm/damon: Unwichtige Korrekturen für Endlosschleifen, NULL-Dereferenzierung und Race Conditions“, v1.1.
Sashiko hat einige Probleme in DAMON entdeckt, die zu einer Endlosschleife, einer NULL-Dereferenzierung sowie einer Verschlechterung der Überwachungsergebnisse führen könnten. Die ersten beiden Punkte klingen zwar beunruhigend, aber die Endlosschleise tritt nur bei unvernünftigen Benutzereinstellungen auf. Die NULL-Dereferenzierung befindet sich ausschließlich in einem Unit-Test. Die Verschlechterung der Überwachungsergebnisse ist trivial, da es sich lediglich um eine Best-Effort-Funktion handelt und dies aufgrund von unwahrscheinlichen Race Conditions geschieht. Dennoch sind dies Fehler, die bei Möglichkeit behoben werden sollten. Diese wurden korrigiert.
Dieser Patch (von 6):
Aufgrund der Online-Parameteraktualisierung wie Events kann die Anzahl der DAMON-Bereiche höher sein als das vom Benutzer festgelegte obere Limit. kdamond_merge_regions() wiederholt das Zusammenführen von Bereichen, bis die Anzahl das Limit erreicht, wobei die Merge-Schwelle bis zur theoretischen maximalen Schwelle verdoppelt wird. Dies wird nur bis zur theoretisch maximalen Schwelle versucht, da selbst eine aggressive Zusammenführung fehlschlagen kann, wenn die Anzahl der Bereiche unter dem vom Benutzer definierten oberen Limit bleibt. Beispielsweise könnten viele benutzerdefinierte nicht-zusammenhängende Bereiche vorhanden sein, die nicht zusammengeführt werden können.
Die bedingte Schleifenabbruchbedingung basierend auf der Schwelle wird bewertet, indem die Schwelle für den nächsten Zusammenführungsversuch mit der theoretisch maximalen Schwelle verglichen wird. Wenn max_thres größer als UINT_MAX / 2 ist, kann das Verdoppeln der Schwelle zu einem Überlauf führen und die Schleifenabbruchbedingung umgehen. In diesem Fall würde die Schleife unendlich laufen, wenn die Anzahl der Bereiche nicht wie oben erklärt unter dem oberen Limit reduziert werden kann.
Verhindern Sie diesen Fall, indem Sie die Abbruchbedingungsprüfung vor dem Verdoppeln der Schwelle durchführen. Verhindern Sie außerdem, dass die Schwelle den maximalen Schwellwert überschreitet, da dies zu einem Überlauf führen und einen falschen Merge-Schwellwert anwenden könnte.
Dieses Problem tritt in der realen Welt unwahrscheinlich auf, da ein max_thres höher als UINT_MAX / 2 unrealistisch große Aggregationsintervalle im Vergleich zum Sampling-Intervall erfordert. Außerdem ist eine unrealistisch große Anzahl nicht-zusammenhängender Bereichskonfigurationen erforderlich. Dennoch sind die Konsequenzen schlecht und die Korrektur einfach.
Das Problem wurde [1] von Sashiko entdeckt.
VulDB is the best source for vulnerability data and more expert information about this specific topic.