Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessSubmit crafted image with truncated ICC profile
-
ExploitParser reads oversized CLUT channel/grid dimensions
-
ExecutionAllocation sized from unverified values
-
ImpactExcessive memory pressure degrades service
Vulnerability Assessment
| Weakness |
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Memory allocation limits
|
| Exploitation Conditions | The target application must decode attacker-supplied images with ImageSharp (versions 1.0.0-beta0001 through before 4.1.2) and reach ICC profile parsing. Two concrete paths exist: (1) the public IccProfile.Entries parsing path, which can allocate a large jagged representation from a truncated profile regardless of configuration; and (2) in version 4, the automatic image-conversion path through IccDataReader.ReadClutF32, which is ONLY reached when DecoderOptions.ColorProfileHandling is explicitly set to Convert - the default Preserve mode does NOT trigger this conversion and therefore avoids that path. The exploit requires crafting a short/truncated ICC profile that declares large CLUT channel and grid dimensions. Limiting factors: impact is bounded to memory pressure/input-validation failure (no confirmed process termination or RCE), and the v4 convert path depends on a non-default configuration setting, meaningfully narrowing exposure for default v4 deployments. |
| Impact | Signals are consistent and point to a genuine but modest (medium-severity) issue rather than an urgent priority. The vendor CVSS 3.1 vector (AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L = 5.3) describes a remotely reachable, low-complexity, unauthenticated flaw whose ONLY impact is limited availability (memory pressure), with no confidentiality or integrity impact - matching CWE-789 (memory allocation with excessive size value) and the description's explicit statement that the demonstrated impact is 'memory pressure and input-validation failure, not unhandled process termination.' No EPSS score, KEV listing, or public POC was provided in the input; per precision rules this means no public exploit is identified at time of analysis and there is no evidence of active exploitation. A patched release (4.1.2) and the fixing commit/PR #3187 are available, which lowers residual risk for anyone who can upgrade. One nuance that tempers raw CVSS: in version 4 the vulnerable automatic-conversion path is only reached when DecoderOptions.ColorProfileHandling is set to the non-default Convert value - the default Preserve mode avoids it - so the practical attack surface for the v4 convert path is narrower than AV:N/PR:N alone suggests; however, the earlier IccProfile.Entries parsing paths can allocate a large jagged representation independent of that setting, so the network-reachable rating still holds. Note also that the input Tags label this 'Information Disclosure,' which conflicts with the CVSS vector (C:N) and the description - treat it as an availability/DoS-pressure issue, not data disclosure. |
| Exploit ScenarioDerived | An attacker submits a specially crafted image containing a short, truncated ICC profile whose CLUT header declares very large channel and grid dimensions to an application that decodes untrusted images with ImageSharp (for example an avatar or upload-processing endpoint). The parser calculates and requests an oversized float/jagged array before validating that the profile actually contains the declared data, causing excessive memory allocation and degraded service. No public exploit is identified at time of analysis, though the fixing PR #3187 diff publicly illustrates the affected code paths. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 06, 2026
ICC profile parsing in SixLabors ImageSharp (1.0.0-beta0001 through before 4.1.2) trusts attacker-declared CLUT channel and grid dimensions when sizing allocations, so a short truncated color profile can force oversized memory allocation from a tiny input - a medium-severity memory-pressure and input-validation failure (CVSS 5.3, CWE-789). Two paths exist: the public IccProfile.Entries parsing path, reachable regardless of configuration, and in version 4 the conversion path through IccDataReader.ReadClutF32, which is only reached when DecoderOptions.ColorProfileHandling is explicitly set to Convert - the default Preserve mode does not trigger it. Unauthenticated remote attackers (CVSS PR:N/UI:N) can trigger it by getting a vulnerable application to decode a crafted image; there is confirmed actively exploited status absent (no CISA KEV entry) and no public exploit identified at time of analysis, but the exploit is conceptually simple since it requires only a malformed, truncated profile rather than a memory-corruption primitive. The demonstrated impact is bounded to memory pressure and input-validation failure, not unhandled process termination or code execution, and the vendor-released patch is version 4.1.2.
RemediationAI
Upgrade to the vendor-released patch, SixLabors.ImageSharp 4.1.2 (nuget package SixLabors.ImageSharp), which adds overflow-safe stream range validation and caps ICC conversion to four input and output channels; see the advisory at https://github.com/SixLabors/ImageSharp/security/advisories/GHSA-gwg2-r3hj-4w44, the fixing pull request https://github.com/SixLabors/ImageSharp/pull/3187, and the release notes at https://github.com/SixLabors/ImageSharp/releases/tag/v4.1.2. If upgrading immediately is not possible, the most effective compensating controls are: keep DecoderOptions.ColorProfileHandling at its default Preserve value and explicitly avoid Convert in any decoder options you construct, which eliminates the ReadClutF32 conversion path on v4 - with the trade-off that this does not close the public IccProfile.Entries parsing path, so any code that calls Entries directly on untrusted bytes must instead be removed, gated behind a length/trust check, or run in a separate process; and cap untrusted image input size (for example by rejecting uploads above a few megabytes) and run decoding under an enforced memory limit or in a sandboxed worker, on the understanding that legitimate large images may then fail to decode. Because exploitation requires only a short truncated profile and no authentication, treat any endpoint that decodes user-supplied images as the priority surface, and do not rely on the 'Information Disclosure' tag suggesting a read-only data leak - the observable effect is allocation inflation and input-validation failure rather than data exposure.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 2 packages in nuget, euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
ICC color profiles carry color lookup table (CLUT) tags whose headers declare input and output channel counts and per-dimension grid point sizes; parsing code uses those declared values to size arrays before confirming the profile actually contains that many bytes. In ImageSharp, IccDataReader.ReadClutF32 could request a large float array, and earlier public IccProfile.Entries parsing paths could allocate a large jagged representation, all from a short or truncated profile - the classic CWE-789 (Memory Allocation with Excessive Size Value) pattern in which an untrusted size field is used for allocation without validating it against the remaining stream length or an upper bound. The fix in PR #3187 introduces BufferedReadStreamExtensions.IsReadRangeValid/TryGetReadLength, which perform overflow-safe range checks (offset compared before subtraction, length rejected above int.MaxValue, and declared length validated against stream length) and replaces the old generic StreamExtensions.Skip/Read helpers, and it hardens ICC conversion by rejecting profiles with more than four input/output channels in ClutCalculator, LutEntryCalculator and TrcCalculator. The tags attached to this CVE include 'Information Disclosure', but the authoritative assessment and the description agree the demonstrated impact is memory pressure and input-validation failure rather than confidentiality loss, so the CWE-789 framing should be treated as primary. Note that the CPE is a vendor-level wildcard (cpe:2.3:a:sixlabors:imagesharp), meaning the advisory covers the whole product line rather than a single released artifact.
Know when Imagesharp gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L
Untrusted image reaches parser remotely with no auth or interaction (AV:N/AC:L/PR:N/UI:N); only bounded memory-pressure impact, so A:L and C:N/I:N.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
2DescriptionCVE.org
ImageSharp is a 2D graphics library. From 1.0.0-beta0001 until 4.1.2, ICC CLUT parsing calculates allocation sizes from attacker-declared channel and grid dimensions before confirming that the profile contains the declared values. IccDataReader.ReadClutF32 can request a large float array, and earlier public IccProfile.Entries parsing paths can allocate a large jagged representation, from a short truncated profile. In version 4, automatic image conversion reaches the parser when DecoderOptions.ColorProfileHandling is Convert; the default Preserve mode avoids that conversion path. The demonstrated impact is memory pressure and input-validation failure, not unhandled process termination. This issue is fixed in version 4.1.2.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
More in Imagesharp
View allImageSharp is a 2D graphics API. Rated high severity (CVSS 7.5), this vulnerability is remotely exploitable, no authenti
ImageSharp is a managed, cross-platform, 2D graphics library. Rated high severity (CVSS 7.1), this vulnerability is no a
Heap buffer overflow in SixLabors ImageSharp (all versions from 3.0.0 up to but excluding 4.1.1) is triggered when the l
Out-of-bounds heap writes in the ImageSharp TIFF CCITT Group 4 (T6) fax encoder, affecting versions 2.1.0 through 4.1.1,
Denial of service in SixLabors ImageSharp (2.0.0 up to but not including 4.1.2) lets a remote, unauthenticated attacker
Memory corruption in SixLabors ImageSharp 4.0.0 through 4.1.1 allows an unauthenticated remote attacker to crash or dest
TIFF encoding in SixLabors ImageSharp 2.0.0 through 4.1.1 can write past the end of an undersized compressed-data buffer
Heap corruption and process termination in SixLabors ImageSharp 3.0.0 through 4.1.0 can be triggered by decoding a craft
ImageSharp is a 2D graphics API. Rated high severity (CVSS 7.5), this vulnerability is remotely exploitable, no authenti
ImageSharp is a 2D graphics API. Rated high severity (CVSS 7.5), this vulnerability is remotely exploitable, no authenti
ImageSharp is a 2D graphics API. Rated medium severity (CVSS 6.5), this vulnerability is remotely exploitable, no authen
ImageSharp is a 2D graphics API. Rated medium severity (CVSS 6.5), this vulnerability is remotely exploitable, no authen
EUVD-2026-93556
GHSA-gwg2-r3hj-4w44
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB