跳到正文
  1. GitHub 安全公告库 (GHSA)64

    Pillow 11.1.0 起打包的 libopenjp2 2.5.3/2.5.4 存在 OSV-2025-219 堆溢出写,可从 Image.open().load() 触发

    Pillow 从 11.1.0 起打包的 libopenjp2 2.5.3 与 12.0.0 至 12.3.0 打包的 2.5.4 含 OSV-2025-219 堆缓冲区溢出写,默认设置下经 Image.open(fp) 与 im.load() 即可到达,宿主系统打补丁无效。

    为什么值得看:报告给出了 ASan 复现栈与可控 rip 的堆布局细节,并说明修复补丁尚未进入任何 OpenJPEG 发行版。

  2. GitHub 安全公告库 (GHSA)75

    Pillow 多帧加载器模式切换后复用旧原生存储,MPO 路径可致越界写与命令执行

    Pillow 12.3.0 的多帧加载器在帧间切换 mode 时会复用上一帧的原生 ImagingCore 存储,导致越界写与进程崩溃;作者在 PSD、MPO/JPEG、DCX、MIC 四个入口验证了该问题。

    为什么值得看:披露者给出可复现的 MPO 上传路径与 10/10 成功标记,说明多帧模式切换导致的越界写可落到命令执行。

  3. GitHub 安全公告库 (GHSA)58

    Pillow 修复 Windows 构建 WMF/EMF 渲染堆越界读漏洞 GHSA-9v9v-9qvf-h2hj

    GitHub 安全公告披露 Pillow 在 Windows 构建上存在堆越界读问题 GHSA-9v9v-9qvf-h2hj,EMF/WMF 图像尺寸未经范围检查即传入原生 drawwmf 处理程序,分配按截断为 16 位的头字段计算,拷贝却使用完整 32 位尺寸。

    为什么值得看:公告给出可运行的 EMF 构造脚本,并指出 Windows 构建下 16 位截断导致堆越界读的具体代码位置。

  4. GitHub 安全公告库 (GHSA)75

    Pillow JPEG 编码器堆缓冲区溢出:ICC 填满缓冲区后写 COM 注释越界

    Pillow 的 JPEG 编码器 ImagingJpegEncode() 在 src/libImaging/JpegEncode.c:330 写 COM 注释前不检查剩余空间,当 65498 字节 ICC profile 恰好填满 65536 字节缓冲区时,注释和整个压缩图像被写到堆缓冲区之外,进程以 SIGSEGV 或 glibc 堆错误终止。

    为什么值得看:披露给出可运行的复现脚本与补丁,说明默认保存路径下 ICC 恰好填满缓冲区即触发越界写。

  1. The Hacker News63

    Node.js 22.x/24.x/26.x 修复 Brotli 解码器越界写 CVE-2026-111497 等 10 个漏洞

    Node.js 于 10 月 21 日为 22.x、24.x、26.x 三条支持线发布安全更新,修复 10 个漏洞,其中 Brotli 解码器越界写 CVE-2026-111497 被项目描述为可导致远程代码执行,评级为 high。

    为什么值得看:通告列出 10 个修复项与各版本对应关系,并交代 Brotli 漏洞的公开 PoC 仅在削弱构建上达成代码执行。

  2. GitHub 安全公告库 (GHSA)58

    Pillow 描边渲染字体时存在无效释放问题,附 PoC 复现脚本

    GitHub 安全公告 GHSA-j4m9-6w36-pw47 指出,Pillow 在 stroke_width 非零时创建 FreeType stroker,若 FT_Load_Glyph 对某个字形失败,清理路径会对未初始化或已释放的 glyph 指针调用 FT_Done_Glyph,形成无效释放或双重释放。

    为什么值得看:公告给出可运行的 fontTools 脚本,复现 Pillow 在描边绘制时对未初始化指针调用 FT_Done_Glyph 的路径。

  3. GitHub 安全公告库 (GHSA)58

    Pillow 的 Image.merge 因未校验 band 0 存在空指针解引用,公开 PoC 可致进程崩溃

    Pillow 的 Image.merge() 只校验 bands[1:] 的模式与尺寸,当 band 0 是单波段 I 或 F 图像时,其 image8 平面为 NULL,ImagingMerge 在 src/libImaging/Bands.c:302、:311、:321 解引用该空指针导致进程崩溃。

    为什么值得看:公告给出可运行的 PoC 与崩溃栈,说明 Image.merge 只校验 band 0 之外的分带,便于确认 Pillow 部署是否受影响。

  4. GitHub 安全公告库 (GHSA)60

    Pillow APNG 在解压炸弹检查前按 IHDR 尺寸分配内存,附复现脚本与补丁

    Pillow 的 PngImageFile._seek() 在处理首个 fcTL 请求 OP_BACKGROUND 时,会先按 IHDR 声明尺寸调用 Image.core.fill 分配并清零整块画布,之后 Image.open() 的 _decompression_bomb_check 才执行。

    为什么值得看:材料给出可运行的复现脚本与两份补丁,说明 APNG 在炸弹检查前按声明尺寸分配内存的路径。

  5. GitHub 安全公告库 (GHSA)70

    Pillow 保存 TIFF 到 BytesIO 时 _tiffWriteProc 存在堆溢出,附复现脚本与补丁

    Pillow 在把 TIFF 保存到 io.BytesIO 等无 fileno() 的目标时,src/libImaging/TiffDecode.c 的 _tiffWriteProc 按 state->size + size 而非写入位置扩容,导致堆缓冲区溢出,同时把未初始化的堆字节写入输出文件。

    为什么值得看:报告给出可运行的复现脚本与补丁,说明默认设置下把上传图片另存为 TIFF 到内存对象即可触发越界写。

  6. GitHub 安全公告库 (GHSA)60

    Pillow 的 libtiff 编码器经构造 TIFF 标签泄露进程内存或触发 SIGSEGV

    Pillow 的 libtiff 编码器 PyImaging_LibTiffEncoderNew(src/encode.c)在把源 TIFF 中未识别的标签转发给 TIFFSetField 时,按 Python 值而非 libtiff 字段定义决定传参形式,导致构造的 TIFF 标签被当作字节数或指针读取。

    为什么值得看:材料给出可运行的复现脚本与逐分支分析,展示了普通 open 后 save 即可触发内存泄露或崩溃的路径。

  1. GitHub 安全公告库 (GHSA)58

    Pillow 的 ImagingJpegDecode 存在堆缓冲区溢出,附 SOF3 复现环境

    Pillow 在 ImagingJpegDecode 中未校验 libjpeg 返回的 output_width 与缓冲区尺寸,当 libjpeg-turbo 3.x 解码 SOF3 无损 JPEG 时缩放参数被忽略,导致堆缓冲区溢出。

    为什么值得看:披露给出完整 Docker 复现与 ASan 报告,说明 thumbnail 默认路径如何触发堆溢出,便于自查与修复验证。

  2. GitHub 安全公告库 (GHSA)62

    Pillow 的 TiffDecode.c 存在堆越界读,公开复现脚本与修复补丁

    Pillow 在解码畸形压缩 TIFF 时,src/libImaging/TiffDecode.c 的 _decodeTile() 与 _decodeAsRGBA() 会读取堆缓冲区之外的数据并写入返回图像的像素,攻击者可借此拿到进程堆内存片段,包括指针值,稍大的文件则会让进程崩溃。

    为什么值得看:材料给出可运行的复现脚本与补丁,说明 Pillow 与 libtiff 对畸形 TIFF 标签解析不一致如何导致堆越界读。

  1. GitHub 安全公告库 (GHSA)58

    Pillow 修复内存中编码 TIFF 时的堆 use-after-free 漏洞

    GitHub 安全公告披露 Pillow 在将图像编码为内存中的 TIFF 时存在堆 use-after-free:libtiff 在编码阶段拒绝某个 tag 导致 TIFFWriteScanline 失败后,编码器释放了输出缓冲区却未关闭 TIFF 句柄,随后清理阶段 TIFFClose 刷新数据写回已释放内存。

    为什么值得看:公告给出可运行的 Python 复现脚本与 ASan 调用栈,便于维护者确认内存释放路径并判断自身服务是否受影响。

已经到底了