# CVE-2020-8277
For educational purposes only.
## Quick Run
```
# 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
```
## Details
See Reference for the details.
https://nodejs.org/en/blog/vulnerability/november-2020-security-releases/
The advisory states that resolving a hostname that returns a large number of records will result in DoS.
The vulnerability has read out of memory error.
Affected line.
https://github.com/nodejs/node/blob/1fd2c8142b611baadc973947b83c0863cb003d9d/src/cares_wrap.cc#L764
[4.0K] /data/pocs/f7b3517f3fe9b6cbb9dd603cfd4e2ab508018162
├── [4.0K] dns-server
│ ├── [4.0K] bind
│ │ ├── [ 186] named.conf
│ │ └── [ 66K] pudim.com.zone
│ ├── [ 208] docker-compose.yml
│ └── [ 531] zone_generator.py
├── [ 888] README.md
└── [4.0K] server
├── [ 426] index.js
├── [ 260] package.json
└── [ 31K] package-lock.json
3 directories, 8 files