重大漏洞!PHP multipart/form-data头部解析远程拒绝服务漏洞
"有些人看不懂,简单比喻来说吧:目前刚出的任何安全防护都不会拦,网站类专属漏洞
畸形数据包,2KB随机数据包,2M网速打死各种网站,cdn通挂!"
PHP multipart/form-data头部解析远程拒绝服务漏洞
发布日期:2015-05-18
受影响的软件及系统:
====================
PHP 5.0.0 - 5.0.5
PHP 5.1.0 - 5.1.6
PHP 5.2.0 - 5.2.17
PHP 5.3.0 - 5.3.29
PHP 5.4.0 - 5.4.40
PHP 5.5.0 - 5.5.24
PHP 5.6.0 - 5.6.8
未受影响的软件及系统:
======================
PHP 5.4.41
PHP 5.5.25
PHP 5.6.9
综述:
======
PHP 存在一个远程拒绝服务漏洞,攻击者通过发送恶意的HTTP请求,可以导致CPU资源大量占用,造成远程拒绝服务。
此漏洞影响所有PHP 5版本,更低版本可能也受影响,建议尽快升级。
分析:
======
PHP 在处理HTTP请求中的multipart/form-data头部数据时存在一个安全漏洞,导致PHP大量重复分配和拷贝内存的操作,可能造成CPU资源占用100%并持续较长时间,这可能造成远程拒绝服务攻击。
PHP 调用multipart_buffer_headers()函数来解析HTTP请求中的multipart头部数据,每次解析由get_line得到的一行。当被解析的行是以空白字符开始或者不包含":"字符时,该行将被当作是前一头字段的延续来处理。此时,将会分配一个新的缓冲区,将前一头字段的值与当前行拼接起来作为该字段新的值。这个过程包含1次emalloc调用、2次memcpy调用。
若一个头字段是由多行组成,将导致多次调用emalloc与memcpy,并且分配的空间与拷贝的长度将越来越大。
因此,当行的数目足够多时,拷贝的操作将显著的消耗服务器的CPU。实际测试中,包含近一百万行的头字段可以使服务器的CPU保持100%几秒或者数十秒。如果并发多个攻击请求,可能造成更长时间的资源占用。
攻击者可通过发送一个2M左右的包含多行multipart头部数据的HTTP请求来发起攻击,无需认证,也不依赖PHP程序本身的内容。
解决方法:
==========
没有好的临时解决方法,建议进行升级。
厂商状态:
==========
PHP 已经在下列版本中修复此漏洞:
PHP 5.4.41:
http://php.net/downloads.php#v5.4.41
PHP 5.5.25:
http://php.net/downloads.php#v5.5.25
PHP 5.6.9:
http://php.net/downloads.php#v5.6.9
附加信息:
==========
1. https://bugs.php.net/bug.php?id=69364
2. http://php.net/ChangeLog-5.php#5.6.9
3. http://www.nsfocus.net/index.php ... do=view&aid=157
重大漏洞!PHP multipart/form-data头部解析远程拒绝服务漏洞的更多相关文章
- Apache CXF多个远程拒绝服务漏洞(CVE-2013-2160)
漏洞版本: Apache Group CXF <= 2.5.10 Apache Group CXF 2.7.4 Apache Group CXF 2.6.7 漏洞描述: BUGTRAQ ID: ...
- Linux Kernel 远程拒绝服务漏洞
漏洞名称: Linux Kernel 远程拒绝服务漏洞 CNNVD编号: CNNVD-201307-309 发布时间: 2013-07-18 更新时间: 2013-07-18 危害等级: 漏洞类 ...
- WordPress ‘crypt_private()’方法远程拒绝服务漏洞
漏洞名称: WordPress ‘crypt_private()’方法远程拒绝服务漏洞 CNNVD编号: CNNVD-201306-250 发布时间: 2013-06-20 更新时间: 2013-06 ...
- 关于Linux TCP "SACK PANIC" 远程拒绝服务漏洞的修复
Linux 内核被曝存在TCP "SACK PANIC" 远程拒绝服务漏洞(漏洞编号:CVE-2019-11477,CVE-2019-11478,CVE-2019-11479),攻 ...
- Wireshark DTN解析器拒绝服务漏洞
受影响系统:Wireshark Wireshark 2.2.0 - 2.2.1Wireshark Wireshark 2.0.0 - 2.0.7描述:CVE(CAN) ID: CVE-2016-937 ...
- Wireshark OpenFlow解析器拒绝服务漏洞
受影响系统:Wireshark Wireshark 2.2.0 - 2.2.1Wireshark Wireshark 2.0.0 - 2.0.7描述:CVE(CAN) ID: CVE-2016-937 ...
- OpenSSH远程拒绝服务漏洞
漏洞版本: OpenSSH 漏洞描述: Bugtraq ID:61286 OpenSSH是一种开放源码的SSH协议的实现 OpenSSH存在一个安全漏洞,允许远程攻击者利用漏洞提交恶意请求,使应用程序 ...
- WordPress 3.5.1 crypt_private()远程拒绝服务漏洞(CVE-2013-2173)
漏洞版本: WordPress 3.5.1 漏洞描述: BUGTRAQ ID: 60477 CVE(CAN) ID: CVE-2013-2173 WordPress是一种使用PHP语言和MySQL数据 ...
- html5 file upload and form data by ajax
html5 file upload and form data by ajax 最近接了一个小活,在短时间内实现一个活动报名页面,其中遇到了文件上传. 我预期的效果是一次ajax post请求,然后在 ...
随机推荐
- 【随笔】nginx下的301跳转,两个域名指向同一个服务器ip
301跳转 页面永久性移走,通常叫做301跳转,也叫301重定向,301转向. 指的是当用户点击一个网址时,通过技术手段,跳转到指定的一个网站. 用以解决两个域名指向同一个服务器ip,当访问m.xxx ...
- windows下限制Redis端口只能由本机访问
在使用redis的时候,我只想要本机能够访问,这时可通过防火墙会阻止外界的访问 1.找到防火墙,选择高级设置2.点击"入站规则",再点击"新建规则" 3.点击& ...
- 自定义控件如何给特殊类型的属性添加默认值 z(转)
自定义控件如何给特殊类型的属性添加默认值 z 定义控件如何给特殊类型的属性添加默认值了,附自定义GroupBox一枚 标题有点那啥,但确实能表达我掌握此法后的心情. 写自定义控件时往往会有一个需求,就 ...
- React.js 小书 Lesson21 - ref 和 React.js 中的 DOM 操作
作者:胡子大哈 原文链接:http://huziketang.com/books/react/lesson21 转载请注明出处,保留原文链接和作者信息. 在 React.js 当中你基本不需要和 DO ...
- Word 只读模式修改
一.设置只读模式: 方法一: 打开目标文件,点击另存为,如下: 2.点击常规选项,勾选‘建议以只读方式打开文档,也可以在此页给文档加密: 方法二: 在工具栏-->审阅--->限制编辑: 二 ...
- java POST 传值 加签 验证
话不多说,代码如下 package com.syl.test_key; import lombok.extern.slf4j.Slf4j; import org.apache.commons.code ...
- dategrid快速录入一行数据的一波操作
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- MongoDB 学习(二)可视化界面
一.安装可视化界面 1.mongobooster 安装和配置 1.下载安装 下载地址:https://nosqlbooster.com/downloads 下载完成后直接点击安装: 安装完成弹出界面: ...
- git必会必知
1 前言 git前身是BitKeeper,但是他不是开源软件,不符合当时开源趋势,于是就会有了开源的git,git开发只用了十天时间.目前git是公司开发必不可少的一个工具,用于多人开发的分布式版本控 ...
- maven <resources>标签
<build> <finalName>com_dubbo_config</finalName> <resources> <resource> ...