Impact
A Cross-Site Request Forgery (CSRF) vulnerability was identified in Apollo’s Embedded Sandbox and Embedded Explorer.
The vulnerability arises from missing origin validation in the client-side code that handles window.postMessage events. A malicious website can send forged messages to the embedding page, causing the victim’s browser to execute arbitrary GraphQL queries or mutations against their GraphQL server while authenticated with the victim’s cookies.
This vulnerability was present when Apollo Server ran with embedded Sandbox or Explorer enabled. Embedded Sandbox is enabled by default when NODE_ENV is not set to production, and embedded Sandbox and Explorer can also be enabled in production mode via landing page plugins.
Apollo Server's support for embedded Sandbox and Explorer serves the vulnerable code from Apollo's CDN. Apollo has already mitigated the vulnerability by updating its CDN. No action is necessary to mitigate this vulnerability for users of Apollo Server.
For more information on this vulnerability, see the main advisory.
(This advisory affected all versions of Apollo Server when configured to serve embedded Sandbox or Explorer, but no upgrade is required to fix it. The GHSA "affected products" field does not allow us to represent this or to leave it blank, so this GHSA lists @apollo/sandbox and @apollo/explorer as affected products rather than @apollo/server; technically speaking, these npm packages are not dependencies of @apollo/server.)
Impact
A Cross-Site Request Forgery (CSRF) vulnerability was identified in Apollo’s Embedded Sandbox and Embedded Explorer.
The vulnerability arises from missing origin validation in the client-side code that handles
window.postMessageevents. A malicious website can send forged messages to the embedding page, causing the victim’s browser to execute arbitrary GraphQL queries or mutations against their GraphQL server while authenticated with the victim’s cookies.This vulnerability was present when Apollo Server ran with embedded Sandbox or Explorer enabled. Embedded Sandbox is enabled by default when
NODE_ENVis not set toproduction, and embedded Sandbox and Explorer can also be enabled in production mode via landing page plugins.Apollo Server's support for embedded Sandbox and Explorer serves the vulnerable code from Apollo's CDN. Apollo has already mitigated the vulnerability by updating its CDN. No action is necessary to mitigate this vulnerability for users of Apollo Server.
For more information on this vulnerability, see the main advisory.
(This advisory affected all versions of Apollo Server when configured to serve embedded Sandbox or Explorer, but no upgrade is required to fix it. The GHSA "affected products" field does not allow us to represent this or to leave it blank, so this GHSA lists
@apollo/sandboxand@apollo/exploreras affected products rather than@apollo/server; technically speaking, these npm packages are not dependencies of@apollo/server.)