CVE-2023-38493: Paths contain matrix variables bypass decorators
Impact Spring supports Matrix variables. When Spring integration is used, Armeria calls Spring controllers via TomcatService or JettyService with the path that may contain matrix variables. In this situation, the Armeria decorators might not invoked because of the matrix variables. Let's see the following example: // Spring controller @GetMapping("/important/resources") public String important() {...}
// Armeria decorator ServerBuilder sb = ... sb.decoratorUnder("/important/", authService); If an attacker sends a request with /important;a=b/resources, the request would bypass the authrorizer
Patches - https://github.com/line/armeria-ghsa-wvp2-9ppw-337j/commit/9b0ec3e099cc05fbff11d7f1012a1dddb0000d0c
Workarounds Users can add decorators using regex. e.g. "regex:^/important."
Other sources
Armeria is a microservice framework Spring supports Matrix variables. When Spring integration is used, Armeria calls Spring controllers via TomcatService or JettyService with the path that may contain matrix variables. Prior to version 1.24.3, the Armeria decorators might not invoked because of the matrix variables. If an attacker sends a specially crafted request, the request may bypass the authorizer. Version 1.24.3 contains a patch for this issue.
Affected Software
Remediation
Event History
Frequently Asked Questions
What is the vulnerability ID for this vulnerability?
The vulnerability ID for this vulnerability is CVE-2023-38493.
What is the impact of this vulnerability?
The impact of this vulnerability is that Armeria calls Spring controllers with a path that may contain matrix variables in an insecure manner.
What is the severity of CVE-2023-38493?
The severity of CVE-2023-38493 is high with a CVSS score of 7.5.
Which software is affected by CVE-2023-38493?
The Armeria microservice framework versions up to and including 1.24.2 are affected by CVE-2023-38493.
How do I fix CVE-2023-38493?
To fix CVE-2023-38493, upgrade to Armeria version 1.24.3 or later.