33 Jahre alter UNIX-Bug entdeckt

Ein Bug in UNIX, der seit 33 Jahren unerkannt existierte, wurde jetzt geschlossen. Ein OpenBSD-Entwickler ist durch Zufall darauf gestoßen. Er hatte ein neues Tool gegen eine Sparc64-Hardwareplattform erprobt. Dabei war der Fehler aufgetaucht. Der Bug reicht zu einer Entwicklung des TK-Konzerns AT&T aus dem Jahr 1975 zurück. Das wäre UNIX Version 6.

Damals hatte AT&T eine eigene UNIX-Entwicklung. Otto Moerbeek, ein OpenBSD-Entwickler, hat die Lücke gefunden und geschlossen. Der Fix steht zum Download bereit.

Moerbeek entwickelt Werkzeuge für OpenBSD-Projekte (Berkeley Software Distribution), eine weit verbreitete, quelloffene und UNIX-ähnliche Umgebung, die auch Grundlage für Apples Betriebssystem Mac OS X ist. Der Entwickler fand den Bug beim Testen einer neuen Implementierung von ‘malloc’, einen Memory Allocator. Ein Nutzer, der ähnliche Tests auf einer Sparc64-Plattform durchführte, warnte ihn vor einer Auffälligkeit. So sei die Kompilierung von größeren C++-Projekten in dieser Kombination nicht möglich.

Bei der Erforschung dieser Auffälligkeit fand Moerbeek die Lücke. Sie befand sich, seinen eigenen Angaben zufolge, in den Tiefen des Compiler-Werkzeuges ‘yacc’. Sie wurde deshalb genau jetzt entdeckt, weil das neue malloc eine sehr sensible Reaktion auf Buffer-Overflow-Möglichkeiten zeigt. Diese hohe Sicherheitseinstellung hatte demnach sofort gegriffen. Die Lücke war allerdings bisher nur bei der Anwendung von malloc in der neuen Version auf Sparc64 aufgetaucht.

FreeBSD-Entwickler sind indes nicht das erste Mal über Leichen im Keller von UNIX gestolpert: Bereits im Mai dieses Jahres war wegen sehr empfindlicher moderner Testprogramme eine Lücke aus dem Jahr 1983 aufgetaucht. Auch sie saß im yacc-Compiler.