root exploit bei NVIDIA Grafiktreibern (blob)

asg

push it, don´t hype
radioaktiv-40.png
Ein gefundenes Fressen für jeden der gegen binary blobs ist. Der NVIDIA Binary Grafik Treiber für Linux ist anfällig für einen buffer overflow. Dabei könnten die NVIDIA Treiber für FreeBSD und Solaris ebenso betroffen sein.
Der Fehler gibt Benutzern die Möglichkeit Code als Benutzer “root” auszuführe und dies lokal als auch von remote. Neben vielen bekannten Problemen das der Treiber nicht immer stabil läuft, ist dies nun ein ernstzunehmender Fehler, der wieder die Frage aufwirft, ob man binary blobs wirklich durch die Nutzung unterstützen will oder nicht. OpenBSD macht sich stark gegen diese binary blobs, und so wurde auch OpenBSD 3.9 unter diesem Motto veröffentlich, inklusive eines Liedes über Blobs.
Von Rapid7 gibt es den Security Advisory und einen funktionierenden proof-of-concept root exploit.
Eine Erklärung zu Blobs gibt es neben dem Songtext.
Ein Wallpaper bezüglich des Bugs gibt es auch schon. Im Vordergrund steht dabei der Kommentar im Code:
[FONT=arial,helvetica]/* * “It’s so hard to write a graphics driver that open-sourcing it would * not help.” * - Andrew Fear, Software Product Manager (NVIDIA Corporation). */[/FONT]​
 
Uii, irgendwie würde ich mich über mehr solcher Fehler in blobs freuen.
Vielleicht denken dann mehr leute über das Thema blobs nach.

STOP BLOB

Ansonsten kann man für die nutzer dieser Driver nur auf ein schnellen fix hoffen.
gruß

zyon
 
Ob nvidia-driver-1.0.9626 auch verletzlich ist?

Hallo,

bei heise ist die Meldung auch raus:
Nvidia-Linux-Treiber: Closed Source macht Open Source unsicher

Im FreeBSD VuXML ist der nvidia-driver gesperrt:
http://www.vuxml.org/freebsd/a6d9da4a-5d5e-11db-8faf-000c6ec775d9.html


Jetzt frage ich mich ob der 9626 verletzlich ist
Es gibt seit 13. Oktober einen neuen nvidia-driver der aber nicht verlinkt ist
von der Nvidia Webseite wenn man über:
download driver ==> Linux, FreBSD, Solaris Driver geht.
Code:
pkg_info | grep nvidia-driver
nvidia-driver-1.0.9626 NVidia graphics card binary drivers for hardware OpenGL ren
Holen kann man sich diesen nvidia-driver 9626,
wenn man im Makefile die Zeile 84 entsprechend ändert.

Das sind die Hashwerte und die Größe:
Code:
MD5 (NVIDIA-FreeBSD-x86-1.0-9626.tar.gz) = 28cae98f6b3e6d8b71c731a40f0f9f25
SHA256 (NVIDIA-FreeBSD-x86-1.0-9626.tar.gz) = 98e9a71b8264436f3100bd145993ee710a193db4e1aae1be1b3bc9213f7f4b2b
SIZE (NVIDIA-FreeBSD-x86-1.0-9626.tar.gz) = 9731946

Der nvidia-driver 9626 verhält sich bei mir ähnlich,
wie die Vorgängerversion, der Beta nvidia-driver 9625,
macht also auf der KDE Konsole ab und zu Pünktchen
wie ich in diesem Thread dann geschildert habe:
Beta: neuer FreeBSD nvidia-driver 1.0-9625
(Screenhot mit den Pünktchen inside)

Nun wüde ich ja gerne ausprobieren,
ob der bei mir installierte nvida-driver 9626
verletzlich ist, oder nicht, aber ich weiß leider nicht wie.
Den Exploit habe ich gesehen,
habe aber keine Ahnung, wie ich damit testen kann.

Wenn ich wüßte wie, würde ich das mal ausprobieren.
Weil:
ohne nvida-driver kein games/glest! :ugly:


Gruß, Fusselbär

UPDATE!
Es gibt einen Workaround und einen Fix:
http://www.nvnews.net/vbulletin/showthread.php?t=78322

Im nvida-driver 9625 und 9626 soll das gefixed sein,
aber die machen dafür eben ab und zu Pünktchen.
Auf Linuxforen.de hat jemand gepostet, das es bei ihm diese Pünktchen
nicht mehr gibt, wenn antialiasing ausschaltet ist:
http://www.linuxforen.de/forums/showpost.php?p=1441360&postcount=36



Mit 8x nvidia-driver muß RenderAccel abgeschaltet werden!:
Code:
Option "RenderAccel" "False"
in der /etc/X11/xorg.conf
 
Zuletzt bearbeitet:
So, laut lwn ist die Sache in 9625 und 9626 gefixt. Link.

Das würde bedeuten, dass nVidia die Lücke kannte und gefixt hat ohne Advisory.
 
Das nennt man eine vertrauensbildende Massnahme, nicht? :D

Hallo,

es ist eine echte "Zwickmühle"!
Die Nvidia Grafikkarten rennen mit dem Closed Source Nvidia Treiber schön schnell
und man kann damit zocken, auch unter FreeBSD und Linux.

Mit dem OpenSource Treiber nv hat man Open Source, aber kann
leider ncht zocken, jedenfalls keine 3D Games wie Glest oder
games/nexuiz, games/warzone2100 usw...

Gerade die Möglichkeit 3D Spiele zocken zu können bringt die Menschen dazu,
sich solche aufwändigen 3D fähigen Grafikkarten zu kaufen.

Im Linux, FreeBSD und Solaris Bereich hat Nvidia die Nase vorne,
da ist es sehr suboptimal mit diesem Sicherheitsloch.
Darüber schweigen hätte meiner Meinung nach nichts gebracht,
deswegen hatte ich heute Nacht einen kleinen Tipp mit Links zu heise geschickt.
Rausgekommen wäre es ja sowieso,
so, das ich mir dachte, offen damit umzugehen ist noch der beste Weg.


Gruß, Fusselbär

P.S.:
Wobei ich mich ganz leise frage, ob etwa über einen ähnlichen Mechanismus eventuell
auch der Windows Nvidia Treiber betroffen sein könnte,
da gibts ja noch nicht mal die Ausweichmöglichkeit
mit einem OpenSource nv Treiber.
 
Hotfix freebsd_1.0-8776 Nvidia Binary Treiber

Hallo,

es gibt einen Hotfix freebsd_1.0-8776 Nvidia Binary Treiber:
http://www.nvidia.com/object/freebsd_1.0-8776.htm

Release Datum: 19. Oktober 2006

Release Highlights:
Added hotfix for Rapid7 Advisory R7-0025.
Please view this NVIDIA Knowledgebase article for more information on this hotfix and the affected drivers.
Der Link zur Knowledgebase führt jedoch zu einem Login Formular,
da scheint irgend etwas nicht zu stimmen.

Für weitere Details bitte dem Link zur freebsd_1.0-8776
Treiber Webseite oben folgen.


Gruß, Fusselbär
 
Zuletzt bearbeitet:
Uii, irgendwie würde ich mich über mehr solcher Fehler in blobs freuen.

Ich finde es alles andere als erfreulich, wenn -zigtausende von Rechnern wegen minderwertiger Software in Zombies verwandelt werden koennen.

Vielleicht denken dann mehr leute über das Thema blobs nach.

Vielleicht fangen die Leute auch irgendwann mal mit dem Denken an, bevor das Kind in den Brunnen gefallen ist.

Ansonsten kann man für die nutzer dieser Driver nur auf ein schnellen fix hoffen.

Du hast das Problem nicht verstanden. Ein Fix in Form eines neuen BLOBs ist kein Fix.
 
Kili, widersprechen sich nicht deine Aussagen 1 und 3? Natürlich löst ein neuer Blob als Ersatz für den alten nicht das Blob-Problem, aber immerhin kann es die Zahl der Zombierechner zumindest verringern (bis zum nächsten Exploit).
Es wird ja wohl niemand erwarten, daß Nvidia wegen dem Fehler ihre "da habt ihr keine Ahnung von"-Strategie aufgibt. Der Exploit ist doch für sie nur der Beweis, das Closed Source auch Fehler produzieren kann und nicht das Open Source diese Fehler nicht machen würde.

Und wer weiß wieviel off-by-one's und sprintf's da noch so im Code rumschwirren, daß es vielleicht besser ist, das Ding erstmal noch nicht in Open Source zu stellen. :)

Das prinzipiell nicht nur Linux und Open-Source-Systeme betroffen sind, muss ja nicht mehr bewiesen werden, sondern ist schon seit längerem bekannt.
link zu undeadly.org
 
Ich persönlich habe eine ATi Grafikkarte. Der Treiber"support" für Linux dürfte bekannt sein, BSD wird gleich ganz aussen vorgelassen. Allerdings muss ich ehrlich sagen, dass ich mit für 3D & Co. auch kein Linux/BSD installiere. Im 3D Desktop Einsatz ist Windows ganz klare Referenz und zum Modellieren bzw. Spielen hat man ausser Dual/Multi Boot eben nicht viele Alternativen. Für Totalumsteiger ist ein entsprechender Treiber natürlich elementar wichtig. Aber da stellt sich doch die Frage: "offizieller" Binary Treiber oder gar keine Hardwarebeschleunigung. Ich habe mich für letzteres entschieden, wie gesagt: Windows bietet mir für Spiele noch ausreichende Sicherheit und Stabilität ;-)

P.S.: Mal ganz weg von OS Treibern: Wieso gibt es keine anständigen Treiber für Linux/*BSD? Wäre doch sogar nur der halbe Aufwand, Direct3D fällt schliesslich weg :-)

P.P.S.: @nickers: Top Signatur :-)
 
Zuletzt bearbeitet:
Kili, widersprechen sich nicht deine Aussagen 1 und 3?

Nein, ueberhaupt nicht. Ich freue mich nicht ueber Luecken in Blobs, weil sie das Rauschen im Netz erhoehen. Ich freue mich nicht ueber "Security"-Updates von Blobs, weil sie die Sicherheit ebenfalls nicht erhoehen -- jedenfalls nicht ueberpruefbar.

Und die Tatsache, dass Blobs besonders gefaehrlich sind, weil sie weder ueberprueft noch im Fall der Falle repariert werden koennen, ist ja ganz offenbar trotz der ganzen Katastrophen immer noch nicht zu den Leuten durchgesickert -- anders kann ich mir die ganze Begeisterung wg. eines vorhandenen Updates der nvidia-Blobs nicht erklaeren.

Natürlich löst ein neuer Blob als Ersatz für den alten nicht das Blob-Problem, aber immerhin kann es die Zahl der Zombierechner zumindest verringern (bis zum nächsten Exploit).

Eben. Bis zum naechste Exploit. Oder evtl. bis zum gleichen Exploit in modifizierter Form.


Und wer weiß wieviel off-by-one's und sprintf's da noch so im Code rumschwirren, daß es vielleicht besser ist, das Ding erstmal noch nicht in Open Source zu stellen.

O.k., die nvidia-Leute wissen also, dass ihr Code nichts taugt, und es ist ihnen peinlich, ihn zu veroeffentlichen... Nun, dann sollen sie halt die Doku veroeffentlichen. Aber halt! Dann wuerde ja herauskommen, dass sie evtl. gar keine Doku haben oder dass ihre Hardware auch nichts taugt! Das hatten wir doch neulich (vor einem Jahr) mit Adaptec, IIRC.
 
Für Totalumsteiger ist ein entsprechender Treiber natürlich elementar wichtig.

Sehe ich anders. Ausgenommen von Leuten die breuflich auf GLX angewiesen sind, ist das Ganze überflüssig. Außer Exposé-ähnlichen Effekten wüsste ich nicht wie mir 3D-Beschleunigung die Arbeit erleichtert (und darauf kann ich dank der Funtionsreichen Fensterverwaltungen unter X verzichten). Zum Spielen sind die Dinger mMn eh nicht gemacht. (und selbst da brauch man eigentlich kein glx)
 
Nein, ueberhaupt nicht. Ich freue mich nicht ueber Luecken in Blobs, weil sie das Rauschen im Netz erhoehen. Ich freue mich nicht ueber "Security"-Updates von Blobs, weil sie die Sicherheit ebenfalls nicht erhoehen -- jedenfalls nicht ueberpruefbar.

Und die Tatsache, dass Blobs besonders gefaehrlich sind, weil sie weder ueberprueft noch im Fall der Falle repariert werden koennen, ist ja ganz offenbar trotz der ganzen Katastrophen immer noch nicht zu den Leuten durchgesickert -- anders kann ich mir die ganze Begeisterung wg. eines vorhandenen Updates der nvidia-Blobs nicht erklaeren.
Begeisterung? Von Begeisterung hab ich garnichts erlebt, zumindest nicht bewusst, nur von Entrüstung und Schadenfreude. Mich persönlich lässt die ganze Sache kalt, abgesehen vom Grinsen, als ich die Nachricht auf undeadly las.
Wenn die Welt und speziell die Sicherheit schwarz und weiss wären, würde ich deiner obigen Aussage im übrigen voll zustimmen. Da dieser Drecksladen aber leider analog funktioniert und deshalb zwischen den beiden Idealzuständen noch ein Haufen Grautöne rumgammeln, sehe ich es doch anders. Ich gehe davon aus, daß die Nvidia-Blob-Benutzer den Blob benutzen, ob er nun gepatcht ist oder nicht. Windows Nutzer benutzen auch immer noch Windows und Raucher rauchen immer noch ... Und da dem so ist, wäre mir eine weniger ungesunde Zigarette lieber als eine stark ungesunde, ein fast sicheres Windows lieber, als ein völlig unsicheres und eben auch ein vorläufig sicherer Blob lieber, als ein aktuell exploitbarer. (Wobei die Problematik Windows und Blob natürlich identisch ist.)
Abgesehen davon wäre mir ein offener Nvidia-Treiber natürlich noch viel lieber. Aber was soll's, ich hab nicht mal Nvidia-Hardware.
 
Der 8776 Treiber ist nun in den Ports...

FreeBSD, vermute ich mal...

Leute, ich fasse es ganz einfach nicht. Da wurde gerade schwarz auf weiss demonstriert, was das Problem mit Blobs ist, und Ihr macht einfach weiter, als ob nichts passiert waere.

Nvidia behauptet, der Bug sei behoben, und Ihr glaubt das einfach mal so, ohne dass Ihr die Moeglichkeit habt, das zu ueberpruefen.

Auch, wenn ich mich hier unbeliebt machen sollte: die einzig korrekte Massnahme waere es, den Blob ein fuer allemal aus dem System rauszuwerfen.

BTW: meine ganz persoenliche Erfahrung mit groesseren Firmen, die Blobs ausliefern (seien es nun Treiber oder einfach nur irgendwelche Libraries fuer diverse "Enterprise"-Produkte): es handelt sich meistens nicht um irgendwelche Patent- oder Copyright-Probleme, sondern einfach nur darum, dass die Leute, die das Zeug entwickeln absolut keine Ahnung haben. Real-Life: Software hat einen Bug, ich schreibe einen Bugreport, hangele mich durch -zig Support-Instanzen, bekomme vom Hersteller einen Hotfix, der das Problem loesen soll. Mehrere Tage getestet, Ergebnis: Bug ist nicht gefixt. Rueckmeldung an Hersteller (wieder durch alle Support-Instanzen). Noch ein Hotfix, der das Problem jetzt aber "ganz sicher behebt." Mehrere Tage getestet, ist immer noch kaputt. Und so weiter und so fort. Nach drei Monaten (!), in denen ich mich ausschliesslich mit diesem einen Bug beschaeftigt hatte, habe ich dem Hersteller gesagt, er koenne mich mal, und wir wuerden das betroffene Feature halt nicht mehr verwenden. Ergebnis: ich hatte (endlich) meine Ruhe, und der Hersteller konnte den Bugreport schliessen. Aus dem Auge, aus dem Sinn. Der Bug existiert noch heute, und ich kenne mindestens eine Bank in Europa, der ich mein Geld jedenfalls nicht anvertrauen werde, da sie exakt auf den gleichen Bug gestossen ist, der Bug aber aus Sicht des Herstellers nicht mehr weiter bearbeitet werden muss (Kunde hat Workaround aka verwendet das Feature nicht mehr).

Gibt es von Nvidia einen detaillierten Fehlerbericht inkl. Regressionstest mit Ergebnissen vor und nach dem Patch? Und selbst wenn es so etwas gibt: kann das irgendjemand ueberpruefen?

Mein Gott, seit Ihr wirklich *SO BLIND*? Wisst Ihr wirklich nicht, wie in solchen Firmen die Softwareentwicklung ablaeuft? Glaubt Ihr wirklich daran, dass ATI, Nvidia, Adaptec, IBM, und wie sie alle heissen, auch wiriklich nur das geringste Interesse daran haben, qualitativ hochwertige Software abzuliefern? Und: warum sollte so ein Hersteller sich ueberhaupt Gedanken um Softwarequalitaet machen, solange die Kunden (das seit Ihr) den Schrott, der momentan abgeliefert wird, akzeptieren?

Nein, es gibt exakt eine einzige Moeglichkeit, brauchbare Software und Treiber zu bekommen: Open Source und (fuer Treiber) hinreichende Dokumentation der Hardware.

Jeder von Euch, der Blobs als "Kompromiss" akzeptiert und das oeffentlich propagiert, schadet der gesamten Free- und Opensourcebewegung.
 
Hallo!

Ich bin ja absolut deiner Meinung kili, habe aber den Widerstand schon aufgegeben. Es setzt sich auf dieser Welt nicht (mehr?) Qualität durch, sondern das was am buntesten, lautesten, grellsten kurz: am geilsten ist. Die dumpfe Masse akzeptiert das längst und ich bezweifle, dass die dumpfe Masse überhaupt noch etwas merkt. Sollen sie allesamt daran zu grunde gehen (tun sie aber auch nicht, die Industrie steuert der natürlichen Selektion im richtigen Moment gegen).

Du kannst damit vielleicht ganz wenige Leute aufrütteln, der Rest will aber, dass Quake flüssig läuft *aufstampf* oder bei glxgears ein paar Tausend FPS stehen haben. Ob sie das jetzt brauchen oder nicht ist zweitrangig. Ob der Treiber Lücken ins System reisst ist vermutlich nur dritt- oder viertrangig. Ob es dafür eine überprüfbar sichere Lösung gibt spielt quasi gar keine Rolle mehr.

OpenSource wird zum Großteil nur mehr mit "legal Gratis" gleichgesetzt, der ursprüngliche Gedanke dahinter spielt bei vielen keine Rolle. Leider.

Ciao.
Markus Mann
];-)
 
Markus: Sorry wenn ich das hier erwähne, aber nur tote Fische schwimmen mit dem Strom und keiner von uns muß die Masse nachahmen. Wenn er das will: Bitte. Aber ich muß das nicht haben und viele andere auch nicht. Wäre verdammt schade, wenn wir morgen keine Alternativen hätten und wenn wir heute nichts dafür tun, dann haben wir morgen eben keine Alternativen mehr, Fatalismus ist da völlig unangebracht.

Ich verweise in dem Zusammenhang übrigens auf die neusten Pläne von AMD eine GPU mit einer CPU zu verschmelzen, Projektname Fusion. Stellt euch mal vor, was passiert, wenn sich das am Markt durchsetzt und wir haben keine Doku, da will ich gar nicht dran denken. Ich weiß nicht, wie das AMD nach der Übernahme von ATI praktisch machen will, aber ich befürchte da großes Ungemach (jetzt nichtmal auf Sicherheitsproblematik bezogen. Ich kann mir übrigens auch vorstellen, das wir bald ein AMD-ATI bzw. Intel-NVidia Oligopol haben werden wenn man sich die Konzentrationstendenzen so ansieht. Das wird imho gar kein Spass werden...
 
An der Stelle moechte ich mal Theo nochmal zur Sprache bringen.. sinngemaess:
sobald (auch) ein OSS Projekt diese Blobs akzeptiert (Linux, FreeBSD), wird es
noch viel schwerer gegen den Hersteller zu agieren "FreeBSD accepted it as it is,
now why should we open it just because of you" .. etc.

Sobald dann die von DS angesprochenen "Kombinationen" von CPU/GPU kommen
und FreeBSD wieder per NDA oder per blob da drauf einsteigt... der letzte macht
dann bitte das Licht aus - will sagen, setzt das undokumentierte lights_out register auf 0xdeadbeef.

Sigh!
 
Markus: nein, ganz sicher nicht, ich habe das nur in einem sehr höflichen Ton geschrieben, weil es ein sehr politisches Thema ist, das behutsam angegangen werden muß. Es gibt da mehrere konträre Positionen innerhalb BSD, siehe post von double-p und man sollte das nicht BSD-intern hochkochen imho sondern erstmal Konsens in den eigenen Reihen schaffen. Sonst endet das noch wie mit der Volksfront zur Befreiung Judäas oder so ähnlich. ;)
 
Zurück
Oben