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

漏洞描述

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

影响版本

fastjson <=1.2.68

or

fastjson sec版本 <= sec9

安全版本

fastjson >=1.2.69

or

fastjson sec版本 >= sec10

安全建议

较低版本升级至1.2.69可能会出现兼容性问题,建议升级至特定版本的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.0版本即可。分批次升级Pandora版本可参考运行环境升降级,请选择在业务低峰或者其他合适的变更窗口进行,并提前在测试环境进行测试,避免出现容器版本升级失败导致应用无法正常启动。

    K8s集群直接部署应用,并选择Pandora版本为最新的3.6.0版本即可。

    注意 请勿在业务高峰时间升级Pandora版本,使用很早之前发布的3.3.x或者更早的版本,请在测试环境测试正常后,再升级生产环境的Pandora版本,否则可能出现升级后应用启动失败,而又无法回退的情况,遇到该情况时,请使用钉钉扫搜索群号:23336518或描下方二维码,并提供应用ID,将有值班同学尽快更正出现升级失败的应用的容器版本。

    用户群二维码

    使用EDAS-Container作为应用运行环境的应用,在升级EDAS-Container中的Pandora版本至最新的3.6.0后,该应用下面所有的ECS主机上的EDAS Agent、ARMS Agent都会自动升级,无需再执行下面的操作单独升级。

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

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

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

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