CVE-2018-5711:一张GIF图片就能让服务器宕机的PHP漏洞

最近,台湾Web漏洞挖掘大牛Orange Tsai在对一些Web开发框架和程序实现模块进行安全审核的过程中,发现了一些有意思的漏洞。就比如说,这个PHP的CVE-2018-5711,它能用一张GIF图片就可导致服务器发生崩溃直至宕机,在现实中非常容易利用。在此,Orange Tsai简单地介绍了这个漏洞。

漏洞影响的PHP版本

包含以下PHP系列和其它所有PHP版本

PHP 5 < 5.6.33 PHP 7.0 < 7.0.27 PHP 7.1 < 7.1.13 PHP 7.2 < 7.2.1

漏洞细节

漏洞存在于文件ext/gd/libgd/gd_gif_in.c中,其中在LWZReadByte_函数中存在一个循环(while-loop):

GetCode函数仅只是一个包装类,GetCode_才是真正的执行体:

GetCode_ 会调用GetDataBlock来读取GIF图片中的数据:

以上就是涉及到的漏洞代码,你有发现一些端倪吗?

该漏洞依赖于从整形(int)到无符号字符(unsigned char)的类型转换。就像上述的:如果GetDataBlock_返回-1,则第400行中的scd->done将会被设置为True,并停止while循环。但是其定义的count是无符号字符,它总是从0到255的正数,所以这种循环停止动作是不会被触发执行的。

因此,最终结果就是,一张GIF图片就可以实现无限循环,导致服务器资源耗尽,直到崩溃宕机。

PoC

由于现实网络中,很多服务器都会用GD图形的扩展库,对用户上传的图片作重新尺寸调整处理,所以该漏洞具有很强的现实危害。

后记

Orange Tsai后续会公开更多0-day和与该漏洞相关的内容。

漏洞参考:

https://bugs.php.net/bug.php?id=75571 http://php.net/ChangeLog-7.php http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-5711

*参考来源:orange,FreeBuf小编clouds编译,转载请注明来自FreeBuf.COM

原文发布于微信公众号 - FreeBuf(freebuf)

原文发表时间:2018-01-31

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏腾讯移动品质中心TMQ的专栏

流量都去哪儿了 —— 三板斧搞定Android网络流量测试

流量是什么? 为什么要进行流量测试? 流量测试方法有哪些? 怎么统计流量并进行结果分析? 带着这些疑问,小编带您探寻Android网络流量的测试方法。 1 ...

53360
来自专栏高性能服务器开发

微信、陌陌等著名IM软件设计架构详解

https://blog.csdn.net/justinjing0612/article/details/38322353

49030
来自专栏GA小站

UTM参数使用30问——既UTM参数使用指南(2018)

有很多缺少Google Analytics的UTM参数而导致的跟踪错误案例,我在Google Analytics Community和 Quora 看到过成千上...

44320
来自专栏hotqin888的专栏

golang语言的办公工作流的包

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/hotqin888/article/det...

29920
来自专栏智能计算时代

物联网IEC 61499 101标准介绍

PLC 基本上,PLC是一种业界用于控制不同系统的输入和输出的小型计算机。通常,输入是按钮和传感器,输出是电机。如果您有Informatic背景,您可以将PLC...

36650
来自专栏人人都是极客

聊聊Linux IO(下)

广义上Cache的同步方式有两种,即Write Through(写穿)和Write back(写回). 从名字上就能看出这两种方式都是从写操作的不同处理方式引出...

45210
来自专栏Crossin的编程教室

一键下载:将知乎专栏导出成电子书

老是有同学问,学了 Python 基础后不知道可以做点什么来提高。今天就再用个小例子,给大家讲讲,通过 Python 和爬虫,可以完成怎样的小工具。

33910
来自专栏机器学习算法与Python学习

推荐几个适合新人上手的Python项目

17780
来自专栏mySoul

测试用例概念 原则

测试用例为一组条件或变量,根据其来确定应用软件是否能够正常的工作。其条件和变量为测试用例。

14020
来自专栏PHP在线

NoSQL数据库的分布式算法

原文出处: highlyscalable.wordpress.com 译文出处:juliashine 系 统的可扩展性是推动NoSQL运动发展的的主要...

35850

扫码关注云+社区

领取腾讯云代金券