专栏首页FreeBufCVE-2018-5711:一张GIF图片就能让服务器宕机的PHP漏洞

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)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

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

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

我来说两句

0 条评论
登录 后参与评论

相关文章

  • HackerOne优秀白帽黑客采访系列:John Colston

    作为商业战略咨询公司Colston Co LLC的创始人,John Colston (@mayonaise)选择兼职做白帽黑客更多的是为了挑战自己。而在此前,J...

    FB客服
  • 不止Intel芯片,每个1995年后的处理器都可能受此次底层漏洞影响

    昨天不少外媒报道了 Intel 芯片级安全漏洞出现,可能导致 Linux 和 Windows 内核关键部分需要重新设计。这个漏洞会导致攻击者从普通程序入口获取推...

    FB客服
  • 高危漏洞Kr00k再现?高通和联发科Wi-Fi芯片受影响

    高通和联发科生产制造的Wi-Fi芯片被曝受漏洞影响,这一漏洞似乎是今年2月披露的Kr00k高危漏洞变体。

    FB客服
  • 黑客可能已经在利用CPU漏洞赚钱了

    上周曝出的CPU高危漏洞影响范围之大堪称前所未有,而知名黑客组织“影子经济人”在出售黑客服务论坛上发的广告,则意味着已有犯罪分子开始利用CPU漏洞赚钱。影子经济...

    企鹅号小编
  • 专属|Spectre漏洞诞生新变体

    又到了熬夜看球喝啤酒的快乐日子了!昨晚,有多少小伙们跟斗哥一样,顶着黑眼圈看完了世界杯首场比赛!

    漏斗社区
  • 潜伏7年的Linux内核漏洞CVE-2017-2636曝光,可本地提权

    又一个古老的Linux内核漏洞被曝光!这次的漏洞可以追溯到2009年,影响的linux发行版包括Red Hat、Debian、Fedora、OpenSUSE和U...

    FB客服
  • PHP七种数据类型知识点总结

    想要入门PHP,首先要学会搭建环境,其次是学习基础语法。PHP的基础包括数据类型,运算符,变量和常量等。

    砸漏
  • web安全漫谈

    不夸张的说,网络安全行业里,web安全方向的人相对来说决定占大头,而web安全工程师又是其中不可缺少,想要成为一名成功的web安全工程师,首先要知道绝对的职位要...

    周俊辉
  • 漏洞预警 | CPU数据缓存机制存在设计缺陷

    安全漏洞公告 近日,来自于谷歌Project Zero安全团队的安全研究人员等报告,在CPU内核中,存在关于数据缓存边界机制的设计缺陷的“Meltdown”、“...

    安恒信息
  • Laravel队列使用案例

    1、配置数据库和Redis //编辑config/database.php 'mysql' => [ 'driver' => 'my...

    苦咖啡

扫码关注云+社区

领取腾讯云代金券