Skip to content
OpenAdvisories
High · 7.5 CVE-2026-63490 EUVD-2026-63392GHSA-g29j-rwfv-h99w

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

Published Aug 20, 2026 · Updated Aug 25, 2026 · Assigned by GitHub_M

Description

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.

Affected products

VendorProductAffectedFixed
jknack handlebars.java < 4.5.3 —

Affected packages

EcosystemPackageAffectedFixedRecord
Maven com.github.jknack:handlebars-springmvc < 4.5.3 4.5.3 GHSA-g29j-rwfv-h99w

References