重大漏洞!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请求,然后在 ...
随机推荐
- Android开发环境搭建步骤-【Android】
本教程是android开发环境在windows下的安装配置,经本人测试完全正确无误.这个教程是史上最详细的android开发环境搭建教程. 工具/原料 Eclipse 3.7.0.Java Jdk6. ...
- ddddddeeeessssssttttrrrrrrooooooyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy
我遥远的 POI 计划啊 https://loj.ac/problems/search?keyword=POI2011 atcoder 一套 动态 DP SAM 随便看 XSY 的题 UOJ Roun ...
- [转]Newtonsoft JSON how to dynamically change the date format?
本文转自:http://www.howtobuildsoftware.com/index.php/how-do/cg8K/jsonnet-newtonsoft-json-how-to-dynamica ...
- WPF 字体路径设置
以往在引用电脑里面没有的其它字体,都是需要把这个字体安装到自己电脑中, WPF程序中可以直接把字体文件拷到程序资源目录里面,这样就可以引用的到,不必要非安装这种字体; 下面总结了几种路径的具体方法,测 ...
- nodejs获取客户机ip
/** * Created by chaozhou on 2015/11/24. */ var getIp = function(req){ var ipStr = req.headers['x-fo ...
- MongoDB 学习(三)MongoDB 和 Spring 整合(Maven)
一.MongoDB 和 Spring 整合(Maven) 1.相关 jar 包准备 2.用 Maven 创建项目,pom.xml 文件 <project xmlns="http://m ...
- MySql数据快速导入
使用LOAD DATA INFILE 插入速度可以提升很多 左侧是直接导入100W花费135s ,Dos界面通过Load方式导入450W只用时23s,性能一下子显示出来了.
- java unsupported major.minor version 51.0 解决
1.概述 出现如题所述异常 是因为jdk高版本 编译后的class文件 运行在低版本的jre环境下(如jdk7编译 运行在jdk6环境下) 2. 解决方案 在eclipse等ide中重新编译 指定编译 ...
- webapp 的简单开发
web app 的技术平台很多,如adobe phonegap.sencha touch.appcan(国产).dcloud(国产)平台.我选择了dcloud平台,原因:简单,容易上手. web ap ...
- MySQL行(记录)详细操作
一 介绍 MySQL数据操作: DML ======================================================== 在MySQL管理软件中,可以通过SQL语句中的 ...