Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessObtain expired non-permanent API key secret
-
DeliverySubmit key to /chat/api/mcp endpoint
-
ExploitBypass is_permanent/expire_time check
-
ExecutionInitialize MCP and list tool metadata
-
ImpactInvoke tools/call and write chat state
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A07:2025 - Authentication Failures
ASVS 5.0
V7 - Session Management Session expiration enforcement
|
| Exploitation Conditions | Exploitation requires the attacker to already possess a valid ApplicationApiKey secret that was created as NON-permanent (is_permanent=false) and has passed its expire_time - the endpoint still accepts it because /chat/api/mcp checks only secret + active status. The target MaxKB instance (version 2.10.2-lts or earlier) must expose the /chat/api/mcp endpoint and have a published application with tools. Limiting factors: the attacker must obtain the key secret (leaked, retained, or previously delegated), the key must still be marked active, and the same key is already rejected by the standard /chat/api/open path - so this is a credential-lifecycle bypass, not unauthenticated access. No user interaction is required. |
| Impact | This is a genuine but bounded access-control weakness, not a top-priority emergency. The vendor CVSS 3.1 vector (AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:L/A:N = 5.4 Medium) is internally consistent with the description: network-reachable MCP endpoint, low complexity, but PR:L because the attacker must already possess a previously-issued, still-active ApplicationApiKey secret. No EPSS score, no CISA KEV listing, and no public POC are present in the supplied intelligence, so exploitation status is 'no public exploit identified at time of analysis.' The core issue (CWE-613 insufficient session/credential expiration) means the /chat/api/mcp path authenticates on secret+active only, ignoring the is_permanent and expire_time checks that /chat/api/open enforces - so an expired non-permanent key keeps working on MCP. The impact is real (tool metadata disclosure, tools/call invocation, durable chat state) but self-limited: it requires a leaked/retained valid-but-expired key against a niche self-hosted product. No fixed version was available as of this review, which modestly raises operational risk for deployers, but the low CVSS confidentiality/integrity (C:L/I:L, A:N) and gated preconditions keep real-world urgency moderate. |
| Exploit ScenarioDerived | An attacker who obtained a MaxKB ApplicationApiKey secret that was issued as non-permanent and has since passed its expire_time - a key that would now be rejected by the standard /chat/api/open endpoint - sends it to /chat/api/mcp instead. Because that path checks only the secret and active flag, the endpoint initializes, exposes the published application's tool metadata, and permits tools/call, letting the attacker enumerate tools and create durable application_chat/application_chat_record records. No public exploit code is identified in the supplied data. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Sep 21, 2026
MaxKB 2.10.2-lts and earlier accepts expired non-permanent ApplicationApiKey credentials on the /chat/api/mcp endpoint, allowing an authenticated attacker who already holds such a key secret to initialize the MCP interface, enumerate the published application's tool metadata, invoke tools/call, and persist application_chat and application_chat_record records - operations the standard /chat/api/open path refuses with the same key. The root cause is CWE-613 (Insufficient Session Expiration): the MCP authentication path validates only the key secret and its active flag while omitting the is_permanent and expire_time checks enforced elsewhere. This is a bounded credential-lifecycle bypass rather than unauthenticated access - the attacker must already possess a leaked, retained, or previously delegated key that is still marked active and past its expiry - and no public exploit has been identified at time of analysis, with no vendor-released patch identified at time of analysis.
RemediationAI
No vendor-released patch was identified at time of analysis, so remediation must be compensating-control driven. First, immediately revoke, rotate, or mark inactive every non-permanent ApplicationApiKey whose expire_time has passed on any MaxKB instance at or below 2.10.2-lts - this directly removes the precondition the bypass relies on, though it invalidates any legitimate integrations still using those keys. Second, audit application_chat and application_chat_record tables for sessions created via /chat/api/mcp by expired keys to determine whether the bypass has already been exercised. Third, restrict network access to /chat/api/mcp with a reverse proxy or firewall allowlist so only trusted callers reach it, accepting the operational cost that legitimate external MCP clients must be re-homed behind the allowlist. Fourth, until an upstream fix lands, prefer permanent keys or short-lived keys that are explicitly deactivated at end of life rather than relying on expire_time enforcement, and monitor the vendor advisory at https://github.com/1Panel-dev/MaxKB/security/advisories/GHSA-r6g6-69fh-c39q for a patched release and upgrade as soon as one is published. Track the vendor advisory for an exact fix version rather than assuming the current release resolves the issue.
Affected VersionsENISA
Affected Packages
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
MaxKB is an open-source enterprise AI assistant from 1Panel-dev that exposes chat and tooling APIs, including an MCP (Model Context Protocol) endpoint at /chat/api/mcp used to advertise and invoke an application's tools. Authentication for these APIs is based on ApplicationApiKey records that carry an active status plus lifecycle metadata (is_permanent and expire_time). The CWE-613 flaw arises because two authentication paths implement different portions of that lifecycle policy: /chat/api/open correctly rejects a key once its expire_time has passed, while /chat/api/mcp resolves the key using only the secret value and the active flag, so a non-permanent key that should be dead still authenticates and authorizes tool operations. Because the MCP handler also writes durable application_chat and application_chat_record state, the stale credential leaves persistent artifacts rather than being limited to a read-only probe. The affected product family maps to CPE cpe:2.3:a:1panel-dev:maxkb:*:*:*:*:*:*:*:*, and exploitation requires network reachability to the MCP endpoint plus a published application that exposes tools.
Know when Maxkb 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
AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:L/A:N
PR:L because the attacker must hold a previously-valid API key secret; C:L (tool metadata) and I:L (tools/call plus durable chat state writes); A:N as no availability impact is described.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
DescriptionCVE.org
MaxKB is an open-source AI assistant for enterprise. In 2.10.2-lts and earlier, the /chat/api/mcp authentication path looks up an ApplicationApiKey using only its secret and active status, without enforcing the is_permanent and expire_time checks used by the standard chat API. A previously valid, non-permanent application key that remains active after expiration can initialize the MCP endpoint, list the published application's tool metadata, invoke tools/call, and create durable application_chat and application_chat_record state even though /chat/api/open rejects the same key. No fixed version is available as of this review.
Threat Intelligence Overview
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.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
MaxKB prior to version 1.10.8-lts contains an incomplete sandbox implementation that only blacklists binary execution in
Command injection in MaxKB before 2.10.5-lts allows unauthenticated remote attackers to execute arbitrary shell commands
Sandbox escape and privilege escalation in MaxKB 2.3.1 and earlier allow an attacker who can submit or trigger custom Py
Server-side request forgery in MaxKB before 2.10.0 allows any authenticated user holding the default workspace USER role
Authenticated workspace members on MaxKB deployments prior to 2.10.5-lts can escalate to root-level command execution by
Server-side request forgery in MaxKB (open-source AI assistant from 1Panel-dev) allows an authenticated user with permis
OS command injection in MaxKB (1Panel-dev's open-source enterprise AI assistant) before 2.10.0-lts lets an authenticated
Privilege escalation in MaxKB 2.3.1 and earlier allows an authenticated, low-privileged user to overwrite the built-in d
Authentication bypass in MaxKB (1Panel-dev) versions prior to 2.9.0 allows remote unauthenticated attackers to invoke we
Cross-workspace read and modification of model parameter defaults in MaxKB 2.10.3-lts and earlier is possible for an aut
Stored Cross-Site Scripting (XSS) via Eval Injection in MaxKB's Markdown rendering engine allows authenticated users to
Stored Cross-Site Scripting (XSS) in MaxKB 2.7.1 and below allows authenticated users to inject malicious JavaScript thr
EUVD-2026-84196
NVD
CVE.org
EPSS
GitHub
Exploit-DB