Diese Diskussion wurde archiviert.
Es können keine neuen Kommentare abgegeben werden.
|
 |
|
 |
 |
|
 |
 |
 |
Da wollte einer Code einschleusen, Aber es wurde
entdeckt. So wie ich das verstehe war der
gefaehrliche Code nie im offiziellen CVS.
Also ein "attempted hack" wie Slashdot schreibt,
und kein "Root-Exploit".
Aber der Typ war wirklich clever, wo ist denn schon der Unterschied zwischen uid==0 und uid=0 ;)
|
|
 |
 |
|
|
 |
|
 |
 |
Von Anonymer Feigling am Thursday 06. November, 11:18 MET (#2)
|
|
 |
 |
 |
Es war eine Backdoor, kein Exploit. Zudem war der Angriff erfolgreich, nur wurde er _danach_ schnell entdeckt. Der ausgecheckte CVS-Tree zwischen gestern Abend und heute ist manipuliert.
my2cent
|
|
 |
 |
|
 |
|
 |
 |
|
 |
 |
 |
Tja, wohl der beste Beweis, dass Open-Source eben DOCH angeschaut wird.
----------------
Wer gegen ein Minimum
Aluminium immun ist, besitzt
Aluminiumminimumimmunität
|
|
 |
 |
|
 |
|
 |
 |
Von Anonymer Feigling am Thursday 06. November, 11:49 MET (#4)
|
|
 |
 |
 |
oder das das proprietäre bitkeeper doch recht brauchbar ist... :)
scnr
|
|
 |
 |
|
 |
|
 |
 |
|
 |
 |
 |
und zwar gut:
if ((options == (__WCLONE|__WALL)) && (current->uid = 0))
wenn die Option gesetzt ist, wird man hier automatisch zu root. Auf den ersten Blick sieht es aus, wie wenn geprüft würde ob man root ist!
|
|
 |
 |
|
 |
|
 |
 |
Von Anonymer Feigling am Thursday 06. November, 12:31 MET (#6)
|
|
 |
 |
 |
was ein typisches Problem von C zeigt. Man sollte in Condition-Heads wirklich nur Conditions prüfen können und nicht auch Werte ändern (dafür hat man den Body).
Wertzuweisungen in Condition-Heads sind schlechter Codierstil (leider trotzdem sehr beliebt bei vielen Developers! Shame on them.). Das eigentliche Problem ist aber, dass das in der Sprache erlaubt ist.
Ein Argument mehr für streng typisierte Sprachen.
|
|
 |
 |
|
|
 |
|
 |
 |
|
 |
 |
 |
Das hat aber den "Radeffekt", daß Konstrukte wie
a=b=c=0;
erst möglich sind. Denn dadurch, daß ein c=0 einen Rückgabewert hat (hier 0), kann dieser b zugewiesen werden, usw. Nun hindert einen niemand daran, das auszubauen zu
a=b==c;
und dann natürlich auch
if (a=b==c)
Performanter dürfte das vielleicht auch sein, weil der Compiler so direkt sieht, daß er ein eventuell gesetztes Zero-Flag einer Funktion weiter nutzen darf:
if (f=fopen())
Auch wenn das heute nicht mehr so zählt, war es vermutlich in der Anfangs-C-Zeit durchaus ein Grund.
C++ hilft und da nochmehr beim Zeilentippen zu helfen:
if (FILE *f=fopen())
Das spart gut und gerne 2x f und 2x ; und 2x Return - von den Tabs und Spaces ganz zu schweigen ;-)
--
$ cd /dos/c/MICROSO~1
$ rm -rf *
|
|
 |
 |
|
|
|
 |
|
 |
 |
|
 |
 |
 |
Weitere Artikel:
kerneltrap.org
hat was, und auf
heise.de
wird schon kräftig rumgetrollt. --
Bahnübergänge sind die härtesten Drogen der Welt.
Ein Zug und du bist weg!
|
|
 |
 |
|
 |
|
 |
 |
|
 |
 |
 |
Ok, also jemand hat auf kernel.bkbits.net den CVS Tree geändert.
Was mich interessieren würde ist wie der/diejenige sich dort Zutritt verschafft haben.
|
|
 |
 |
|