全部产品
云市场

【漏洞公告】Java 远程调试(Remote Debug)存在远程命令执行漏洞

更新时间:2017-11-15 13:27:49

漏洞描述

Java 虚拟机为 Java 语言提供 Java debugger、JDB 调试功能,应用在编译过程中可以开启 Remote Debug 模式,方便程序员远程对代码进行调试。但是,该模式没有身份校验机制,且可执行系统命令。

在 Remote Debug 模式下,黑客可连接该端口直接入侵主机,甚至可获取服务器权限,从而窃取数据。该漏洞的官方评级为 高危

修复方案

  • 关闭 Remote Debug 模式。

    • 直接关闭 Java Debug 模式进程。
      1. java -Xdebug -Xrunjdwp:server=y,transport=dt_socket,address=7001,suspend=n
    • 使用 Tomcat 中间件。

      注释 startup.sh 第 2 行:

      1. declare -x CATALINA_OPTS="-server -Xdebug -Xnoagent -Djava.compiler=NONE-Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8788"

      然后,重启对应项目 Tomcat 服务。

  • 使用 ECS 安全组防火墙 限制外部 IP 对 Remote Debug 端口的访问。