仅供教育用途。
# 克隆此仓库
$ git clone https://github.com/masahiro331/CVE-2020-8277
# 运行 bind
$ docker build -t bind-local ./bind
# 需要 TCP 回退
$ docker run --rm --name bind -it -p 53:53 -p 53:53/udp bind
# 使用 "< v15.2.1" 版本
# 如果使用修复版本,构建 node。
$ git clone https://github.com/nodejs/node
$ git checkout df211208c0
$ ./configure
$ make -j8
$ make install
# 运行 PoC
$ node main.js
详情请参见参考文献。
https://nodejs.org/en/blog/vulnerability/november-2020-security-releases/
公告指出,解析返回大量记录的主机名将导致拒绝服务(DoS)。
该漏洞存在内存越界读取错误。
受影响的行。
https://github.com/nodejs/node/blob/1fd2c8142b611baadc973947b83c0863cb003d9d/src/cares_wrap.cc#L764