<?xml version='1.0' encoding='UTF-8'?>
<?xml-stylesheet href="/static/style.xsl" type="text/xsl"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
  <id>https://db.gcve.eu/rss/recent/all/10</id>
  <title>Most recent entries from all</title>
  <updated>2026-10-23T23:24:55.015118+00:00</updated>
  <author>
    <name>Vulnerability-Lookup</name>
    <email>info@gcve.eu</email>
  </author>
  <link href="https://db.gcve.eu" rel="alternate"/>
  <generator uri="https://lkiesow.github.io/python-feedgen" version="1.0.0">python-feedgen</generator>
  <subtitle>Contains only the most 10 recent entries.</subtitle>
  <entry>
    <id>https://db.gcve.eu/vuln/brew-aider-cve-2026-112893</id>
    <title>BREW-aider-CVE-2026-112893 — Pillow: Invalid free in FreeType glyph rendering when a stroker is active</title>
    <updated>2026-10-23T23:24:55.038364+00:00</updated>
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml"><p><strong>Affected:</strong> Homebrew: aider</p>
<p>### Summary
When text is drawn with a non-zero stroke width, Pillow creates a FreeType stroker and then loads each glyph. If `FT_Load_Glyph` fails for a glyph, the cleanup path calls `FT_Done_Glyph` on the `glyph` variable. That variable is not initialized before the first measurement loop, and in the render loop it is not reset to NULL after each glyph is freed. A malformed font loaded from untrusted bytes can force the load error and reach this free. This is a latent memory-safety defect; whether it crashes depends on the value in the uninitialized or stale pointer.</p>
<p>### Details
`glyph` is declared without a NULL initializer:</p>
<p>- `src/_imagingft.c:848`</p>
<p>The first measurement loop can jump to `glyph_error` before `glyph` is ever assigned:</p>
<p>- `src/_imagingft.c:1010-1013`</p>
<p>In the render loop the glyph is freed at the end of each iteration and not set back to NULL:</p>
<p>- `src/_imagingft.c:1242`</p>
<p>The cleanup frees it whenever a stroker exists:</p>
<p>- `src/_imagingft.c:1253-1256`</p>
<p>`ImageFont.truetype` accepts a file object or bytes, so the font is attacker-suppliable.</p>
<p>### PoC
This needs `fontTools` and any base TTF (the example uses one bundled with Pillow's tests). It rewrites glyph "A" to claim 5000 contours in a glyph body far too short for them, so `FT_Load_Glyph` returns an error while the face still opens.</p>
<p>```python
import struct
from fontTools.ttLib import TTFont
from PIL import Image, ImageFont, ImageDraw</p>
<p>SRC = "Tests/fonts/FreeMono.ttf"          # any TTF works as a base
tt…</p></div>
    </content>
    <link href="https://db.gcve.eu/vuln/brew-aider-cve-2026-112893"/>
  </entry>
  <entry>
    <id>https://db.gcve.eu/vuln/fkie_cve-2026-112893</id>
    <title>fkie_cve-2026-112893</title>
    <updated>2026-10-23T23:24:55.038515+00:00</updated>
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>Pillow is a Python imaging library. From 10.0.0 until 13.0.0, Pillow can free an invalid glyph pointer during FreeType rendering with an active stroker. If FT_Load_Glyph fails, cleanup may call FT_Done_Glyph on an uninitialized or stale glyph variable. An attacker can supply a malformed font as untrusted bytes to an application that draws text with a nonzero stroke width, forcing the glyph-load failure path. This can corrupt memory or crash the process. This issue is fixed in version 13.0.0.</p>
      </div>
    </content>
    <link href="https://db.gcve.eu/vuln/fkie_cve-2026-112893"/>
  </entry>
  <entry>
    <id>https://db.gcve.eu/vuln/ghsa-j4m9-6w36-pw47</id>
    <title>GHSA-j4m9-6w36-pw47 — Pillow: Invalid free in FreeType glyph rendering when a stroker is active</title>
    <updated>2026-10-23T23:24:55.038568+00:00</updated>
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml"><p><strong>Affected:</strong> PyPI: pillow</p>
<p>### Summary
When text is drawn with a non-zero stroke width, Pillow creates a FreeType stroker and then loads each glyph. If `FT_Load_Glyph` fails for a glyph, the cleanup path calls `FT_Done_Glyph` on the `glyph` variable. That variable is not initialized before the first measurement loop, and in the render loop it is not reset to NULL after each glyph is freed. A malformed font loaded from untrusted bytes can force the load error and reach this free. This is a latent memory-safety defect; whether it crashes depends on the value in the uninitialized or stale pointer.</p>
<p>### Details
`glyph` is declared without a NULL initializer:</p>
<p>- `src/_imagingft.c:848`</p>
<p>The first measurement loop can jump to `glyph_error` before `glyph` is ever assigned:</p>
<p>- `src/_imagingft.c:1010-1013`</p>
<p>In the render loop the glyph is freed at the end of each iteration and not set back to NULL:</p>
<p>- `src/_imagingft.c:1242`</p>
<p>The cleanup frees it whenever a stroker exists:</p>
<p>- `src/_imagingft.c:1253-1256`</p>
<p>`ImageFont.truetype` accepts a file object or bytes, so the font is attacker-suppliable.</p>
<p>### PoC
This needs `fontTools` and any base TTF (the example uses one bundled with Pillow's tests). It rewrites glyph "A" to claim 5000 contours in a glyph body far too short for them, so `FT_Load_Glyph` returns an error while the face still opens.</p>
<p>```python
import struct
from fontTools.ttLib import TTFont
from PIL import Image, ImageFont, ImageDraw</p>
<p>SRC = "Tests/fonts/FreeMono.ttf"          # any TTF works as a base
tt…</p></div>
    </content>
    <link href="https://db.gcve.eu/vuln/ghsa-j4m9-6w36-pw47"/>
  </entry>
  <entry>
    <id>https://db.gcve.eu/vuln/ubuntu-cve-2026-112893</id>
    <title>UBUNTU-CVE-2026-112893</title>
    <updated>2026-10-23T23:24:55.038648+00:00</updated>
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml"><p><strong>Affected:</strong> Ubuntu:Pro:14.04:LTS: pillow, Ubuntu:Pro:16.04:LTS: pillow, Ubuntu:Pro:18.04:LTS: pillow, Ubuntu:Pro:20.04:LTS: pillow, Ubuntu:Pro:20.04:LTS: pillow-python2, Ubuntu:22.04:LTS: pillow, Ubuntu:24.04:LTS: pillow, Ubuntu:26.10: pillow, Ubuntu:26.04:LTS: pillow</p>
<p>(Pillow is a Python imaging library. From 10.0.0 until 13.0.0, Pillow c ...)</p></div>
    </content>
    <link href="https://db.gcve.eu/vuln/ubuntu-cve-2026-112893"/>
  </entry>
</feed>
