Aus der Ferne ausnutzbare Root-Schwachstelle im Ping-Dienstprogramm, das in FreeBSD enthalten ist

In FreeBSD wurde eine Schwachstelle (CVE-2022-23093) im Ping-Dienstprogramm identifiziert, das in der Basisverteilung enthalten ist. Das Problem könnte möglicherweise zur Remote-Codeausführung mit Root-Rechten führen, wenn ein Ping an einen externen Host gesendet wird, der von einem Angreifer kontrolliert wird. In den FreeBSD-Updates 13.1-RELEASE-p5, 12.4-RC2-p2 und 12.3-RELEASE-p10 wurde ein Fix bereitgestellt. Es ist noch nicht klar, ob andere BSD-Systeme von der identifizierten Schwachstelle betroffen sind (es gibt noch keine Berichte über Schwachstellen in NetBSD, DragonFlyBSD und OpenBSD).

Die Sicherheitslücke wird durch einen Pufferüberlauf im Parsing-Code für ICMP-Nachrichten verursacht, die als Antwort auf eine Überprüfungsanfrage empfangen werden. Der Code zum Senden und Empfangen von ICMP-Nachrichten in Ping verwendet Raw-Sockets und wird mit erhöhten Rechten ausgeführt (das Dienstprogramm verfügt über das Setuid-Root-Flag). Die Antwort wird auf der Ping-Seite durch die Rekonstruktion der IP- und ICMP-Header der vom Raw-Socket empfangenen Pakete verarbeitet. Die ausgewählten IP- und ICMP-Header werden von pr_pack() in Puffer kopiert, ohne zu berücksichtigen, dass nach dem IP-Header möglicherweise zusätzliche erweiterte Header im Paket vorhanden sind.

Solche Header werden aus dem Paket extrahiert und in den Header-Block aufgenommen, aber bei der Berechnung der Puffergröße nicht berücksichtigt. Wenn der Host als Antwort auf eine gesendete ICMP-Anfrage ein Paket mit zusätzlichen Headern zurücksendet, wird deren Inhalt in einen Bereich außerhalb der Puffergrenze auf dem Stapel geschrieben. Dadurch kann ein Angreifer bis zu 40 Byte Daten auf dem Stapel überschreiben und so möglicherweise die Ausführung seines Codes ermöglichen. Die Schwere des Problems wird durch die Tatsache gemildert, dass sich der Prozess zum Zeitpunkt des Auftretens des Fehlers in einem Zustand der Systemaufrufisolation (Fähigkeitsmodus) befindet, was es schwierig macht, nach Ausnutzung der Schwachstelle Zugriff auf den Rest des Systems zu erhalten .

Source: opennet.ru

Kommentar hinzufügen