<?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://vulnerability.circl.lu/rss/recent/all/10</id>
  <title>Most recent entries from all</title>
  <updated>2026-10-01T15:31:05.992272+00:00</updated>
  <author>
    <name>Vulnerability-Lookup</name>
    <email>info@circl.lu</email>
  </author>
  <link href="https://vulnerability.circl.lu" 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://vulnerability.circl.lu/vuln/bit-pillow-2026-54060</id>
    <title>BIT-pillow-2026-54060 — Pillow: `FontFile.compile()`: `Image.new()` called without `_decompression_bomb_check()`</title>
    <updated>2026-10-01T15:31:06.028548+00:00</updated>
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml"><p><strong>Affected:</strong> Bitnami: pillow</p>
<p>Pillow is a Python imaging library. Prior to 12.3.0, PIL/FontFile.py FontFile.compile() assembled per-glyph images into a combined bitmap with Image.new("1", (xsize, ysize)) without calling Image._decompression_bomb_check(), allowing a font to trigger excessive allocation during conversion or saving. This issue is fixed in version 12.3.0.</p></div>
    </content>
    <link href="https://vulnerability.circl.lu/vuln/bit-pillow-2026-54060"/>
  </entry>
  <entry>
    <id>https://vulnerability.circl.lu/vuln/cve-2026-54060</id>
    <title>CVE-2026-54060 — Pillow: `FontFile.compile()`: `Image.new()` called without `_decompression_bomb_check()`</title>
    <updated>2026-10-01T15:31:06.028659+00:00</updated>
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml"><p><strong>Affected:</strong> python-pillow Pillow</p>
<p>Pillow is a Python imaging library. Prior to 12.3.0, PIL/FontFile.py FontFile.compile() assembled per-glyph images into a combined bitmap with Image.new("1", (xsize, ysize)) without calling Image._decompression_bomb_check(), allowing a font to trigger excessive allocation during conversion or saving. This issue is fixed in version 12.3.0.</p></div>
    </content>
    <link href="https://vulnerability.circl.lu/vuln/cve-2026-54060"/>
  </entry>
  <entry>
    <id>https://vulnerability.circl.lu/vuln/ghsa-5x94-69rx-g8h2</id>
    <title>GHSA-5x94-69rx-g8h2 — Pillow: `FontFile.compile()`: `Image.new()` called without `_decompression_bomb_check()`</title>
    <updated>2026-10-01T15:31:06.028719+00:00</updated>
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml"><p><strong>Affected:</strong> PyPI: pillow</p>
<p>## Description</p>
<p>`PIL/FontFile.py` `FontFile.compile()` assembles per-glyph images into a single combined bitmap using `Image.new("1", (xsize, ysize))` without calling `Image._decompression_bomb_check()`. This is the base-class method shared by both `BdfFontFile` and `PcfFontFile`, and it is triggered whenever a loaded font is converted to an `ImageFont` or saved.</p>
<p>Neither `BdfFontFile.BdfFontFile(fp)` nor `PcfFontFile.PcfFontFile(fp)` is registered with `Image.register_open()`, so Pillow's standard decompression bomb guard never fires for font objects. The compile step is the final opportunity to check the combined allocation — and it has no check.</p>
<p>**Vulnerable code (`PIL/FontFile.py` lines ~64–92):**</p>
<p>```python
def compile(self) -&gt; None:
    if self.bitmap:
        return</p>
<p>h = w = maxwidth = 0
    lines = 1
    for glyph in self.glyph:              # up to 256 glyph slots
        if glyph:
            d, dst, src, im = glyph
            h = max(h, src[3] - src[1])   # max glyph height — attacker-controlled
            w = w + (src[2] - src[0])
            if w &gt; WIDTH:                  # WIDTH = 800
                lines += 1
                w = src[2] - src[0]
            maxwidth = max(maxwidth, w)</p>
<p>xsize = maxwidth                       # ≤ 800 (capped by WIDTH constant)
    ysize = lines * h                      # ← lines(256) × h(65535) = 16,776,960</p>
<p>if xsize == 0 and ysize == 0:
        return</p>
<p>self.ysize = h
    # NO _decompression_bomb_check() here…</p></div>
    </content>
    <link href="https://vulnerability.circl.lu/vuln/ghsa-5x94-69rx-g8h2"/>
  </entry>
  <entry>
    <id>https://vulnerability.circl.lu/vuln/pysec-2026-2254</id>
    <title>PYSEC-2026-2254</title>
    <updated>2026-10-01T15:31:06.028842+00:00</updated>
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml"><p><strong>Affected:</strong> PyPI: pillow</p>
<p>Pillow is a Python imaging library. Prior to 12.3.0, PIL/FontFile.py FontFile.compile() assembled per-glyph images into a combined bitmap with Image.new("1", (xsize, ysize)) without calling Image._decompression_bomb_check(), allowing a font to trigger excessive allocation during conversion or saving. This issue is fixed in version 12.3.0.</p></div>
    </content>
    <link href="https://vulnerability.circl.lu/vuln/pysec-2026-2254"/>
  </entry>
</feed>
