Skip to main content

MCP Context Forge CVE-2026-53709

| EUVDEUVD-2026-98769 CRITICAL
Improper Authentication (CWE-287)
2026-10-13 GitHub_M
9.8
CVSS 3.1 · Vendor: GitHub_M
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Obtain shipped JWT_SECRET_KEY from public config
  2. Delivery
    Forge HS256 token with admin email subject
  3. Exploit
    Submit token to gateway API
  4. Execution
    verify_jwt_token accepts, get_current_user grants admin
  5. Impact
    Perform administrative disclosure, modification, and disruption

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A07:2025 - Authentication Failures
ASVS 5.0
V6 - Authentication Authentication mechanism validation
MITRE ATT&CK

2 techniques across 2 tactics: Defense Evasion, Initial Access

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Two concrete conditions must both hold: (1) the gateway still uses the known shipped JWT_SECRET_KEY (value 'my-test-key-but-now-longer-than-32-bytes' from pre-1.0.2 config.py/.env.example) rather than a rotated secret, and (2) the platform-admin bootstrap is active, i.e. REQUIRE_USER_IN_DB is false and the attacker sets the token subject to PLATFORM_ADMIN_EMAIL. Tokens must be HS256-signed. LIMITING FACTORS: the commit documents that the production default for REQUIRE_USER_IN_DB is true (which requires a DB-seeded admin and closes the bootstrap path), so strictly default production installs are not exploitable via this path; operators who rotated JWT_SECRET_KEY before 1.0.2 are also protected. Exploitation is remote and needs no user interaction or prior authentication once these conditions are met.

Impact

All severity signals align toward high technical impact: the NVD CVSS 3.1 vector (AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H, base 9.8) describes remote, unauthenticated, low-complexity forging of platform-administrator JWTs, matching the CWE-287 improper-authentication classification and the full confidentiality/integrity/availability loss the description enumerates (administrative disclosure, modification, and service disruption). However, the real-world urgency is tempered by preconditions the CVSS vector does not capture: exploitation only works 'while the vulnerable signing key remains configured and the platform-admin bootstrap remains enabled,' and the commit diff shows the production default for REQUIRE_USER_IN_DB is true (the bootstrap path requires it to be false, a documented development setting). No EPSS score, no CISA KEV listing, and no POC were provided in the input, so there is no public evidence of active exploitation or weaponization - this is a high-CVSS issue whose real risk is concentrated in default/development deployments that never rotated the shipped JWT_SECRET_KEY. CONFLICT TO NOTE: CVSS implies default-configuration mass exploitability (PR:N/AC:L), while the description's 'while ... remains configured/enabled' wording and the production REQUIRE_USER_IN_DB=true default imply a config-dependent subset of installs - verify your own REQUIRE_USER_IN_DB and JWT_SECRET_KEY values rather than assuming universal exposure.

Exploit ScenarioDerived

An attacker who knows the publicly shipped JWT_SECRET_KEY from config.py/.env.example crafts an HS256 JWT whose subject equals PLATFORM_ADMIN_EMAIL and sends it to the gateway, which verify_jwt_token() accepts and get_current_user() promotes to a platform administrator without any database account. No POC was provided in the input, but the hardcoded key and documented bootstrap logic make exploitation straightforward where REQUIRE_USER_IN_DB is false. Because the forgery depends only on the static key, the access persists through password rotation, account deletion, and session revocation.

Act Now Prioritize within 24-48h. Why: CRITICAL severity.
Patch available 0.5% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Oct 13, 2026

Improper authentication in IBM MCP Context Forge prior to 1.0.2 allows remote, unauthenticated attackers to forge HS256-signed JWTs using a JWT_SECRET_KEY shipped in mcpgateway/config.py and .env.example, gaining full platform-administrator access without a database account. The attack requires two conditions to hold simultaneously: the gateway must still use the known shipped signing key, and the platform-admin bootstrap must be active (REQUIRE_USER_IN_DB=false with the token subject set to PLATFORM_ADMIN_EMAIL); because the documented production default for REQUIRE_USER_IN_DB is true, strictly default production deployments are protected, as are operators who rotated the secret before upgrading. Where both conditions are met, forged administrator tokens survive password rotation, account deletion, and session revocation, enabling administrative disclosure, modification, and service disruption; no public exploit code has been identified at time of analysis and the issue is fixed in 1.0.2.

RemediationAI

Vendor-released patch: upgrade to MCP Context Forge 1.0.2 or later (https://github.com/IBM/mcp-context-forge/releases/tag/v1.0.2, advisory GHSA-m8rv-5m6m-32ff), which replaces the shipped placeholder secrets and documents the safe bootstrap default. Because the vulnerability is a shared-secret issue, upgrading alone is insufficient for any pre-1.0.2 deployment that actually used the default keys: immediately rotate JWT_SECRET_KEY and AUTH_ENCRYPTION_SECRET using python -m mcpgateway.scripts.init_secrets --stdout, understanding that rotation invalidates all previously issued access and refresh tokens and will force every legitimate user to re-authenticate (and will invalidate any data encrypted under the old AUTH_ENCRYPTION_SECRET, so plan the re-encryption of affected secrets). Ensure REQUIRE_USER_IN_DB is left at its production default of true so that administrator identity must be satisfied by a database-seeded account rather than by an attacker-supplied PLATFORM_ADMIN_EMAIL claim; the trade-off is that operators must then provision the admin user in the database rather than relying on the email-match bootstrap, and setting it to false in development re-opens this exact attack path. Verify after change that the running configuration no longer contains the literal 'my-test-key-but-now-longer-than-32-bytes' or 'my-test-salt' values in config.py or any deployed .env file. Until patched and rotated, treat the gateway as fully compromised if it was ever reachable with default secrets, and restrict network access to the gateway to trusted clients as an interim compensating control (at the cost of losing its intended remote/agent-facing reachability).

Affected VersionsENISA

mcp-context-forge < 1.0.2

Affected Packages

euvd mcp_context_forge fix: 1.0.2

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

MCP Context Forge is an MCP (Model Context Protocol) gateway and administrative platform, and the flaw is classified under CWE-287 (Improper Authentication). The weakness is a chain of three mistakes in the shipped configuration and token-validation code: (1) mcpgateway/config.py and .env.example distributed a well-known static JWT_SECRET_KEY ('my-test-key-but-now-longer-than-32-bytes') along with a static AUTH_ENCRYPTION_SECRET, so any deployment that failed to override these values shares a publicly known signing secret; (2) verify_jwt_token() accepts HS256 (symmetric HMAC) tokens signed with that key, so anyone who knows the key can mint valid tokens; and (3) get_current_user() contains a bootstrap path that treats a token whose subject matches PLATFORM_ADMIN_EMAIL as a platform administrator whenever REQUIRE_USER_IN_DB is false, meaning no database-backed user record is needed. The combination yields a forged token that the gateway both validates cryptographically and elevates to administrator. Because validation is purely signature- and claim-based, the forged credential persists across password changes, user deletion, and session-revocation events as long as the static key and the bootstrap setting remain in place. The affected CPE is cpe:2.3:a:ibm:mcp-context-forge:*:*:*:*:*:*:*:* (all versions prior to 1.0.2), and the upstream fix commit (2af690f894b6e35f5f21190fdab1505f023a5272) replaces the placeholder secrets with __REPLACE_ME__ sentinels generated via python -m mcpgateway.scripts.init_secrets, adds a .secrets.baseline entry, and documents that the production default for REQUIRE_USER_IN_DB is true so the email-match bootstrap path is disabled by default.

Know when Mcp Context Forge gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (GitHub_M) PRIMARY 9.8 CRITICAL
AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
vuln.today AI 9.8 CRITICAL

Remote forging of admin tokens using a publicly known static key needs no auth or interaction (AV:N/AC:L/PR:N/UI:N), yielding full admin control (C:H/I:H/A:H); config dependency noted separately rather than raising AC.

3.1 AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
4.0 AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
High
Availability
High

Lifecycle Timeline

2
Patch available
Oct 13, 2026 - 16:18 EUVD
CVE Published
Oct 13, 2026 - 14:32 cve.org
CRITICAL 9.8

DescriptionCVE.org

MCP Context Forge is an MCP gateway and administrative platform. Prior to 1.0.2, mcpgateway/config.py and .env.example ship a known JWT_SECRET_KEY, while verify_jwt_token() accepts HS256 tokens signed with that key and get_current_user() creates a platform administrator when the token subject matches PLATFORM_ADMIN_EMAIL and REQUIRE_USER_IN_DB is false. A remote unauthenticated attacker can therefore mint accepted administrator tokens without a database account. While the vulnerable signing key remains configured and the platform-admin bootstrap remains enabled, forged access survives password rotation, account deletion, and session revocation, allowing administrative disclosure, modification, and service disruption. This issue is fixed in version 1.0.2.

Technical POC Analysis

Bug class: CWE-287 Improper Authentication, compounded by CWE-321, CWE-798, and CWE-1188.

Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.

Executive ViewAI

Why It Matters

IBM MCP Context Forge deployments that retain the vendor-shipped JWT signing key while platform-admin bootstrap is enabled are exposed to full administrative takeover, because attackers can mint administrator tokens that remain valid even after password resets, account deletions, and session revocations. This creates a durable compromise of the platform’s control plane, affecting any organization running affected versions without the documented production hardening. No public exploit identified at time of analysis, but leadership should treat the exposure as urgent due to the critical severity and the potential for administrative data disclosure, modification, and service disruption.

Business Impact: Severe
Compensating Controls

No vendor-released patch identified at time of analysis. Interim mitigations: rotate JWT_SECRET_KEY from the shipped default, set REQUIRE_USER_IN_DB=true, disable platform-admin bootstrap unless required, restrict network access to admin interfaces, monitor for tokens with PLATFORM_ADMIN_EMAIL subject, and upgrade to 1.0.2 or later when available.

Threat Intelligence Overview

EPSS Score
0.5%
Top 62% exploitable
Prevalence
Low
emerging niche MCP gateway, limited production deployment footprint
Data Quality
5 sources
Confidence: Medium

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity CRITICAL
CISA KEV No
Public POC No
EPSS 0.5%
Patch available Yes
Active threat No
Deciding rule
CRITICAL severity
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Out-of-Cycle
Exploitation· derived
None
System Exposure· derived
Open
Automatable· derived
Yes
Human Impact
Very High

Priority Score

49
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +49
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy