
Example of CVE-2022-46689 aka MacDirtyCow.
Beispiel für CVE-2022-46689, auch bekannt als MacDirtyCow.
MacDirtyCow ist eine Privilegienausweitungsschwachstelle in macOS, ähnlich der Dirty-COW-Schwachstelle in Linux. Die Schwachstelle befindet sich im Copy-on-Write-Mechanismus (COW), der vom XNU-Kernel von macOS verwendet wird. Die Schwachstelle ermöglicht es einem Angreifer, schreibgeschützte, root-eigene Dateien zu modifizieren, was dazu führen könnte, dass ein Angreifer Root-Rechte auf dem betroffenen System erhält.
Die Schwachstelle wird durch eine Race-Condition in der Art und Weise verursacht, wie der XNU-Kernel von macOS Copy-on-Write-Operationen (COW) auf Speicherseiten handhabt. Wenn eine Speicherseite als schreibgeschützt, aber auch als Copy-on-Write markiert ist, erstellt der Kernel eine neue Kopie der Seite, wenn eine Schreiboperation auf der Seite durchgeführt wird. Es gibt jedoch ein kleines Zeitfenster zwischen der Überprüfung der schreibgeschützten Seite und der Erstellung der neuen Kopie, in dem ein Angreifer die Seite im Speicher modifizieren könnte, wodurch die Schreibschutzbeschränkung effektiv umgangen wird.
Dieser Code (poc.c) öffnet eine als Befehlszeilenargument angegebene Datei und bildet sie mit mmap() in den Speicher ab. Anschließend wird eine Kopie der Datei erstellt und die speicherabgebildete Kopie der Datei modifiziert, indem sie mit dem Zeichen 'A' gefüllt wird. Schließlich wird die Originaldatei mit der modifizierten Kopie der Datei überschrieben.