
CVE-2023-38545 POC für das curl-Kommandozeilenwerkzeug
Dieses POC basiert auf dem früheren POC von UTsweetyfish, das in diesem Repository geteilt wurde: https://github.com/UTsweetyfish/CVE-2023-38545. Im Gegensatz zu diesem POC ist dieses hier für das Kommandozeilentool und nicht für die libcurl-Bibliothek gedacht und benötigt weder Python noch Kompilierung.
Dieses POC betrifft den SOCKS5-Heap-Pufferüberlauf von curl und zeigt, wie der Empfangspuffer im curl-Kommandozeilentool zum Überlaufen gebracht werden kann. Standardmäßig initialisiert curl den Empfangspuffer mit einer Größe von 100k, wodurch es für CVE-2023-38545 unanfällig ist. Die Größe dieses Puffers kann jedoch durch Festlegen einer Ratenbegrenzung (--limit-rate) reduziert werden.
Um das POC auszuführen, richten Sie zuerst einen lokalen SOCKS5-Proxy über SSH ein (dies erfordert einen lokal laufenden SSH-Server):
ssh -fND 10801 localhost
Führen Sie als Nächstes das Skript poc.sh aus (dafür muss Netcat (nc) installiert sein):
./poc.sh
Es können mehrere Versuche erforderlich sein, um den Pufferüberlauf auszulösen. Wenn der Überlauf ausgelöst wird, beendet sich das Skript mit einem Fehlercode und einer Fehlermeldung, die angibt, dass die Ausführung abgebrochen wurde. Wenn der Überlauf fehlschlug und curl nicht beeinträchtigt wurde, wird eine Meldung angezeigt, die angibt, dass ein Host mit dem Namen "AAAA...." nicht aufgelöst werden konnte.
Links: