szedłem artykule dzisiaj, kiedy to wymienione następujące:Stara wada w X Window System. Jak to działa?
„Odkryliśmy wiele błędów w ciągu lat Jeden z absolutnie najlepszy był następujących w X Window System.
if(getuid() != 0 && geteuid == 0) { ErrorF("Only root"); exit(1); }
pozwoliło żadnego lokalnego użytkownika, aby uzyskać dostęp do roota . (Tautologiczna czek geteuid == 0 miała być geteuid() == 0. W obecnej formie kompresować adres geteuid do 0; zważywszy, że funkcja istnieje, jego adres nie jest 0). „
W artykule wyjaśniono, co było nie tak z kodem, ale chciałbym wiedzieć, co to znaczy, że ” Pozwoliło to żadnego użytkownika lokalnego uzyskać dostęp do roota ".Nie jestem ekspertem w C, ale czy ktoś może mi podać dokładny kontekst, w którym ten exploit będzie działał? W szczególności mam na myśli to, powiedzmy, że jestem lokalnym użytkownikiem, w jaki sposób uzyskać dostęp do roota, jeśli zakładamy, że ten kod jest gdzieś obecny?
Dla wszystkich zainteresowanych przeczytaniem całego artykułu, oto link:
A Few Billion Lines of Code Later: Using Static Analysis to Find Bugs in Real World
Cytowany artykuł pochodzi z "Kilku miliardów linii kodu później: przy użyciu analizy statycznej, aby znaleźć błędy w rzeczywistym świecie" według Coverity. Dlaczego nie dać odniesienia? –
@ Hu Hu: Dzięki za sugestię. Dodano link .. – Legend