漏洞简述
-
9月7日,苹果发布紧急更新,修复了此前由多伦多大学公民实验室报告的iMessage 0-click 漏洞,漏洞被认为已经被NSO公司的Pegasus间谍软件所利用,漏洞编号CVE-2023-41064;
-
9月8日,libwebp 开发者提交 commit 修复了由于越界写入导致的堆缓冲区溢出漏洞;
-
9月11、12日,谷歌 chrome 、firefox、微软 Edge 游览器陆续发布更新,针对Chrome颁发漏洞编号CVE-2023-4863;
-
9月14日,libwebp 组件正式发布1.3.2版本,修复缓冲区溢出漏洞
-
9月26日,针对libwebp颁发了CVE-2023-5129漏洞编号
该漏洞利用复杂度很高,但由于libwebp是针对webp图像格式解析的事实标准,其被众多上层应用所依赖,除了影响客户端场景,还可能影响服务端,同时还存在被其他组件封装的情况,其影响非常广泛。
漏洞基本信息
漏洞编号 |
CVE-2023-5129 |
标题 |
libwebp堆缓冲区溢出漏洞 |
漏洞类型 |
输入验证不当(CWE-20) |
评分 |
10 |
漏洞等级 |
严重 |
处置建议 |
强烈建议修复 |
利用所需权限 |
无需权限 |
利用条件 |
目标应用解析攻击者恶意构造的webp文件 |
影响范围 |
[0.5.0, 1.3.2) |
POC |
已公开 |
漏洞成因
影响分析
Libwebp 是谷歌提供用于编码和解码 WebP 格式图像的库,作为 WebP 规范的参考实现。WebP 在 Google Chrome、Safari、Firefox、Edge、Opera 浏览器以及许多其他工具和软件库中被原生支持,在客户端、服务端均有使用。
客户端
-
Photoshop的原生支持webp与webmproject/WebPShop: Photoshop plug-in for opening and saving WebP images 插件
-
各种浏览器
-
移动端系统SDK:苹果的Image I/O框架、安卓的 ImageDecoder 类
-
使用Qt框架、Electron框架的应用程序
-
支持 webp 格式的其他应用
典型的如:微信、腾讯会议、钉钉、WPS Office、IntelliJ IDEA、Android Studio
服务端
大部分Linux发行版中提供了libwebp组件,目前已经发布安全公告及补丁的包括:
Ubuntu | https://launchpad.net/ubuntu/+source/libwebp/1.2.4-0.3
Debian | https://www.debian.org/security/2023/dsa-5497-2
Redhat | https://access.redhat.com/errata/RHSA-2023:5309
Alpine | https://security.alpinelinux.org/vuln/CVE-2023-4863
Gentoo | https://security.gentoo.org/glsa/202309-05
SUSE | https://www.suse.com/security/cve/CVE-2023-4863.html
Oracle | https://linux.oracle.com/cve/CVE-2023-4863.html
Fedora|https://bodhi.fedoraproject.org/updates/FEDORA-2023-c4fa8a204d
Anolis 龙蜥 | https://anas.openanolis.cn/cves/detail/CVE-2023-4863
直接包含libwebp的C/C++开源项目
代码仓库地址 |
star数 |
https://github.com/electron/electron |
109k |
https://github.com/nginx/nginx (默认未启用) |
19.1k |
https://github.com/tanersener/mobile-ffmpeg |
3.7k |
https://github.com/WaterfoxCo/Waterfox |
3.1k |
https://github.com/mozilla/gecko-dev |
2.9k |
https://github.com/ytsaurus/ytsaurus |
1.6k |
https://github.com/libgd/libgd |
835 |
https://github.com/zjupure/GlideWebpDecoder |
695 |
https://github.com/classilla/tenfourfox |
248 |
https://github.com/rmottola/Arctic-Fox |
238 |
https://github.com/papyrussolution/OpenPapyrus |
218 |
典型的如Sumatra PDF项目
其他语言中包含libwebp的组件
org.demen.android.opencv:opencv-img
org.lucee:sejda-webp
com.criteo:jvips
io.github.darkxanter:webp-imageio
org.sejda.webp-imageio:webp-imageio-sejda
de.sg-o.lib:opencv
com.facebook.spectrum:spectrum-webp
de.marcreichelt:webp-backport
org.demen.android.opencv:opencv_world
cn.rongcloud.sdk:fu_beautifier
io.github.greycode:ocrlite
org.jetbrains.skiko:skiko-awt-runtime-linux-arm64
org.robolectric:nativeruntime-dist-compat
app.cash.paparazzi:layoutlib-native-linux
com.freeletics.fork.paparazzi:layoutlib-native-linux
org.jetbrains.skiko:skiko-jvm-runtime-linux-arm64
com.github.zjupure:webpdecoder
com.github.gotson:webp-imageio
com.eworkcloud:ework-cloud-starter-image
io.github.zumikua:webploader-desktop
org.sejda.imageio:webp-imageio
science.aist:aistcv
com.computinglaboratory:opencv
org.openpnp:opencv
org.jetbrains.skiko:skiko-jvm-runtime-linux-x64
com.facebook.fresco:webpsupport
com.eworkcloud:starter.ework-cloud-starter-image
io.github.humbleui:skija-linux-x64
io.tiledb:tiledb-cloud-java
app.cash.paparazzi:native-linux
org.demen.android.opencv:opencv
com.github.usefulness:webp-imageio
org.jetbrains.skiko:skiko-awt-runtime-linux-x64
com.aiyaapp.aiya:AyEffectSDK
io.github.humbleui:skija-linux
com.github.nintha:webp-imageio-core
在其他语言中也存在封装的情况,如Go语言中的
github.com/kolesa-team/go-webp
github.com/tidbyt/go-libwebp
github.com/nickalie/go-webpbin
NPM中的cwebp
和PyPI仓库中的webp
都提供了对libwebp二进制的封装调用。
排查建议
-
针对对外提供的客户端/二进制,可以通过SCA进行排查是否包含有漏洞的libwebp组件,0.5.0版本引入的导出函数
WebPCopyPlane
和WebPCopyPixels
可作为排查的特征关键字,1.3.2版本引入的VP8LHuffmanTablesAllocate
函数可以作为一部分安全版本的排查特征关键字。 -
在服务端可能运行上层客户端应用,如headless浏览器,可通过进程排查。
-
代码中可能通过静态、动态链接的方式引入libwebp,可能自行编译、yum/apt等包管理器引入,高级语言可能会对动态链接库封装调用,因此需要排查系统包、进程、制品文件中是否存在libwebp。
参考链接
-
https://blog.isosceles.com/the-webp-0day/
-
https://github.com/ImageMagick/ImageMagick/discussions/6650
-
https://github.com/mistymntncop/CVE-2023-4863
墨菲安全企业版0day漏洞及投毒情报
墨菲安全企业级的0day漏洞及投毒情报以全、准、快、精为核心特点,为客户提供全网更新更快、分析更详细、信息准确有保障的情报推送,同时还推送大量独家的情报信息,客户可将该情报用于应急响应、软件成分分析产品检测等场景,该产品已服务于蚂蚁、美团等数十家企业客户,当前企业可通过以下方式申请试用:
二、访问申请链接:
https://murphysec.feishu.cn/share/base/form/shrcnUf2LcR1HuMkKab7yathocf
产品官网:
https://murphysec.com
【关于墨菲安全】
【关于墨菲安全实验室】
原文始发于微信公众号(墨菲安全实验室):CVE-2023-5129 libwebp堆缓冲区溢出漏洞影响分析