Description
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`.
Remediation
References
https://github.com/parse-community/parse-server/commit/e016d813e083ce6828f9abce245d15b681a224d8
https://github.com/parse-community/parse-server/security/advisories/GHSA-vm5r-c87r-pf6x
Related Vulnerabilities
CVE-2018-20834 Vulnerability in maven package org.webjars.npm:tar
CVE-2019-14862 Vulnerability in maven package org.webjars.bower:knockout
CVE-2020-28470 Vulnerability in npm package @scullyio/scully
CVE-2013-1777 Vulnerability in maven package org.apache.geronimo.framework:geronimo-jmx-remoting
CVE-2021-23346 Vulnerability in npm package html-parse-stringify2