Chromium stürzt mit dem Fehler "chrome in free() ab

CommanderZed

OpenBSD User
Teammitglied
Moin,

ich habe gerade auf OpenBSD 5.9 aktualisiert, inkl. aller Packages.

Sobald ich den Chromium starte, strüzt er mit "chrome (cryptische, varieende nummer) in free(): error use after free 0x80a05780
Abort trap (core dumped)

ab.
Es handelt sich um ein etwas älteres Thinkpad X31 mit Pentium 4.

Hab ich hier etwas verpasst? Muss ich noch irgendwas im kernel aktivieren?
 
Das ist anscheinend ein Sicherheitsfeature von OpenBSD (wenn FreeBSD das auch hat wüsste ich gerne wie ich das einschalte).

Auf jeden Fall ist das ein Bug in Chrome. Ich würde den coredump mal mit dem Debugger aufmachen, einen Stacktrace erzeugen und mir ein paar interessante Frames ansehen. Damit würde ich dann zum Chromium Projekt rennen und einen Bug Report aufmachen. Use after free ist eine Todsünde. Heartbleed war zum Beispiel so ein Use after free. Mit dem Bonus dass OpenSSL sein eigenes Memory-Management hatte, das eben jenen Sicherheitsmechanismus den Chrome bei dir auslöst umging.
 
Hmmm, kann ich das Temporär ausschalten, um das ding erstmal weiternutzen zu können?

Wie erstelle ich einen Stacktrace?

Kann das alternativ irgendwie an der Hardware liegen? Das ding ist ja nun wirklich recht Assbach Uralt ^^
 
Nein, ein Use after free ist immer ein Bug. Jedenfalls kann ich mir gerade kein Szenario vorstellen in dem es das nicht ist.

Ein Stacktrace solltest Du mit gdb erstellen können.
 
Für den Stacktrace braucht man aber einen Chromium, der mit Debug-Optionen gebaut wurde, sonst sieht man nichts.
 
Debuggen ist nicht immer einfach. Aber ohne die Infos wird mit seinem Bug-Report halt nicht viel passieren. Da mussten wir alle mal durch.

Wenn Du das wirklich ausschalten willst, nun, da kenne ich mich bei OpenBSD nicht aus. Hat OpenBSD sysctl?
 
Das ist anscheinend ein Sicherheitsfeature von OpenBSD (wenn FreeBSD das auch hat wüsste ich gerne wie ich das einschalte).

Ich auch! Es gibt aber sowas Aehnliches, was in diese Richtung geht:
bzw.
kann man mit Canary Code, einer Speicheregion auf Stackframe
analog einer Sektion bzw. Segment zwischen zwei Zaeunen, schon
was "basteln" bzw. diese Komponente hat "Hackvalue". Wobei
wohl eher (vielleicht) in die Richtung ginge, wo nach Du suchen wuerdest.

Hat OpenBSD sysctl?

Aber selbstverstaendlich:
 
Buffer Over- und Underruns sind IMHO etwas ganz anderes. Canaries für die sind am einfachsten auf der Compiler-Seite einzubauen.

Eine Use-after-free Erkennung kann man wahrscheinlich am besten im Kernel im VM System unterbringen. Die braucht auch keine Unterstützung vom Compiler. Sie macht halt leider Heap-Zugriffe teurer. Aber dafür funktioniert sie dann universell und zumindest im Testbetrieb, oder wenn ich Software entwickle würde ich das auf jeden Fall einschalten.

Wenn ich einen Webserver oder kritische Infrastruktur betriebe, dann schaltete ich das permanent ein.
 
Zurück
Oben