Tavis Ormandy mengeluarkan advisories mengenai NULL pointer dereference vulnerability pada implementasi socket untuk kernel Linux 2.6 dan 2.4. Full advisoriesnya dapat dilihat pada FD-list. Spender dari grsecurity project merilis exploit untuk bug ini dengan memanfaatkan pulseaudio seperti rilis exploit sebelumnya. Jadi jika ada yang memiliki server dengan pulseaudio versi lama dan belum di patch, serta mengaktifkan modul-modul yang vulnerable terhadap hole ini, sebaiknya melakukan uji coba terhadap server tersebut, paling tidak dengan exploit spender yang kemungkinan besar akan digunakan begitu saja oleh script kiddies.
Uninstall pulseaudio jika tidak digunakan, atau merubah pathnya dari default mungkin akan mengurangi dampak serangan para script kiddies. Beberapa tindakan pencegahan dapat dilakukan, namun yang pasti SELinux tidak dapat menolong banyak karena pada exploit ini terdapat implementasi untuk bypass SELinux :).
~ GS
chmod -s 🙂
Sebetulnya pulseaudio itu cuma jadi salah satu metode untuk bypass kernel protection, bisa dibilang cara terakhir lah. Exploitnya spander memiliki beberapa fitur untuk bypass teknologi security, yang pasti default instalasi untuk SuSe 9 Enterprise (tanpa hardening) jebol dengan mulusnya (kernel < 2.6.30):
how come a server need a pulse audio?, dont know if its a game server 🙂 or “new-bundle” fancy things that they call server bundled on CD (like “SuSe 9 Enterprise” that youve mention there h3b :P)…. oh i miss the old time when everythings build from scratch
hehehe, iya bos dapet server provider telkom paling gede di indo malah ini 🙂
Btw, have been tasted on
2.6.9-55.ELsmp RHEL 4 (nahant update 5)
2.6.18-128.4.1.el5 RHEL 5.3 (Tikanga)
sukses!
My dear friend Gent00, some feature is embedded by spander’s spl0it, like I said…pulseaudio is the “last” method to bypass mmap protection (method developed by julien tinnes & taviso recently), that’s why there’s pwnkernel bundled there.
While “SuSe 9 Enterprise” above (unfortunately) using *really* old 2.6 kernel with0ut any pulseaudio installed, so mmap() or mprotect() will always success to map zero page