
Proof-of-Concept-Exploit für CVE-2020-8277, eine Denial-of-Service-Schwachstelle im Node.js-DNS-Resolver, die einen Out-of-Memory-Read über manipulierte DNS-Antworten demonstriert.
Nur zu Bildungszwecken.
# dieses Repository klonen
$ git clone https://github.com/masahiro331/CVE-2020-8277
# bind starten
$ docker build -t bind-local ./bind
# TCP-Fallback erforderlich
$ docker run --rm --name bind -it -p 53:53 -p 53:53/udp bind
# Verwenden Sie eine Version "< v15.2.1"
# Wenn Sie die korrigierte Version verwenden, bauen Sie Node.
$ git clone https://github.com/nodejs/node
$ git checkout df211208c0
$ ./configure
$ make -j8
$ make install
# PoC ausführen
$ node main.js
Siehe Referenz für Details.
https://nodejs.org/en/blog/vulnerability/november-2020-security-releases/
Die Sicherheitsmeldung gibt an, dass die Auflösung eines Hostnamens, der eine große Anzahl von Datensätzen zurückgibt, zu einem DoS führt.
Der Schwachstelle liegt ein Read-Out-of-Memory-Fehler zugrunde.
Betroffene Zeile.
https://github.com/nodejs/node/blob/1fd2c8142b611baadc973947b83c0863cb003d9d/src/cares_wrap.cc#L764