Ich habe heute einen Artikel gelesen, in dem Folgendes erwähnt wurde:
"Wir haben im Laufe der Jahre viele Fehler gefunden. Jahren. Einer der absolut besten war der folgende im X Window System:
if(getuid() != 0 && geteuid == 0) { ErrorF("Only root"); exit(1); }
Es ermöglichte jedem lokalen Benutzer den Zugang zu Root Zugriff. (Die tautologische Prüfung geteuid == 0 sollte eigentlich lauten geteuid() == 0 sein. In seiner jetzigen Form, komprimiert sie die Adresse von geteuid auf 0; da die Funktion existiert, ist ihre Adresse niemals 0 ist)."
In dem Artikel wird erklärt, was mit dem Code nicht stimmt, aber ich würde gerne wissen, was es bedeutet, wenn ich sage, dass "Es ermöglichte jedem lokalen Benutzer, Root-Zugriff zu erhalten" . Ich bin kein C-Experte, aber kann mir jemand einen genauen Zusammenhang nennen, in dem dieser Exploit funktionieren würde? Konkret meine ich damit, dass ich als lokaler Benutzer Root-Zugriff erhalten würde, wenn wir davon ausgehen, dass dieser Code irgendwo vorhanden ist?
Wenn Sie den vollständigen Artikel lesen möchten, finden Sie hier den Link:
Ein paar Milliarden Codezeilen später: Statische Analyse zur Fehlersuche in der realen Welt