IBM WebSphere 不可信数据反序列化 - IBM WebSphere 7,8,8.5,9
标题:IBM WebSphere 不可信数据反序列化
应用程序:IBM WebSphere 7,8,8.5,9
描述:当存在 WASPostParam cookie 时,应用服务器会对不可信数据进行反序列化。
这可能导致资源耗尽型拒绝服务攻击,并可能实现远程代码执行。
作者:Federico Dotta <[email protected]>
Maurizio Agazzini <[email protected]>
供应商状态:已修复 (PI62375)
CVE 候选:通用漏洞与暴露项目已将该问题命名为 CVE-2016-5983。
参考:http://lab.mediaservice.net/advisory/2016-02-websphere.txt
http://lab.mediaservice.net/code/websphere_payload.zip
http://www-01.ibm.com/support/docview.wss?uid=swg21990060
当使用自定义表单认证时,IBM WebSphere 会在 LtpaToken2 会话 cookie 失效时自动设置 WASPostParam 和 WASReqURL 这两个 cookie。当用户再次登录以获取上次访问的页面及相关参数时,这些 cookie 中包含的数据会被使用。
WASPostParam 是一个序列化的 Java 对象,会在未检查对象类型的情况下被反序列化。此行为可被利用来造成拒绝服务,并可能执行任意代码。
能够引起拒绝服务的对象基于已知的公开 payload,来源于:
目前尚未发现能在 IBM WebSphere 上实现代码执行的已知链,但每天都有新的链被发现。
该攻击可按照以下步骤重现:
创建一个使用自定义表单认证的应用程序
用户登录后,应用服务器会设置 LtpaToken2
发起一个 HTTP GET 请求,其中包含 WASPostParam cookie,其内容为以下之一:
01_BigString_limited_base64.txt:这是一个字符串对象;服务器将以正常方式响应(对象大小与下一个类似)。
02_SerialDOS_limited_base64.txt:应用服务器将耗费约 2 分钟时间执行该请求,CPU 使用率 100%。
03_BigString_base64.txt:这是一个字符串对象;服务器将以正常方式响应(对象大小与下一个类似)。
04_SerialDOS_base64.txt:应用服务器将耗费未知时长执行该请求,CPU 使用率 100%。
此漏洞影响以下版本的 IBM WebSphere Application Server 及更早版本:
Liberty 16.0.0.2
9.0.0.1
8.5.5.10
8.0.0.12
7.0.0.41
应用 Interim Fix PI62375
http://www-01.ibm.com/support/docview.wss?uid=swg24042712
概念验证。
时间线
2016年8月20日 - 首次联系 IBM PSIRT (psirt at us.ibm.com) 2016年8月22日 - IBM 回复,漏洞被分配 PSIRT 咨询编号 6345 2016年10月5日 - IBM 通信告知修复信息 (PI62375) 2016年10月7日 - 发布安全公告