Headline
GHSA-vm5r-c87r-pf6x: Parse Server option `masterKeyIps` vulnerability to IP spoofing
Impact
Parse Server uses the request header x-forwarded-for
to determine the client IP address. If Parse Server doesn’t run behind a proxy server, then a client can set this header and Parse Server will trust the value of the header. The incorrect client IP address will be used by various features in Parse Server. This allows to circumvent the security mechanism of the Parse Server option masterKeyIps
by setting an allowed IP address as the x-forwarded-for
header value.
Patches
The mechanism to determine the client IP address has been rewritten. The correct IP address determination now requires to set the Parse Server option trustProxy
accordingly, see the express framework’s trust proxy setting.
References
- https://github.com/parse-community/parse-server/security/advisories/GHSA-vm5r-c87r-pf6x
- https://expressjs.com/en/guide/behind-proxies.html
Package
npm parse-server (npm)
Affected versions
< 5.4.1
Description
Impact
Parse Server uses the request header x-forwarded-for to determine the client IP address. If Parse Server doesn’t run behind a proxy server, then a client can set this header and Parse Server will trust the value of the header. The incorrect client IP address will be used by various features in Parse Server. This allows to circumvent the security mechanism of the Parse Server option masterKeyIps by setting an allowed IP address as the x-forwarded-for header value.
Patches
The mechanism to determine the client IP address has been rewritten. The correct IP address determination now requires to set the Parse Server option trustProxy accordingly, see the express framework’s trust proxy setting.
References
- GHSA-vm5r-c87r-pf6x
- https://expressjs.com/en/guide/behind-proxies.html
References
- GHSA-vm5r-c87r-pf6x
Last updated
Jan 31, 2023
Published to the GitHub Advisory Database
Jan 31, 2023
Severity
CVSS base metrics
CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:C/C:H/I:H/A:N
GHSA ID
GHSA-vm5r-c87r-pf6x
Source code
Related news
Parse Server is an open source backend that can be deployed to any infrastructure that can run Node.js. Parse Server uses the request header `x-forwarded-for` to determine the client IP address. If Parse Server doesn't run behind a proxy server, then a client can set this header and Parse Server will trust the value of the header. The incorrect client IP address will be used by various features in Parse Server. This allows to circumvent the security mechanism of the Parse Server option `masterKeyIps` by setting an allowed IP address as the `x-forwarded-for` header value. This issue has been patched in version 5.4.1. The mechanism to determine the client IP address has been rewritten. The correct IP address determination now requires to set the Parse Server option `trustProxy`.