Description
DiceBear is an avatar library for designers and developers. Prior to version 9.4.0, the `ensureSize()` function in `@dicebear/converter` read the `width` and `height` attributes from the input SVG to determine the output canvas size for rasterization (PNG, JPEG, WebP, AVIF). An attacker who can supply a crafted SVG with extremely large dimensions (e.g. `width="999999999"`) could force the server to allocate excessive memory, leading to denial of service. This primarily affects server-side applications that pass untrusted or user-supplied SVGs to the converter's `toPng()`, `toJpeg()`, `toWebp()`, or `toAvif()` functions. Applications that only convert self-generated DiceBear avatars are not practically exploitable, but are still recommended to upgrade. This is fixed in version 9.4.0. The `ensureSize()` function no longer reads SVG attributes to determine output size. Instead, a new `size` option (default: 512, max: 2048) controls the output dimensions. Invalid values (NaN, negative, zero, Infinity) fall back to the default. If upgrading is not immediately possible, validate and sanitize the `width` and `height` attributes of any untrusted SVG input before passing it to the converter.
Published: 2026-03-18
Score: 7.5 High
EPSS: < 1% Very Low
KEV: No
Impact: Denial of Service via Memory Exhaustion
Action: Immediate Patch
AI Analysis

Impact

DiceBear’s @dicebear/converter library prior to version 9.4.0 contains a memory allocation flaw within its ensureSize() function. The function reads the width and height attributes supplied in an input SVG to calculate the output canvas size for rasterization, leading to uncontrolled memory allocation. An attacker who can supply a crafted SVG with extremely large dimensions (for example, width="999999999") could force the server to allocate an excessive amount of memory, causing a denial of service. The weakness is identified as CWE-770, Memory Allocation or Reallocation with Excessive Size, and impacts availability; it does not directly compromise confidentiality or integrity.

Affected Systems

All versions of the DiceBear library before 9.4.0 are affected. The vulnerability can be exercised in server‑side applications that pass untrusted or user‑supplied SVGs to the converter’s toPng(), toJpeg(), toWebp(), or toAvif() functions. Applications that only generate internal DexBear avatars are less likely to be exploitable but are still recommended to upgrade because the insecure code path remains present until version 9.4.0 is deployed. The affected product is dicebear:dicebear across all unspecified versions, as indicated by the CPE entry.

Risk and Exploitability

The CVSS base score is 7.5, reflecting a high severity. The EPSS score is reported as less than 1%, suggesting a low current probability of exploitation, and the vulnerability is not listed in CISA’s KEV catalog. The likely attack vector is server‑side exploitation: a web application that accepts user‑submitted SVG files and processes them through the DiceBear converter. Exploitation requires the ability to control the SVG’s dimensions; once an extreme size triggers memory allocation, the application may crash or become unresponsive. Given the high impact and modest exploitation likelihood, organizations should consider this a high‑priority patching opportunity.

Generated by OpenCVE AI on March 18, 2026 at 20:52 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade DiceBear to version 9.4.0 or later. This release removes the vulnerable width/height read and imposes a maximum size of 2048.
  • If upgrading immediately is not possible, validate and sanitize the width and height attributes of any untrusted SVG input before passing it to the converter’s toPng(), toJpeg(), toWebp(), or toAvif() functions. Reject values outside a safe range or normalize them to the default size.

Generated by OpenCVE AI on March 18, 2026 at 20:52 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Github GHSA Github GHSA GHSA-v3r3-4qgc-vw66 Uncontrolled memory allocation via crafted SVG dimensions in @dicebear/converter
History

Wed, 18 Mar 2026 20:15:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'yes', 'Exploitation': 'none', 'Technical Impact': 'partial'}, 'version': '2.0.3'}


Wed, 18 Mar 2026 19:45:00 +0000

Type Values Removed Values Added
CPEs cpe:2.3:a:dicebear:dicebear:*:*:*:*:*:*:*:*

Wed, 18 Mar 2026 12:15:00 +0000

Type Values Removed Values Added
First Time appeared Dicebear
Dicebear dicebear
Vendors & Products Dicebear
Dicebear dicebear

Wed, 18 Mar 2026 03:30:00 +0000

Type Values Removed Values Added
Description DiceBear is an avatar library for designers and developers. Prior to version 9.4.0, the `ensureSize()` function in `@dicebear/converter` read the `width` and `height` attributes from the input SVG to determine the output canvas size for rasterization (PNG, JPEG, WebP, AVIF). An attacker who can supply a crafted SVG with extremely large dimensions (e.g. `width="999999999"`) could force the server to allocate excessive memory, leading to denial of service. This primarily affects server-side applications that pass untrusted or user-supplied SVGs to the converter's `toPng()`, `toJpeg()`, `toWebp()`, or `toAvif()` functions. Applications that only convert self-generated DiceBear avatars are not practically exploitable, but are still recommended to upgrade. This is fixed in version 9.4.0. The `ensureSize()` function no longer reads SVG attributes to determine output size. Instead, a new `size` option (default: 512, max: 2048) controls the output dimensions. Invalid values (NaN, negative, zero, Infinity) fall back to the default. If upgrading is not immediately possible, validate and sanitize the `width` and `height` attributes of any untrusted SVG input before passing it to the converter.
Title @dicebear/converter vulnerable to ncontrolled memory allocation via crafted SVG dimensions
Weaknesses CWE-770
References
Metrics cvssV3_1

{'score': 7.5, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H'}


Subscriptions

Dicebear Dicebear
cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-03-18T20:03:09.619Z

Reserved: 2026-03-03T21:54:06.710Z

Link: CVE-2026-29112

cve-icon Vulnrichment

Updated: 2026-03-18T20:03:03.585Z

cve-icon NVD

Status : Analyzed

Published: 2026-03-18T04:17:16.037

Modified: 2026-03-18T19:34:55.067

Link: CVE-2026-29112

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-03-24T10:59:31Z

Weaknesses