CVEReports
CVEReports

Automated vulnerability intelligence platform. Comprehensive reports for high-severity CVEs generated by AI.

Product

  • Home
  • Sitemap
  • RSS Feed

Company

  • About
  • Contact
  • Privacy Policy
  • Terms of Service

© 2026 CVEReports. All rights reserved.

Made with love by Amit Schendel & Alon Barad



CVE-2026-63490

CVE-2026-63490: Path Traversal and Arbitrary File Disclosure in Handlebars.java

Alon Barad
Alon Barad
Software Engineer

Sep 3, 2026·5 min read·2 visits

Executive Summary (TL;DR)

Unauthenticated path traversal in Handlebars.java allows arbitrary file retrieval by exploiting a parser discrepancy between Java's URL resolver and template suffix enforcement.

CVE-2026-63490 is a critical path traversal vulnerability in the Spring MVC integration of Handlebars.java. It allows unauthenticated remote attackers to bypass suffix validation and retrieve arbitrary system files via crafted dynamic view names.

Vulnerability Overview

The vulnerability CVE-2026-63490 (GHSA-g29j-rwfv-h99w) represents a path traversal flaw in the handlebars-springmvc module of Handlebars.java, a Java port of the Handlebars template engine. The component integrates Handlebars template rendering into the Spring MVC framework, primarily utilizing SpringTemplateLoader and HandlebarsViewResolver to resolve templates dynamically.

The flaw permits unauthenticated remote attackers to bypass path validation mechanisms and read arbitrary files from the server's local file system or accessible classpaths. This vulnerability occurs when application endpoints dynamically determine view names based on user input without strict validation, thereby exposing an attack surface to remote network-based exploitation.

By leveraging specific URL delimiters, adversaries trigger directory navigation paths that escape the intended application templates directory. This results in the complete bypass of validation checks built to restrict access solely to safe view components.

Root Cause Analysis

The primary defect resides in a parser differential between Java's network-resource resolvers and Handlebars' suffix enforcement logic within SpringTemplateLoader. To restrict template lookup to authorized templates, Handlebars automatically appends an .hbs extension to requested view names, creating a presumed boundary where only files ending in .hbs are processed.

However, when the resource-loading process is delegated to Spring's ResourceLoader, an attacker can manipulate the path by appending URL query parameters (?) or fragment delimiters (#). Java's internal URL parser recognizes the # character as a URL fragment identifier and discards the fragment, along with the appended .hbs suffix, during the actual file-system or socket-level read. Consequently, the application resolves and reads the target file without the suffix restriction, allowing unauthorized file retrieval.

In addition, the SpringTemplateLoader did not implement any logical bounds checking to enforce directory containment. As a result, the resolved paths were allowed to reference arbitrary local directory locations outside of the configured template base directory prefix.

Code Analysis

The vulnerable code path did not perform canonical path boundary checking or URL fragment validation before retrieving resources. In the original implementation of SpringTemplateLoader.getResource(final String location), the input location was directly resolved via loader.getResource(location) without validating if the resulting URL contained unsafe URI components.

The following diagram outlines the execution path that leads to the vulnerability:

The fixing commit 61f43423a337b87db5fec1fe59f0725aaaa38df5 addresses this by applying canonical path normalization and strict URL component validation. The updated SpringTemplateLoader canonicalizes the resolved path using java.nio.file.Paths and verifies that it does not escape the defined prefix directory. Furthermore, the validateNoUnsafeUrlComponents helper function throws an exception if the resolved URL contains either a fragment or a query component.

Exploitation

Exploitation of CVE-2026-63490 requires a Spring MVC application configuration where controller view names are influenced directly by user-controlled parameters. An attacker can transmit a crafted payload over HTTP containing a URI protocol identifier and a URL fragment delimiter, such as file:/etc/passwd# or a classpath resource reference.

When the application processes this request, the controller returns the user-supplied string as the view name, which is subsequently handled by HandlebarsViewResolver. Because the template engine compiles templates using the raw contents of the resolved file, the arbitrary contents of the target file are parsed and returned directly to the user in the HTTP response.

The attack executes with the permissions of the underlying JVM process and requires no prior authentication or administrative privileges. Consequently, the exploit is reliable and has low operational complexity.

Impact Assessment

The exploitation of this path traversal vulnerability leads to unauthorized disclosure of sensitive local files and application data. Attackers can extract critical credentials, database properties, application source code, and platform configuration parameters.

Because the impact is limited to data disclosure without modifying files or causing direct denial of service, the integrity and availability impacts are rated as None. The base CVSS v3.1 score is evaluated at 7.5 (High) with a vector of CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N. At this time, threat intelligence sources indicate that exploitation is limited to proof-of-concept tests and has not been widely observed in active campaign activity.

Organizations running affected modules face substantial risk of informational exposure which could lead to secondary privilege escalation attacks.

Remediation

The definitive remediation for this vulnerability is to upgrade the com.github.jknack:handlebars.java library to version 4.5.3 or later. This upgrade addresses both the web-layer view resolver parameter checking and the loader-level URL validation mechanisms.

If upgrading immediately is not feasible, developers must refactor controllers to avoid dynamic view resolution based directly on untrusted parameters. Implementing strict allowlists of permissible view names prevents users from supplying arbitrary paths. WAF-level rules can also be established to block requests containing protocol prefixes or URL fragments within parameters destined for view-name resolution.

Following the application of the upgrade, existing deployment assets should be scanned to confirm that legacy vulnerable versions of the jar file have been fully replaced.

Official Patches

jknackGit commit containing the security fix.

Fix Analysis (1)

Technical Appendix

CVSS Score
7.5/ 10
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
EPSS Probability
0.47%
Top 61% most exploited

Affected Systems

Applications implementing handlebars-springmvc below version 4.5.3

Affected Versions Detail

Product
Affected Versions
Fixed Version
handlebars-springmvc
jknack
< 4.5.34.5.3
AttributeDetail
CWE IDCWE-22, CWE-23, CWE-552
Attack VectorNetwork
CVSS v3.1 Score7.5 (High)
EPSS Score0.0047
ImpactArbitrary File Disclosure
Exploit StatusProof of Concept
KEV StatusNot Listed

MITRE ATT&CK Mapping

T1083File and Directory Discovery
Discovery
T1005Data from Local System
Collection
CWE-22
Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal')

Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal')

Known Exploits & Detection

GitHubAdvisory containing PoC steps and details of the path traversal suffix bypass mechanism.

Vulnerability Timeline

Vulnerability Published
2026-08-20
Patch Released
2026-08-20

References & Sources

  • [1]GitHub Security Advisory GHSA-g29j-rwfv-h99w
  • [2]CVE-2026-63490 Detail - NVD

Attack Flow Diagram

Press enter or space to select a node. You can then use the arrow keys to move the node around. Press delete to remove it and escape to cancel.
Press enter or space to select an edge. You can then press delete to remove it or escape to cancel.

More Reports

•9 minutes ago•CVE-2026-63435
5.3

CVE-2026-63435: Parser Interpretation Conflict in Ruby Mail Gem RFC 2047 Decoders

An interpretation conflict (CWE-436) exists in the Ruby 'mail' library's RFC 2047 decoding implementation. Vulnerable versions utilize regular expressions with overly greedy qualifiers and a singular matching strategy. When parsing malformed headers, these design flaws trigger unexpected exception-handling behaviors, outputting raw, unparsed strings. Consequently, intermediate security gateways and downstream Ruby processors interpret email addresses differently, enabling authentication bypasses, phishing, and header spoofing.

Alon Barad
Alon Barad
0 views•5 min read
•about 1 hour ago•CVE-2026-63481
6.9

CVE-2026-63481: Sensitive Information Exposure in Hurl [Cookies] Redirection

Hurl version 8.0.1 and earlier contains a sensitive information exposure vulnerability during cross-origin HTTP redirections. Cookies defined via a dedicated [Cookies] parser block are carried into the redirected request, whereas standard raw Cookie headers are correctly stripped. This allows attackers to capture session credentials by redirecting Hurl clients to untrusted external hosts.

Amit Schendel
Amit Schendel
2 views•6 min read
•about 2 hours ago•CVE-2026-4692
10.0

CVE-2026-4692: Sandbox Escape via Responsive Design Mode in Mozilla Firefox and Thunderbird

CVE-2026-4692 is a critical security vulnerability within the multi-process architecture of Mozilla Firefox, Firefox ESR, and Mozilla Thunderbird. It is classified as a sandbox escape residing in the Responsive Design Mode (RDM) component. Due to a missing authorization check during Inter-Process Communication (IPC) synchronization of BrowsingContext state, a compromised content process can unilaterally declare its top-level browsing context to be rendered in Responsive Design Mode. This state modification relaxes hit-test bounds restrictions, enabling the content process to dispatch synthesized touch events that target and trigger clicks within privileged browser UI (Chrome UI) elements. The exploitation of this vulnerability achieves complete sandbox escape and arbitrary code execution in the context of the parent process.

Amit Schendel
Amit Schendel
3 views•6 min read
•about 3 hours ago•CVE-2026-65842
8.2

CVE-2026-65842: Server-Side Request Forgery with Response Disclosure in @platejs/docx-io

CVE-2026-65842 is a high-severity Server-Side Request Forgery (SSRF) vulnerability with response disclosure in the @platejs/docx-io package of the Plate rich-text editor ecosystem. Prior to version 53.3.2, the library parsed HTML image tags and unconditionally fetched remote URL resources. Because the server-side response is subsequently encoded and compiled into the generated DOCX file, an attacker can extract sensitive internal data such as local API endpoints, private network configurations, or cloud instance metadata (IMDS) from the downloaded document structure.

Alon Barad
Alon Barad
3 views•6 min read
•about 3 hours ago•CVE-2026-2763
9.8

CVE-2026-2763: Use-After-Free in SpiderMonkey Generator for-in Loops

A critical use-after-free vulnerability exists in the SpiderMonkey JavaScript engine of Mozilla Firefox and Thunderbird. The flaw occurs when a generator object containing an active for-in loop is garbage-collected before the loop's iterator scope is finalized. This leaves a dangling pointer in the compartment's active enumerators list, allowing attackers to corrupt memory and execute arbitrary code.

Alon Barad
Alon Barad
3 views•6 min read
•about 4 hours ago•CVE-2026-60206
9.9

CVE-2026-60206: Unauthenticated SAML Authentication Bypass in Oracle WebLogic Server

A critical vulnerability (CVE-2026-60206) in Oracle WebLogic Server allows unauthenticated or low-privileged attackers to bypass SAML authentication controls. This flaw stems from improper validation of XML signatures and parsing discrepancies in SAML assertions, allowing arbitrary administrative session creation.

Amit Schendel
Amit Schendel
4 views•5 min read