In FreeBSD wurde eine SicherheitsanfĂ€lligkeit (CVE-2022-23093) in der Ping-Utility entdeckt, die Teil der Standardauslieferung ist. Das Problem könnte potenziell zur Remote-AusfĂŒhrung von Code mit Root-Rechten fĂŒhren, wenn ein Ping an einen externen, vom Angreifer kontrollierten Host gesendet wird. Ein Patch wurde in den Updates FreeBSD 13.1-RELEASE-p5, 12.4-RC2-p2 und 12.3-RELEASE-p10 bereitgestellt. Ob andere BSD-Systeme von der entdeckten AnfĂ€lligkeit betroffen sind, ist noch unklar (Berichte ĂŒber AnfĂ€lligkeiten in NetBSD, DragonFlyBSD und OpenBSD liegen bislang nicht vor).
Die SicherheitsanfĂ€lligkeit wird durch einen Buffer Overflow im Code zur Analyse von ICMP-Nachrichten verursacht, die als Antwort auf den Ping-Anfrage kommen. Der Code fĂŒr das Senden und Empfangen von ICMP-Nachrichten in Ping verwendet Raw-Sockets und lĂ€uft mit erhöhten Rechten (das Utility wird mit dem Setuid-Root-Flag ausgeliefert). Die Verarbeitung der Antwort erfolgt von Ping aus, indem die IP- und ICMP-Header der Pakete, die aus dem Raw-Socket empfangen werden, rekonstruiert werden. Die extrahierten IP- und ICMP-Header werden von der Funktion pr_pack() in Puffer kopiert, ohne zu berĂŒcksichtigen, dass im Paket nach dem IP-Header zusĂ€tzliche erweiterte Header vorhanden sein können.
Solche Header werden aus dem Paket extrahiert und in den Headerblock aufgenommen, jedoch nicht bei der Berechnung der PufferspeichergröĂe berĂŒcksichtigt. Falls der Host als Antwort auf die gesendete ICMP-Anfrage ein Paket mit zusĂ€tzlichen Headern zurĂŒcksendet, wird deren Inhalt in den Bereich auĂerhalb des Puffers im Stack geschrieben. Infolgedessen kann der Angreifer bis zu 40 Bytes Daten im Stack ĂŒberschreiben, was potenziell zur AusfĂŒhrung eigenen Codes fĂŒhren kann. Die GefĂ€hrlichkeit des Problems wird durch die Tatsache gemildert, dass der Prozess zum Zeitpunkt des Auftretens des Fehlers im Zustand isolierter Systemaufrufe (Capability Mode) ist, was den Zugriff auf den Rest des Systems nach der Ausnutzung der AnfĂ€lligkeit erschwert.
Quelle: opennet.ru
