Die FreeBSD-Maintainer haben eine Sicherheitswarnung zu dem Ping-Befehl herausgegeben. Mit sorgsam präparierten Paketen könnten Angreifer nicht nur Ping zum Absturz, sondern unter Umständen auch untergeschobenen Schadcode zur Ausführung bringen. Updates stehen bereit. Der Ping-Befehl setzt ICMP-echo-Pakete ab und erhält Antworten darauf, womit sich herausfinden lässt, ob ein Rechner online und verfügbar ist. Die FreeBSD-Entwickler erläutern, dass der Ping-Befehl dazu RAW-IP-Pakete verwendet. Daher benötigt Ping erhöhte Rechte im System, die es per SetUID-Bit erhält. Wenn Ping laufe, erstelle es die benötigten RAW-Sockets und lasse schließlich die erhöhten Rechte wieder fallen. Der Fehler kann bei der Bearbeitung von Ping-Antworten auftreten. Dazu müsse Ping die IP- sowie ICMP-Header der Ping-Antwort rekonstruieren und – sofern vorhanden – ein „quoted Paket“, das ein Paket präsentiert, das einen ICMP-Fehler ausgelöst hat. Während die Funktion pr_pack()
die empfangenen IP- und ICMP-Header in Puffer auf dem Stack verfrachtet, berücksichtigt sie möglicherweise vorhandene IP-Options-Header hinter dem IP-Header des Antwort- oder „quoted“-Pakets nicht. Sind dort IP-Options vorhanden, könnten bis zu 40 Byte auf dem Zielpuffer überlaufen (CVE-2022-23093). In Folge könnte Ping abstürzen oder ein bösartiger Host die Ausführung untergeschobenen Codes auslösen. Die FreeBSD-Entwickler ergänzen jedoch, dass Ping in einer „capability mode Sandbox“ auf allen betroffenen FreeBSD-Versionen laufe und daher sehr beschränkt darin sei, wie es mit dem Rest des Systems an der Stelle des auftretenden Fehlers interagieren könne. Eine Übergangslösung ist nicht verfügbar. Jedoch gibt es Binär- und Quellcode-Patches, die die Schwachstelle ausbessern. Die RELEASE-Versionen lassen sich etwa mit den Befehlen freebsd-update fetch
und anschließendem freebsd-update install
mit Binärpaketen aktualisieren. Wer sein System mittels Quellcode-Patch und buildworld
aktualisieren möchte, findet in der FreeBSD-Sicherheitswarnung eine kurze Anleitung. Geschlossen haben die FreeBSD-Maintainer die Lücke mit obigen Updates in FreeBSD 12, 12.3, 12.4, 13 und 13.1. FreeBSD-Administratoren sollten die Aktualisierung zügig anstoßen. Lücken in Ping, die Codeschmuggel erlauben, waren bislang selten. Viel bekannter sind Schwachstellen des Typs „Ping of Death“, bei dem sorgsam präparierte Ping-Pakete das Betriebssystem zum Absturz bringen. Etwa in Windows musste Microsoft so etwas noch 2013 korrigieren.