Apache Synapse 远程代码执行漏洞(CVE

0x00事件背景


Apache Synapse 是一个简单、轻量级的高性能企业服务总线 (ESB),它是在 Apache Software Foundation 的 Apache License Version 2.0 下发布的。使用 Apache Synapse,您可以通过 HTTP、HTTPS、Java™ Message Service (JMS)、简单邮件传输协议 (SMTP)、邮局协议版本 3 (POP3)、FTP、文件系统和许多其他传输介质筛选、转换、路由、操作和监视经过大型企业系统的 SOAP、二进制文件、XML 和纯文本消息。

在 2017 年 12 月 10 日,Apache 官方公开了关于 Apache Synapse 存在严重漏洞(CVE-2017-15708),可导致远程代码执行,360CERT 随后对该漏洞进行了分析验证。

0x01 漏洞描述


Apache Synapse 在启动后会开启 RMI 服务(端口 1099),由于该服务未对请求的对象类型进行校验,存在反序列化漏洞。同时,Apache Synapse 使用了版本较低的库 commons-collections-3.2.1 。通过使用该库中存在的 Gadget 在反序列化时是可以实现远程代码执行。

使用 ysoserial 来做一个利用验证

由于是出现在 RMI 的反序列漏洞,如果用户使用的 Java 的版本高于 8u121,7u131,6u141 也不会受到该漏洞的影响,因为在后面的版本加入了反序列化过滤机制。

0x02 全网影响


影响版本

Apache Synapse 3.0.0, 2.1.0, 2.0.0, 1.2, 1.1.2, 1.1.1

根据 360CERT 全网资产检索平台实时显示数据

0x03 修复建议


1. 升级到最新版本 3.0.1

2. 使用高版本的 Java

0x04 时间线


2017 年 12 月 10 日 Apache Synapse 远程代码执行漏洞公开

2017 年 12 月 11 日 360CERT发布预警

0x05 参考链接


http://www.openwall.com/lists/oss-security/2017/12/10/4

长按下方二维码关注360CERT!谢谢你的关注!


网站地址:https://cert.360.cn

注:360CERT官方网站提供《Apache Synapse 远程代码执行漏洞(CVE-2017-15708)预警》完整详情,点击Read more

本文分享自微信公众号 - 三六零CERT(CERT-360)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

MySQL部分从库上面因为大量的临时表tmp_table造成慢查询

背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_

皕杰报表之UUID

​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

2020年前端实用代码段,为你的工作保驾护航

有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )