You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何查询Windows版PHP所使用的libwebp版本及漏洞情况

查询Windows版PHP所使用的libwebp版本及漏洞判断方法

以下是几种可行的方案:

一、通过代码调用libwebp版本函数

若你的PHP启用了FFI扩展,可直接编写代码调用libwebp的导出函数获取版本号:

<?php
$ffi = FFI::cdef(
    "unsigned int WebPGetDecoderVersion();
     unsigned int WebPGetMuxVersion();",
    "php_webp.dll"
);

$decoderVersion = $ffi->WebPGetDecoderVersion();
$muxVersion = $ffi->WebPGetMuxVersion();

// 转换版本号格式:0xMMNNRR → MM.NN.RR
echo "Decoder Version: " . (($decoderVersion >> 16) & 0xFF) . "." . (($decoderVersion >> 8) & 0xFF) . "." . ($decoderVersion & 0xFF) . "\n";
echo "Mux Version: " . (($muxVersion >> 16) & 0xFF) . "." . (($muxVersion >> 8) & 0xFF) . "." . ($muxVersion & 0xFF) . "\n";
?>

运行代码即可直接获取libwebp解码库和复用库的版本。

二、查看PHP官方安全修复记录

核对PHP官方针对CVE-2023-4863的修复公告:若你的PHP版本在官方发布修复的版本之后,说明所用libwebp已升级至安全版本(≥1.3.2)。例如PHP 8.0.30、8.1.23、8.2.10及后续版本通常已修复该漏洞关联的依赖问题。

三、通过PE工具分析DLL文件

  1. 找到PHP安装目录下的php_webp.dll文件
  2. 使用Dependency Walker、Resource Hacker等工具打开该DLL:
    • 若动态链接独立的libwebp.dll,可直接查看该DLL的版本资源(右键属性→详细信息)
    • 若静态编译进php_webp.dll,可查看导出表中的版本相关函数,或通过二进制搜索版本号特征字符串

四、漏洞POC测试

使用CVE-2023-4863的测试样本(恶意构造的WebP文件),调用PHP的WebP处理函数(如imagecreatefromwebp())加载该文件:

  • 若PHP进程崩溃或抛出异常,说明所用libwebp版本存在漏洞
  • 若能正常处理(或返回合理错误提示),则大概率已修复漏洞

内容的提问来源于stack exchange,提问作者Jost

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 16:13:30