Altlasten

https://www.heise.de/news/Rechenfehler-im-Linux-Kernel-erlaubt-Rechteausweitung-6333365.html

Im Linux-Kernel haben Softwareentwickler eine Schwachstelle entdeckt, durch die angemeldete Benutzer ihre Rechte ausweiten können. Zum Beweis haben sie Exploit-Code entwickelt, der die Schwachstelle unter Ubuntu 20.4 sowie in Googles gehärtetem Container-Optimized OS demonstrieren soll.

if (len > PAGE_SIZE – 2 – size) ergibt einen Integer-Underflow, wenn size >= 4095. (PAGE_SIZE ist offenbar eine Konstante mit dem Wert 4096, und alle Variablen sind offenbar unsigned int). Naja. Unseren täglichen C-Pufferüberlauf gib uns heute. Was ich allerdings wirklich spannend finde, ist der Fix: if (size + len + 2 > PAGE_SIZE). In wiefern soll das helfen? Wenn size > sizeof(MAX_UINT) – len – 2 knallts doch gleich wieder, oder übersehe ich da etwas?

Mit Java wäre das nicht passiert, kann man da nur sagen… entweder schreibt man eine Prüfung davor:
if ((size + len + 2 < size) || (size + len + 2 > PAGE_SIZE))
oder man benutzt check_add_overflow(), würde ich meinen. Mit elegant und intuitiv ist es dann aber Essig.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert