【安全漏洞通告】EDAS客户机中fastjson安全漏洞通告及解决方案

近日,阿里云应急响应中心监测到fastjson爆发新的反序列化远程代码执行漏洞,黑客利用漏洞,可绕过autoType限制,直接远程执行任意命令攻击服务器,风险极大。请参照下面的公告内容升级EDAS客户机(导入到EDAS中的ECS)中使用到fastjson依赖包的Java程序/组件版本。

漏洞描述

漏洞描述的详情请参见漏洞预警fastjson采用黑白名单的方法来防御反序列化漏洞,导致当黑客不断发掘新的反序列化Gadgets类时,在autoType关闭的情况下仍然可能绕过黑白名单防御机制,造成远程命令执行漏洞。经研究,该漏洞利用门槛较低,可绕过autoType限制,风险影响较大。阿里云应急响应中心提醒fastjson用户尽快采取安全措施阻止漏洞攻击。

影响版本

fastjson 1.2.80及以下版本或者fastjson sec9及以下版本

安全版本

fastjson 1.2.80以上版本或者fastjson sec10及以上版本

安全建议

较低版本升级至1.2.80以上版本可能会出现兼容性问题,建议升级至特定版本的sec10 bugfix版本或者关闭autotype功能的版本。

对EDAS用户的影响

EDAS客户机中涉及使用fastjson的程序或组件如下。

  • EDAS Agent:所有导入ECS集群的ECS均包含此组件,且为Java进程,容器服务K8s集群也包含此组件,但edas-agent容器中运行的edas-agent非Java版,所以仅ECS集群的应用ECS节点需要升级EDAS Agent,容器服务K8s集群的应用可忽略EDAS Agent组件。
  • Pandora:所有创建时选择了 EDAS Container 作为应用运行时环境的应用都会用到Pandora。
  • ARMS Agent:所有使用EDAS Container 作为运行环境的应用且开启了高级监控、选择Apache Tomcat以及标准Java应用运行环境、容器服务K8s集群应用都有使用ARMS Agent。
  • 用户自己应用包中用到的fastjson包。

修复解决办法

针对使用EDAS-Container作为应用环境中的应用,Pandora插件里面的fastjson包的修复方法

  • ECS集群从应用详情页应用运行环境信息项,即可看到应用当前使用的Pandora和Ali-Tomcat版本列表,在应用详情页面右上角,单击运行时环境升降级,分批次(前提是需要建立除默认分组以外的应用分组)升级Pandora版本至最新的3.6.3版本即可。

    分批次升级Pandora版本可参考升级或降级运行时环境,请选择在业务低峰或者其他合适的变更窗口进行,并提前在测试环境进行测试,避免出现容器版本升级失败导致应用无法正常启动。

  • K8s集群直接部署应用,并选择Pandora版本为最新的3.6.3版本即可。
    重要 请勿在业务高峰时间升级Pandora版本,使用此前发布的3.3.x或者更早版本。请在测试环境测试正常后,再升级生产环境的Pandora版本,否则可能出现升级后应用启动失败,而又无法回退的情况。如遇该情况,请加入钉群(钉群号:23336518)联系我们,提供应用ID,值班同学会尽快更正出现升级失败的应用的容器版本。
  • 使用EDAS-Container作为应用运行环境的应用,在升级EDAS-Container中的Pandora版本至最新的3.6.3后,该应用下面所有的ECS主机上的EDAS Agent、ARMS Agent都会自动升级,无需再执行下面的操作单独升级。

针对ECS集群且应用是使用标准Java应用运行时环境、Apache Tomcat作为应用运行环境应用的修复方法

只需要进行一次正常的应用部署操作即可自动升级ECS主机上的EDAS Agent、ARMS Agent版本。

针对用户自己应用包中用到的fastjson包,且版本在受影响的范围内这种情况的修复方法

请用户自行或者联系软件开发商升级应用包中的fastjson包的版本至1.2.80以上版本或者带sec10的版本并重新测试、验证、发布即可。