首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >CVE-2018-5711:一张GIF图片就能让服务器宕机的PHP漏洞

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

作者头像
FB客服
发布2018-02-07 10:37:18
1.1K0
发布2018-02-07 10:37:18
举报
文章被收录于专栏:FreeBufFreeBuf

最近,中国台湾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

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-01-31,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 FreeBuf 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 漏洞影响的PHP版本
  • 漏洞细节
  • 后记
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档