Skip to content
Heist/ feed
Back to feed
Medium

GitHub MCP Server: Lockdown mode singleton in HTTP server causes cross-user GraphQL client confusion

Type: advisorySources: OSV

GitHub MCP Server is GitHub's official MCP Server. From 0.22.0 until 1.1.2, when running in HTTP mode with --lockdown-mode enabled, the RepoAccessCache is implemented as a process-global singleton initialized with the first authenticated user's GraphQL client. All subsequent requests from different users share this singleton and their lockdown-related GraphQL queries are executed using the first user's credentials. The singleton is never updated to reflect later users' tokens. This vulnerability is fixed in 1.1.2.

Products
Not specified
Affected versions
Not specified
Fixed versions
Not specified
CVEs
CVE-2026-48529
Confirmed fixed CVEs
Not specified
Updated in this feed
4 Nov 2026, 21:24 UTC · Revision 1

Source evidence

GitHub MCP Server: Lockdown mode singleton in HTTP server causes cross-user GraphQL client confusion

core-osv · Original source

Published 26 Jun 2026, 16:33 UTC

GitHub MCP Server is GitHub's official MCP Server. From 0.22.0 until 1.1.2, when running in HTTP mode with --lockdown-mode enabled, the RepoAccessCache is implemented as a process-global singleton initialized with the first authenticated user's GraphQL client. All subsequent requests from different users share this singleton and their lockdown-related GraphQL queries are executed using the first user's credentials. The singleton is never updated to reflect later users' tokens. This vulnerability is fixed in 1.1.2.

osv:CVE-2026-48529
Complete source record
{
  "id": "7ad95cd0e1c07878d2e637d7bdcc4d39f43dce601dc439b57a5701677838282b",
  "url": "https://osv.dev/vulnerability/CVE-2026-48529",
  "method": "structured",
  "payload": {
    "kind": "advisory",
    "title": "GitHub MCP Server: Lockdown mode singleton in HTTP server causes cross-user GraphQL client confusion",
    "summary": "GitHub MCP Server is GitHub's official MCP Server. From 0.22.0 until 1.1.2, when running in HTTP mode with --lockdown-mode enabled, the RepoAccessCache is implemented as a process-global singleton initialized with the first authenticated user's GraphQL client. All subsequent requests from different users share this singleton and their lockdown-related GraphQL queries are executed using the first user's credentials. The singleton is never updated to reflect later users' tokens. This vulnerability is fixed in 1.1.2.",
    "evidence": "osv:CVE-2026-48529",
    "products": [],
    "severity": "medium",
    "structured": {
      "id": "CVE-2026-48529",
      "aliases": [
        "CVE-2026-48529",
        "GHSA-pjp5-fpmr-3349",
        "GO-2026-5779"
      ],
      "metrics": [
        {
          "type": "CVSS_V3",
          "score": "CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:C/C:L/I:L/A:L"
        }
      ],
      "affected": [
        {
          "ranges": [
            {
              "repo": "https://github.com/github/github-mcp-server",
              "type": "GIT",
              "events": [
                {
                  "introduced": "6a57e75d729f9767827bc4f96e80ff9bd8538a46"
                },
                {
                  "fixed": "b5397f6e3305531a1c534b90b2d347a70fa84da9"
                }
              ],
              "database_specific": {
                "extracted_events": [
                  {
                    "range": [
                      {
                        "introduced": "0.22.0"
                      },
                      {
                        "fixed": "1.1.2"
                      }
                    ],
                    "source": "AFFECTED_FIELD",
                    "strategy": "StringRangeExpression"
                  },
                  {
                    "range": [
                      {
                        "introduced": "0"
                      },
                      {
                        "fixed": "1.1.2"
                      }
                    ],
                    "source": "DESCRIPTION"
                  }
                ]
              }
            }
          ],
          "versions": [
            "v1.1.1",
            "v1.1.0",
            "v1.0.5",
            "v1.0.4",
            "v1.0.3",
            "v1.0.2",
            "v1.0.1",
            "v1.0.0",
            "v0.33.1",
            "v0.33.0",
            "v0.32.0",
            "v0.31.0",
            "v0.30.3",
            "v0.30.2",
            "v0.30.1",
            "v0.30.0",
            "v0.29.0",
            "v0.28.1",
            "v0.28.0",
            "v0.27.0",
            "v0.26.3",
            "v0.26.2",
            "v0.26.1",
            "v0.26.0",
            "v0.25.0",
            "v0.24.1",
            "v0.24.0",
            "v0.22.0",
            "v0.23.0"
          ],
          "database_specific": {
            "source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-48529.json"
          }
        }
      ],
      "modified": "2026-10-28T02:30:39.543842617Z",
      "provider": "osv",
      "references": [
        "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/48xxx/CVE-2026-48529.json",
        "https://github.com/github/github-mcp-server/security/advisories/GHSA-pjp5-fpmr-3349",
        "https://nvd.nist.gov/vuln/detail/CVE-2026-48529"
      ],
      "provider_metadata": {
        "cwe_ids": [
          "CWE-284"
        ],
        "cna_assigner": "GitHub_M",
        "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/48xxx/CVE-2026-48529.json"
      }
    },
    "related_cves": [
      {
        "value": "CVE-2026-48529",
        "evidence": "/id"
      }
    ],
    "security_relevant": true,
    "severity_evidence": "/severity/0/score"
  },
  "source_id": "core-osv",
  "document_id": 507225,
  "published_at": "2026-06-26T16:33:32.688+00:00"
}