Description
figlet.js is a FIG driver written in JavaScript that aims to implement the FIGfont specification. Prior to 1.11.3, text() and textSync() can enter an unbounded loop when whitespaceBreak is enabled and width is smaller than the rendered width of a single FIGlet character. Under these conditions, breakWord() cannot find a valid break point and returns without consuming a character, so generateFigTextLines() repeatedly processes the same input while consuming CPU and growing memory. The non-default option and attacker-controlled width must both reach an affected call. This issue is fixed in version 1.11.3.
Published: 2026-10-01
Score: 8.2 High
EPSS: < 1% Very Low
KEV: No
Impact: Denial of Service via unbounded loop
Action: Immediate Patch
AI Analysis

Impact

The vulnerability is an unbounded loop that arises when figlet.js processes text with whitespaceBreak enabled and a width setting smaller than the width of a single constructed FIGlet character. In this scenario, breakWord cannot locate a valid break point and returns without consuming a character. As a result, generateFigTextLines repeatedly processes the same input, causing continuous CPU consumption and uncontrolled memory growth. The consequence is denial of service by exhausting system resources.

Affected Systems

The affected product is figlet.js, a project maintained by patorjk. Any installation of figlet.js older than version 1.11.3 is vulnerable. The vulnerability manifests when the library is invoked via the text() or textSync() functions with the whitespaceBreak option enabled and a width value smaller than the rendered FIGlet character width.

Risk and Exploitability

The CVSS score of 8.2 marks this vulnerability as high severity. The EPSS score is not available, and it is not listed in the CISA KEV catalog, so there is no known widespread exploitation. The likely attack vector requires the attacker to control the width parameter and enable whitespaceBreak in an environment that processes untrusted input through figlet.js. Successful exploitation would lead to resource exhaustion and potential service disruption in the affected application or system.

Generated by OpenCVE AI on October 1, 2026 at 21:48 UTC.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Upgrade to figlet.js 1.11.3 or newer.
  • If upgrading is not immediately possible, disable the whitespaceBreak option or set the width parameter to a value that is at least as large as the widest character in the chosen FIGfont.
  • Validate incoming width values in your application and reject or adjust values that fall below a safe threshold.

Generated by OpenCVE AI on October 1, 2026 at 21:48 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Github GHSA Github GHSA GHSA-62ch-8vmq-8xm7 figlet is vulnerable to denial of service via unbounded loop when whitespaceBreak is used with a small width
History

Fri, 02 Oct 2026 15:15:00 +0000

Type Values Removed Values Added
First Time appeared Patorjk
Patorjk figlet.js
Vendors & Products Patorjk
Patorjk figlet.js

Thu, 01 Oct 2026 21:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

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


Thu, 01 Oct 2026 20:45:00 +0000

Type Values Removed Values Added
Description figlet.js is a FIG driver written in JavaScript that aims to implement the FIGfont specification. Prior to 1.11.3, text() and textSync() can enter an unbounded loop when whitespaceBreak is enabled and width is smaller than the rendered width of a single FIGlet character. Under these conditions, breakWord() cannot find a valid break point and returns without consuming a character, so generateFigTextLines() repeatedly processes the same input while consuming CPU and growing memory. The non-default option and attacker-controlled width must both reach an affected call. This issue is fixed in version 1.11.3.
Title figlet is vulnerable to denial of service via unbounded loop when whitespaceBreak is used with a small width
Weaknesses CWE-835
References
Metrics cvssV4_0

{'score': 8.2, 'vector': 'CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N'}


Subscriptions

Patorjk Figlet.js
cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-10-01T20:40:30.208Z

Reserved: 2026-09-23T16:25:20.414Z

Link: CVE-2026-96780

cve-icon Vulnrichment

Updated: 2026-10-01T20:40:25.340Z

cve-icon NVD

Status : Deferred

Published: 2026-10-01T21:17:26.207

Modified: 2026-10-02T18:47:49.947

Link: CVE-2026-96780

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-10-02T14:47:22Z

Weaknesses
  • CWE-835

    Loop with Unreachable Exit Condition ('Infinite Loop')