Read the docs
TI-2026-45235 Aliases CVE-2026-63490GHSA-g29j-rwfv-h99w

Handlebars.java: Arbitrary file read in `SpringTemplateLoader` via URL-fragment suffix bypass

Priority HIGH 72CWE-22Published · Updated

Key facts

Attack vector
Network
Privileges required
None
User interaction
None
Attack complexity
Low
Impact type
Information disclosure
Confidentiality · integrity · availability
High · None · None
Fix status
Fixed

Attack profile from CVSS 3.1 · CNA. Fix status from CNA and GitHub. Impact type from CWE-22 and the CVSS impact.

Summary

Handlebars.java provides logic-less and semantic Mustache templates with Java. Prior to 4.5.3, com.github.jknack.handlebars.springmvc.SpringTemplateLoader resolves attacker-influenced Spring MVC view names through Spring ResourceLoader without the path-containment validation used by other URL-based loaders. In handlebars-springmvc/src/main/java/com/github/jknack/handlebars/springmvc/SpringTemplateLoader.java, a view name using a file: or classpath: URL and ending with the # fragment delimiter places the appended .hbs suffix in the fragment, which FileUrlResource.exists() and URL.openStream() discard. HandlebarsViewResolver in handlebars-springmvc/src/main/java/com/github/jknack/handlebars/springmvc/HandlebarsViewResolver.java then passes the attacker-controlled name to handlebars.compile(), allowing an unauthenticated remote attacker to read files accessible to the JVM when an application exposes a controller with a user-influenced view name. This issue is fixed in version 4.5.3.

Why it matters now

Exploitation Proof of concept CISA SSVC · not in CISA KEV
EPSS 0.00688 52nd percentileScored 2026-11-07
Fix Fixed handlebars.java (jknack): 4.5.3com.github.jknack:handlebars-springmvc (Maven): 4.5.3

SSVC decision points

CISA ADP · SSVC 2.0.3

Exploitation
Poc
Automatable
Yes
Technical impact
Partial

The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.

Affected products

VendorProductAffected versionsFixed inStatusSource
jknackhandlebars.javabefore 4.5.34.5.3Patch availableCNA
—com.github.jknack:handlebars-springmvc (Maven)before 4.5.34.5.3Patch availableGHSA-g29j-rwfv-h99w
  • handlebars.java Vendorjknack Affected before 4.5.3 Fixed in 4.5.3 Patch available CNA
  • com.github.jknack:handlebars-springmvc (Maven) Vendor— Affected before 4.5.3 Fixed in 4.5.3 Patch available GHSA-g29j-rwfv-h99w

Remediation

  • Fix · CNA handlebars.java (jknack) Fixed in 4.5.3
  • Fix · GHSA-g29j-rwfv-h99w com.github.jknack:handlebars-springmvc (Maven) Fixed in 4.5.3 Advisory →

Timeline

  1. 2026-10-02 Threatist record created from CVE-2026-63490
  2. 2026-10-03 Alias added: GHSA-g29j-rwfv-h99w

References

  • TI-2026-65584 Path traversal in jknack handlebars.java CVSS 3.1HIGH 7.5
  • TI-2026-40249 handlebars.java FileTemplateLoader Path Traversal CVSS 3.1HIGH 7.5

Sources