{"id":"CVE-2026-55760","aliases":["EUVD-2026-42352","GHSA-r4gv-qr8j-p3pg","ROOT-APP-MAVEN-CVE-2026-55760"],"status":"published","title":"handlebars.java FileTemplateLoader Path Traversal","description":"Handlebars.java provides logic-less and semantic Mustache templates with Java. Prior to 4.5.2, applications that pass user-controlled input to Handlebars.compile() using FileTemplateLoader or ClassPathTemplateLoader are vulnerable to path traversal, allowing arbitrary file read through template names derived from URL path parameters, request parameters, or other user-controlled sources. This issue is fixed in version 4.5.2.","severity":{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N","level":"high","assessor":"cna","from":"cve"},"epss":{"day":"2026-11-10","score":0.0053,"percentile":0.45134,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":true},"cwes":["CWE-22"],"published":"2026-06-17T18:42:09Z","modified":"2026-10-28T10:55:41Z","fixes":[{"ecosystem":"Maven","package":"com.github.jknack:handlebars","fixed_in":["4.5.2"],"sources":["ghsa","osv"]},{"ecosystem":"Root:Maven","package":"io.root.com.github.jknack:handlebars","fixed_in":["4.3.1-root.io.1"],"sources":["osv"]},{"ecosystem":"Root:Maven","package":"com.github.jknack:handlebars","fixed_in":["4.3.1-aikido.1"],"sources":["osv"]}],"affected":[{"source":"ghsa","ecosystem":"Maven","package":"com.github.jknack:handlebars","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"4.5.2"}]}]},{"source":"osv","ecosystem":"Maven","package":"com.github.jknack:handlebars","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"4.5.2"}]}],"versions":["0.10.0","0.11.0","0.12.0","0.4.0","0.4.1","0.4.2","0.5.0","0.5.1","0.5.2","0.5.3","0.5.4","0.5.5","0.6.0","0.6.1","0.6.2","0.7.0","0.8.0","0.9.0","1.0.0","1.1.0","1.1.1","1.1.2","1.2.0","1.2.1","1.3.0","1.3.1","1.3.2","2.0.0","2.1.0","2.2.0","2.2.1","2.2.2","2.2.3","2.3.0","2.3.1","2.3.2","3.0.0","4.0.0","4.0.1","4.0.2","4.0.3","4.0.4","4.0.5","4.0.6","4.0.7","4.1.0","4.1.1","4.1.2","4.2.0","4.2.1","4.3.0","4.3.1","4.4.0","4.5.0","4.5.1"]},{"source":"osv","ecosystem":"Root:Maven","package":"io.root.com.github.jknack:handlebars","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"4.3.1-root.io.1"}]}]},{"source":"osv","ecosystem":"Root:Maven","package":"com.github.jknack:handlebars","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"4.3.1-aikido.1"}]}]}],"products":[{"vendor":"jknack","product":"handlebars.java"}],"references":[{"url":"https://github.com/jknack/handlebars.java/security/advisories/GHSA-r4gv-qr8j-p3pg","tags":["x_refsource_CONFIRM","advisory","web"]},{"url":"https://github.com/jknack/handlebars.java/commit/d177cdee8b750385ca7a0d0f89f2d4be73e28f4e","tags":["x_refsource_MISC","fix"]},{"url":"https://github.com/jknack/handlebars.java/releases/tag/v4.5.2","tags":["x_refsource_MISC","web"]},{"url":"https://github.com/advisories/GHSA-r4gv-qr8j-p3pg"},{"url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/55xxx/CVE-2026-55760.json","tags":["advisory"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-55760","tags":["advisory"]},{"url":"https://github.com/jknack/handlebars.java","tags":["package"]}],"sources":{"cve":[{"id":"CVE-2026-55760","title":"handlebars.java FileTemplateLoader Path Traversal","description":"Handlebars.java provides logic-less and semantic Mustache templates with Java. Prior to 4.5.2, applications that pass user-controlled input to Handlebars.compile() using FileTemplateLoader or ClassPathTemplateLoader are vulnerable to path traversal, allowing arbitrary file read through template names derived from URL path parameters, request parameters, or other user-controlled sources. This issue is fixed in version 4.5.2.","status":"published","published":"2026-07-08T19:31:22.919Z","modified":"2026-07-09T14:37:41.666Z","cvss":[{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N","level":"high","assessor":"cna"}],"cwes":["CWE-22"],"updated_at":"2026-11-02T14:20:11.925815Z"}],"euvd":[{"id":"EUVD-2026-42352","description":"Handlebars.java provides logic-less and semantic Mustache templates with Java. Prior to 4.5.2, applications that pass user-controlled input to Handlebars.compile() using FileTemplateLoader or ClassPathTemplateLoader are vulnerable to path traversal, allowing arbitrary file read through template names derived from URL path parameters, request parameters, or other user-controlled sources. This issue is fixed in version 4.5.2.","status":"published","published":"2026-07-08T19:31:22Z","modified":"2026-07-09T14:37:41Z","cvss":[{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N","level":"high"}],"updated_at":"2026-11-02T18:20:04.126011Z"}],"ghsa":[{"id":"GHSA-r4gv-qr8j-p3pg","title":"handlebars.java FileTemplateLoader Path Traversal","description":"### Impact\nAny application that passes user-controlled input to Handlebars.compile() using a FileTemplateLoader (or ClassPathTemplateLoader) is vulnerable to arbitrary file read. This is a realistic attack surface for web applications that use template names from URL path parameters, request parameters, or other user-controlled sources.\n\n### Patches\ncom.github.jknack:handlebars:4.5.2\n\n### Workarounds\n\nValidate template name is derived from user input. \n\n```java\nif (!file.getPath().startsWith(new File(prefix).getCanonicalPath())) {\n        throw new IOException(\"Path traversal attempt detected: \" + location);\n}\n```","status":"published","published":"2026-06-17T18:42:09Z","modified":"2026-06-17T18:42:12Z","cvss":[{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N","level":"high"}],"cwes":["CWE-22"],"updated_at":"2026-11-02T14:40:28.438722Z"}],"nvd":[{"id":"CVE-2026-55760","description":"Handlebars.java provides logic-less and semantic Mustache templates with Java. Prior to 4.5.2, applications that pass user-controlled input to Handlebars.compile() using FileTemplateLoader or ClassPathTemplateLoader are vulnerable to path traversal, allowing arbitrary file read through template names derived from URL path parameters, request parameters, or other user-controlled sources. This issue is fixed in version 4.5.2.","status":"published","published":"2026-07-08T20:16:53.287Z","modified":"2026-10-25T17:10:00.197Z","cvss":[{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N","level":"high","assessor":"secondary"}],"cwes":["CWE-22"],"updated_at":"2026-11-02T14:12:28.4135Z"}],"osv":[{"id":"CVE-2026-55760","title":"handlebars.java FileTemplateLoader Path Traversal","description":"Handlebars.java provides logic-less and semantic Mustache templates with Java. Prior to 4.5.2, applications that pass user-controlled input to Handlebars.compile() using FileTemplateLoader or ClassPathTemplateLoader are vulnerable to path traversal, allowing arbitrary file read through template names derived from URL path parameters, request parameters, or other user-controlled sources. This issue is fixed in version 4.5.2.","status":"published","published":"2026-07-08T19:31:22.919Z","modified":"2026-10-28T10:55:41.361000073Z","cvss":[{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N","level":"high"}],"cwes":["CWE-22"],"updated_at":"2026-11-02T15:45:11.22012Z"},{"id":"GHSA-r4gv-qr8j-p3pg","title":"handlebars.java FileTemplateLoader Path Traversal","description":"### Impact\nAny application that passes user-controlled input to Handlebars.compile() using a FileTemplateLoader (or ClassPathTemplateLoader) is vulnerable to arbitrary file read. This is a realistic attack surface for web applications that use template names from URL path parameters, request parameters, or other user-controlled sources.\n\n### Patches\ncom.github.jknack:handlebars:4.5.2\n\n### Workarounds\n\nValidate template name is derived from user input. \n\n```java\nif (!file.getPath().startsWith(new File(prefix).getCanonicalPath())) {\n        throw new IOException(\"Path traversal attempt detected: \" + location);\n}\n```","status":"published","published":"2026-06-17T18:42:09Z","modified":"2026-06-17T19:11:27.636652Z","cvss":[{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N","level":"high"}],"cwes":["CWE-22"],"updated_at":"2026-11-02T15:46:55.480549Z"},{"id":"ROOT-APP-MAVEN-CVE-2026-55760","title":"CVE-2026-55760 in io.root.com.github.jknack:handlebars - Patched by Root","description":"Root has patched CVE-2026-55760 in the io.root.com.github.jknack:handlebars package for Root:Maven. Multiple fixed versions available.","status":"published","published":"2026-06-26T13:22:38Z","modified":"2026-06-26T19:15:05.574563077Z","updated_at":"2026-11-02T15:53:27.066589Z"}]}}
