Saleor is an e-commerce platform. Starting in version 3.10.0 and prior to versions 3.14.64, 3.15.39, 3.16.39, 3.17.35, 3.18.31, and 3.19.19, an attacker may bypass cross-set request forgery (CSRF) validation when calling refresh token mutation with empty string. When a user provides an empty string in refreshToken mutation, while the token persists in JWT_REFRESH_TOKEN_COOKIE_NAME cookie, application omits validation against CSRF token and returns valid access token. Versions 3.14.64, 3.15.39, 3.16.39, 3.17.35, 3.18.31, and 3.19.19 contain a patch for the issue. As a workaround, one may replace saleor.graphql.account.mutations.authentication.refresh_token.py.get_refresh_token. This will fix the issue, but be aware, that it returns JWT_MISSING_TOKEN instead of JWT_INVALID_TOKEN.
The web application does not, or cannot, sufficiently verify whether a request was intentionally provided by the user who sent the request, which could have originated from an unauthorized actor.
| Name | Vendor | Start Version | End Version |
|---|---|---|---|
| Saleor | Saleor | 3.10.0 (including) | 3.14.64 (excluding) |
| Saleor | Saleor | 3.15.0 (including) | 3.15.39 (excluding) |
| Saleor | Saleor | 3.16.0 (including) | 3.16.39 (excluding) |
| Saleor | Saleor | 3.17.0 (including) | 3.17.35 (excluding) |
| Saleor | Saleor | 3.18.0 (including) | 3.18.31 (excluding) |
| Saleor | Saleor | 3.19.0 (including) | 3.19.19 (excluding) |