GHSA-f52g-6jhx-586p
NoneCVSS
—
EPSS
—
Published
Sep 3, 2020
CISA due date
—
Cloudanix analysis
A commonly used template-rendering component can be abused to make affected applications slow down or stop responding.
- Exploitation
- Remote Unauthenticated
- Attacker needs
- None
- Complexity
- Moderate
- Impact
- Denial Of Service
- Component
- Library
- Class
- Denial of service
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
The vulnerability is a denial-of-service flaw in the npm package handlebars. Affected versions can be forced into excessive resource consumption when processing specially crafted template input, causing the JavaScript process using the library to hang, crash, or become unavailable. The impact is availability-focused rather than direct code execution or data theft.
Why it matters to the business
Applications that render untrusted or attacker-influenced Handlebars templates or template data may be disrupted, resulting in degraded service, failed page rendering, API errors, worker exhaustion, or outages. Although there is no indication this advisory is in CISA KEV or associated with ransomware campaigns, the issue is old and should be treated as routine technical debt if vulnerable versions remain in production.
How an attack unfolds
An attacker first identifies an application path that causes the server to compile or render Handlebars templates using attacker-controlled input. They then submit crafted content designed to trigger the vulnerable behavior in the Handlebars parser or renderer. When the application processes that content, the Node.js process may consume excessive CPU or memory, block the event loop, crash, or tie up worker capacity. Repeating the request can amplify the impact and create a sustained denial of service against the affected application component.
How to fix it
Upgrade handlebars to version 4.4.5 or later. For npm-based projects, update package.json and the lockfile, then rebuild and redeploy affected applications. If direct upgrade is not immediately possible, reduce exposure by preventing untrusted users from supplying templates, validating and limiting template size and complexity, applying request body limits and timeouts, isolating rendering workers, and rate-limiting endpoints that invoke template rendering.
How to confirm the fix worked
Confirm that dependency manifests and lockfiles resolve handlebars to 4.4.5 or later. Run dependency scanners such as npm audit, GitHub Dependabot, Snyk, OSV-Scanner, or equivalent SCA tooling to verify the advisory no longer applies. In deployed artifacts and containers, inspect the bundled node_modules/handlebars/package.json version. Functionally test template rendering paths with normal and boundary-size inputs to ensure the application remains stable after upgrade.
Typical attack path
- Identify an application or service that uses a vulnerable version of the handlebars npm package.
- Find an input vector that reaches Handlebars template compilation or rendering, such as user-editable templates, CMS content, email templates, document generation, or dynamic page rendering.
- Send specially crafted template input or data that triggers pathological processing behavior.
- Cause excessive CPU, memory consumption, event-loop blocking, process crashes, or worker exhaustion.
- Repeat requests to sustain application unavailability or degraded performance.
How to detect it
To determine whether this was already exploited, review application, reverse proxy, WAF, container, and process supervisor logs for repeated requests to endpoints that compile or render Handlebars templates followed by spikes in CPU or memory, Node.js event-loop stalls, worker restarts, out-of-memory terminations, HTTP 500/502/503/504 responses, or request timeouts. Examine APM traces for long-running template rendering operations and unusual payload sizes or repeated malformed template syntax. Correlate suspected request timestamps with process crashes, Kubernetes pod restarts, Node.js fatal errors, and autoscaling events. Because no public exploit indicators or actor-specific signatures are provided, detection should focus on behavioral evidence of resource exhaustion around template-processing code paths.
- node_modules/handlebars/package.json
- "handlebars"
- "version": "4.4.4"
- "version": "4.4.3"
- "version": "4.4.2"
- "version": "4.4.1"
- "version": "4.4.0"
- JavaScript heap out of memory
- FATAL ERROR: Ineffective mark-compacts near heap limit
- ENOMEM
- ETIMEDOUT
- HTTP 503
- HTTP 504
- upstream timed out
- worker process exited
- pod restarted
- OOMKilled
What your security team should do
- Inventory applications, containers, and build artifacts that include the handlebars npm package.
- Prioritize remediation for internet-facing services or systems that render user-controlled templates, documents, emails, or CMS content.
- Upgrade handlebars to 4.4.5 or later and ensure lockfiles are regenerated so vulnerable transitive versions are not retained.
- Add dependency scanning to CI/CD pipelines and fail builds that reintroduce vulnerable handlebars versions.
- Apply operational safeguards around template rendering, including request limits, timeouts, rate limits, worker isolation, and monitoring for CPU or memory spikes.
- Review logs for historical evidence of repeated rendering errors, event-loop stalls, crashes, or abnormal traffic to template-rendering endpoints.
The record
Denial of Service in handlebars
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| npm | handlebars | 4.0.0 | 4.4.5 |
Related vulnerabilities
- GHSA-7rx3-28cr-v5wh Handlebars.js has a Prototype Method Access Control Gap via Missing __lookupSetter__… Also affects handlebars
- GHSA-442j-39wm-28r2 Handlebars.js has a Property Access Validation Bypass in container.lookup Also affects handlebars
- CVE-2026-33940 Handlebars provides the power necessary to let users build semantic templates. Also affects handlebars
- CVE-2026-33941 Handlebars provides the power necessary to let users build semantic templates. Also affects handlebars
- CVE-2026-33939 Handlebars provides the power necessary to let users build semantic templates. Also affects handlebars
- CVE-2026-33937 Handlebars provides the power necessary to let users build semantic templates. Also affects handlebars
- CVE-2026-33938 Handlebars provides the power necessary to let users build semantic templates. Also affects handlebars
- CVE-2026-33916 Handlebars provides the power necessary to let users build semantic templates. Also affects handlebars