GCC zerlegt Pfade in Stücke – und macht damit Path-Audits blind
Paths in Pieces
Linux-Distributionen und Paketmanager prüfen fertige Binaries per grep oder strings auf absolute Build-Pfade. Bei GCC und x86-64 schlägt das oft fehl: Der Compiler zerlegt String-Konstanten in überlappende 16- bis 64-Byte-Stücke für Vektorregister, sodass der Pfad im Binary gar nicht mehr als zusammenhängende Zeichenkette existiert. Bei Conda-artigen Padding-Pfaden kommt zusätzlich Deduplizierung hinzu. Der Autor zeigt, warum solche Audits brüchig sind – und plädiert trotzdem dafür, String-Konstanten intakt zu lassen.
Warte, hat GCC gerade /home/linuxbrew/.linuxbrew in einen völlig anderen Pfad /home/linuxbrew/xbrew/.linuxbrew mit einem erfundenen Unterverzeichnis xbrew verwandelt? Wie?