GitHub Advisoryadvisory · Maven
GHSA-wvp2-9ppw-337j Paths contain matrix variables bypass decorators
HIGH
Official page ↗
- Aliases
- CVE-2023-38493
- Ecosystem
- Maven
- Packages
- com.linecorp.armeria:armeria
- Severity
- High
- CVSS vector
- CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
- Weaknesses
- CWE-863
- Reviewed
- 2023-07-25
Affected packages
• Maven com.linecorp.armeria:armeria: < 1.24.3 → fixed in 1.24.3
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
• https://github.com/line/armeria-ghsa-wvp2-9ppw-337j/commit/9b0ec3e099cc05fbff11d7f1012a1dddb0000d0c
Workarounds
Users can add decorators using regex. `e.g. "regex:^/important.*"`
Related
Alias · CVE (1)
- CVE-2023-38493 Armeria is a microservice framework Spring supports Matrix variables. vulnerability
Weakness · CWE (1)
- CWE-863 Incorrect Authorization weakness
References
- https://github.com/line/armeria/security/advisories/GHSA-wvp2-9ppw-337j web
- https://nvd.nist.gov/vuln/detail/CVE-2023-38493 advisory
- 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 web
- https://github.com/line/armeria package