Skip to content

fix(deps): update dependency @apollo/explorer to v3 [security] - autoclosed#8083

Closed
renovate[bot] wants to merge 1 commit intomasterfrom
renovate/npm-apollo-explorer-vulnerability
Closed

fix(deps): update dependency @apollo/explorer to v3 [security] - autoclosed#8083
renovate[bot] wants to merge 1 commit intomasterfrom
renovate/npm-apollo-explorer-vulnerability

Conversation

@renovate
Copy link
Copy Markdown

@renovate renovate Bot commented Sep 26, 2025

This PR contains the following updates:

Package Change Age Confidence
@apollo/explorer (source) ^2.0.0 -> ^3.0.0 age confidence

GitHub Vulnerability Alerts

CVE-2025-59845

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.

Who is impacted

Anyone embedding Apollo Sandbox or Apollo Explorer in their website may have been affected by this vulnerability.

  • Users who embed Apollo Sandbox or Apollo Explorer in their websites via npm packages (@apollo/sandbox and @apollo/explorer) or direct links to Apollo’s CDN.
  • Users running Apollo Router with embedded Sandbox enabled. This served the vulnerable code from Apollo’s CDN.
  • Users running Apollo Server 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. This served the vulnerable code from Apollo’s CDN.

While all of the above methods of serving Embedded Sandbox and Explorer were vulnerable, Apollo has already updated its CDN to remove all vulnerable versions. Unless you install the npm package @apollo/sandbox or @apollo/explorer directly into your website’s front end code, no action is necessary: the vulnerability has already been mitigated.

Users who do not embed Sandbox/Explorer on their websites, or who only run Apollo Router/Server with production defaults were never impacted. The use of non-embedded Sandbox and Explorer hosted on studio.apollographql.com is not vulnerable.

Scope of impact

The vulnerability allows a malicious website to open the vulnerable website in a new window and force it to send GraphQL requests to its origin. The requests themselves are not "cross-origin" as they are directly issued from the vulnerable website, but their contents are dictated by the malicious website.

The malicious website cannot read the responses to the GraphQL operations, but the operations may be mutations with side effects (such as using credentials to update app-specific data access controls). These operations can contain the browser user's cookies, and the vulnerable website may be on a private network otherwise inaccessible to the attacker. Operations sent this way look and exactly like legitimate operations sent by a human interacting with the embedded Sandbox or Explorer.

Patches

The issue has been fixed by adding strict origin validation to DOM message handling.

  • @apollo/sandbox: Patched in v2.7.2 and later
  • @apollo/explorer: Patched in v3.7.3 and later
  • Apollo’s CDN embeds have been updated to patched versions. This protects embeds based on <script> tags pointing to Apollo’s CDN, as well as the Apollo Router and Apollo Server features. No action is necessary to adopt the fix in this case.

If you manually edited the <script> tag provided by the Explorer or Sandbox UI to replace the version string _latest, v2, or v3 with a specific git-style SHA, you may find that the Explorer or Sandbox UI does not currently load. To fix this, use a supported URL instead, as documented for Sandbox or Explorer. (The third-party Go GraphQL server gqlgen provides a function ApolloSandboxHandler which serves an unsupported URL and was broken by our mitigations; upgrading to gqlgen v0.17.81 will resolve this issue.)

Workarounds

  • If you are using Apollo Server, ensure NODE_ENV=production is set in production to avoid unintentionally serving embedded Sandbox.
  • Customers not using embedded Sandbox/Explorer are not affected and do not need to take action.

References


Release Notes

apollographql/embeddable-explorer (@​apollo/explorer)

v3.7.3

Compare Source

v3.7.2

Compare Source

v3.7.1

Compare Source

v3.7.0

Compare Source

v3.6.0

Compare Source

v3.5.0

Compare Source

v3.4.0

Compare Source

v3.3.0

Compare Source

v3.2.0

Compare Source

v3.1.1

Compare Source

v3.1.0

Compare Source

v3.0.0

Compare Source


Configuration

📅 Schedule: Branch creation - "" (UTC), Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
@renovate renovate Bot added the dependencies Pull requests that update a dependency file label Sep 26, 2025
@codesandbox
Copy link
Copy Markdown

codesandbox Bot commented Sep 26, 2025

Review or Edit in CodeSandbox

Open the branch in Web EditorVS CodeInsiders

Open Preview

@snyk-io
Copy link
Copy Markdown

snyk-io Bot commented Sep 26, 2025

🎉 Snyk checks have passed. No issues have been found so far.

security/snyk check is complete. No issues have been found. (View Details)

@entelligence-ai-pr-reviews
Copy link
Copy Markdown

🔒 Entelligence AI Vulnerability Scanner

No security vulnerabilities found!

Your code passed our comprehensive security analysis.


@entelligence-ai-pr-reviews
Copy link
Copy Markdown

Walkthrough

This PR upgrades the Apollo Explorer plugin from version 2.0.0 to 3.0.0, representing a major version update with potential breaking changes and new features. The yarn.lock file shows the actual version installed is 3.7.3, which includes expanded React peer dependency support for React 19.0.0. Additionally, the PR fixes the GitOps Profiles plugin by pinning specific versions of Backstage dependencies rather than using workspace references, ensuring compatibility and stability across the application.

Changes

File(s) Summary
plugins/apollo-explorer/package.json Updated Apollo Explorer dependency from version 2.0.0 to 3.0.0
yarn.lock Updated Apollo Explorer to v3.7.3 with React 19 support, pinned Backstage dependencies for GitOps Profiles plugin (@backstage/config 0.1.1, @backstage/core-components 0.1.0, @backstage/core-plugin-api 0.1.0, @backstage/theme 0.1.1), and added various transitive dependencies

Sequence Diagram

This diagram shows the interactions between components:

sequenceDiagram
    title Apollo Explorer Integration Flow (v3.0.0)
    
    actor User
    participant App as "Backstage App"
    participant ApolloExplorerPlugin as "Apollo Explorer Plugin"
    participant ApolloExplorer as "@apollo/explorer v3.0.0"
    participant GraphQLAPI as "GraphQL API"
    
    User->>App: Navigate to Apollo Explorer page
    App->>ApolloExplorerPlugin: Load plugin
    activate ApolloExplorerPlugin
    
    ApolloExplorerPlugin->>ApolloExplorer: Initialize Explorer component
    activate ApolloExplorer
    
    Note over ApolloExplorer: New v3.0.0 with React 19 support
    
    ApolloExplorer-->>ApolloExplorerPlugin: Render Explorer UI
    
    User->>ApolloExplorer: Enter GraphQL query
    
    alt User clicks "Run" button
        ApolloExplorer->>GraphQLAPI: Send GraphQL query
        activate GraphQLAPI
        GraphQLAPI-->>ApolloExplorer: Return query results
        deactivate GraphQLAPI
        ApolloExplorer-->>User: Display results
    else User saves query
        ApolloExplorer->>ApolloExplorer: Store query locally
        ApolloExplorer-->>User: Confirm save
    end
    
    User->>ApolloExplorer: Interact with schema explorer
    ApolloExplorer-->>User: Show schema documentation
    
    User->>App: Navigate away
    App->>ApolloExplorerPlugin: Unmount plugin
    ApolloExplorerPlugin->>ApolloExplorer: Cleanup
    deactivate ApolloExplorer
    deactivate ApolloExplorerPlugin
Loading

▶️AI Code Reviews for VS Code, Cursor, Windsurf
Install the extension

Note for Windsurf Please change the default marketplace provider to the following in the windsurf settings:

Marketplace Extension Gallery Service URL: https://marketplace.visualstudio.com/_apis/public/gallery

Marketplace Gallery Item URL: https://marketplace.visualstudio.com/items

Entelligence.ai can learn from your feedback. Simply add 👍 / 👎 emojis to teach it your preferences. More shortcuts below

Emoji Descriptions:

  • ⚠️ Potential Issue - May require further investigation.
  • 🔒 Security Vulnerability - Fix to ensure system safety.
  • 💻 Code Improvement - Suggestions to enhance code quality.
  • 🔨 Refactor Suggestion - Recommendations for restructuring code.
  • ℹ️ Others - General comments and information.

Interact with the Bot:

  • Send a message or request using the format:
    @entelligenceai + *your message*
Example: @entelligenceai Can you suggest improvements for this code?
  • Help the Bot learn by providing feedback on its responses.
    @entelligenceai + *feedback*
Example: @entelligenceai Do not comment on `save_auth` function !

Also you can trigger various commands with the bot by doing
@entelligenceai command

The current supported commands are

  1. config - shows the current config
  2. retrigger_review - retriggers the review

More commands to be added soon.

@entelligence-ai-pr-reviews
Copy link
Copy Markdown

LGTM 👍

@socket-security
Copy link
Copy Markdown

Warning

Review the following alerts detected in dependencies.

According to your organization's Security Policy, it is recommended to resolve "Warn" alerts. Learn more about Socket for GitHub.

Action Severity Alert  (click "▶" to expand/collapse)
Warn High
caniuse-lite@1.0.30001378 has a License Policy Violation.

License: CC-BY-4.0 (npm metadata)

License: CC-BY-4.0 (package/package.json)

License: CC-BY-4.0 (package/LICENSE)

From: microsite/yarn.locknpm/caniuse-lite@1.0.30001378

ℹ Read more on: This package | This alert | What is a license policy violation?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at support@socket.dev.

Suggestion: Find a package that does not violate your license policy or adjust your policy to allow this package's license.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore npm/caniuse-lite@1.0.30001378. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

Warn High
polished@4.2.2 has a License Policy Violation.

License: OFL-1.1 (package/docs/assets/fonts/LICENSE.txt)

From: storybook/yarn.locknpm/polished@4.2.2

ℹ Read more on: This package | This alert | What is a license policy violation?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at support@socket.dev.

Suggestion: Find a package that does not violate your license policy or adjust your policy to allow this package's license.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore npm/polished@4.2.2. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

Warn High
safer-buffer@2.1.2 has Obfuscated code.

Confidence: 0.94

Location: Package overview

From: cypress/yarn.locknpm/safer-buffer@2.1.2

ℹ Read more on: This package | This alert | What is obfuscated code?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at support@socket.dev.

Suggestion: Packages should not obfuscate their code. Consider not using packages with obfuscated code.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore npm/safer-buffer@2.1.2. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

Warn High
spdx-exceptions@2.3.0 has a License Policy Violation.

License: CC-BY-3.0 (npm metadata)

License: CC-BY-3.0 (package/package.json)

From: yarn.locknpm/spdx-exceptions@2.3.0

ℹ Read more on: This package | This alert | What is a license policy violation?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at support@socket.dev.

Suggestion: Find a package that does not violate your license policy or adjust your policy to allow this package's license.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore npm/spdx-exceptions@2.3.0. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

View full report

@github-actions
Copy link
Copy Markdown

github-actions Bot commented Oct 7, 2025

This PR has been automatically marked as stale because it has not had recent activity from the author. It will be closed if no further activity occurs. If the PR was closed and you want it re-opened, let us know and we'll re-open the PR so that you can continue the contribution!

@github-actions github-actions Bot added stale and removed stale labels Oct 7, 2025
@github-actions
Copy link
Copy Markdown

This PR has been automatically marked as stale because it has not had recent activity from the author. It will be closed if no further activity occurs. If the PR was closed and you want it re-opened, let us know and we'll re-open the PR so that you can continue the contribution!

@github-actions github-actions Bot added the stale label Oct 15, 2025
@github-actions github-actions Bot closed this Oct 20, 2025
@renovate renovate Bot changed the title fix(deps): update dependency @apollo/explorer to v3 [security] fix(deps): update dependency @apollo/explorer to v3 [security] - autoclosed Mar 2, 2026
@renovate renovate Bot deleted the renovate/npm-apollo-explorer-vulnerability branch March 2, 2026 00:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file stale

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants