HIGH 7.5 Maven
Paths contain matrix variables bypass decorators
GHSA-wvp2-9ppw-337j · CVE-2023-38493
Published · Modified
Description
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
Workarounds
Users can add decorators using regex. e.g. "regex:^/important.*"
References
- WEB https://github.com/line/armeria/security/advisories/GHSA-wvp2-9ppw-337j
- ADVISORY https://nvd.nist.gov/vuln/detail/CVE-2023-38493
- WEB https://github.com/line/armeria/commit/039db50bbfc88014ea8737fd1e1ddd6fd3fc4f07
- WEB https://github.com/line/armeria/commit/49e04ef231ad65750739529c7fa4ce946ff7588b
- WEB https://docs.spring.io/spring-framework/reference/web/webmvc/mvc-controller/ann-methods/matrix-variables.html
- PACKAGE https://github.com/line/armeria
Ready to move
Start Securing
Free, no credit card | First findings in minutes