LiveActive security incident?Get immediate response
CVE Record

CVE-2026-55546: QWED-MCP: Unsafe SymPy `parse_expr()` Remote Code Execution via Unsanitized Math Expression Input

QWED-MCP is a deterministic verification gateway for MCP. Prior to 0.2.1, verify_math_expression() in src/qwed_mcp/engines/math_engine.py passes attacker-controlled expression and claimed_result strings directly to SymPy's parse_expr() after only normalizing caret syntax to Python exponent syntax, without restricting global_dict, removing Python built-ins, or validating the expression AST. Because parse_expr() calls Python's eval() with built-ins available, an attacker who can cause a downstream caller to pass untrusted input to this public library function can use Python import functionality to execute arbitrary operating-system commands as the qwed-mcp process user, read or modify accessible data, exfiltrate process secrets, or reach internal services. The default MCP tool registry does not expose verify_math_expression(), so exploitation requires a downstream integration that invokes the library API with attacker-controlled input. This issue is fixed in version 0.2.1.

CriticalCVSS 9.8Not KEV-listedUpdated
Glexia's TakeAutomated analysiscritical

Security readout for executives and security teams

Plain-English summary

QWED-MCP before 0.2.1 can treat malicious mathematical input as Python code, potentially allowing takeover of the service process. The default MCP tool registry does not expose the vulnerable function, so risk depends on whether a custom downstream integration sends untrusted input to it.

Executive priority

Treat as an urgent, targeted remediation. Prioritize systems running versions before 0.2.1 that expose the library function to untrusted input. Upgrade promptly, but avoid assuming every default QWED-MCP deployment is remotely exploitable because the vulnerable function is not registered as a default MCP tool.

Technical view

The public verify_math_expression() library function passes expression and claimed_result into SymPy parse_expr() without restricting globals, removing built-ins, or validating syntax. Because parse_expr() uses Python eval(), crafted input may execute code with the qwed-mcp process user's permissions. CVSS 3.1 is 9.8; CWE-94 applies.

Likely exposure

Exposure is limited to qwed-mcp versions before 0.2.1 where downstream code calls verify_math_expression() with attacker-controlled expression or claimed_result values. Default MCP registration reportedly does not expose this function. Internet reachability, deployment prevalence, and affected integration counts are not established by the supplied sources.

Exploitation context

No active exploitation is established: the bundle reports KEV as false and provides no cited evidence of exploitation in the wild. Exploitation nevertheless appears low-complexity when a vulnerable downstream integration exposes attacker-controlled input, requiring no privileges or user interaction under the supplied CVSS assessment.

Researcher notes

The critical boundary is downstream reachability, not merely package presence. Review both input parameters, caller authentication, process privileges, secrets, and network access. The supplied sources attribute the flaw to unsafe parse_expr() evaluation and identify 0.2.1 as fixed, but do not establish public exploitation, deployment prevalence, or default remote exposure.

Mitigation direction

  • Upgrade qwed-mcp to version 0.2.1 or later.
  • Identify and restrict integrations calling verify_math_expression() with untrusted input.
  • Disable affected integrations until upgrading if input trust cannot be assured.
  • Limit the qwed-mcp process permissions, secrets, and internal network access.

Validation and detection

  • Inventory installed qwed-mcp versions and flag releases earlier than 0.2.1.
  • Search application code for calls to verify_math_expression().
  • Trace whether expression or claimed_result can originate from untrusted users or systems.
  • Confirm production deployments run the upgraded package and affected services were restarted.
  • Review process and application logs for suspicious activity around math-verification requests.
Prepared
Confidence
high
Sources
5

Generated from the cited source records. This long-tail analysis has not been individually reviewed by a named human.

Potential ATT&CK relevance

Conservative CVE-to-ATT&CK context

These mappings and lookup hints may be relevant to the vulnerability behavior, CWE, affected product, or exposure path. Glexia-inferred context is not an official MITRE, ATT&CK, CWE, or CVE Program mapping.

ATT&CK lookup starting points

Use these exact CWE pages and searches to review the Glexia ATT&CK library from this CVE's weakness and description context.

cwe · medium confidence lookup

CWE-94: Code execution behavior lookup

Code execution and unsafe deserialization weaknesses often justify reviewing execution behavior and process telemetry. Open the exact CWE lookup page first, then review the ATT&CK searches from that MITRE weakness context. This is a Glexia lookup hint, not an official ATT&CK mapping.

Open ATT&CK lookup
description · low confidence lookup

Execution behavior lookup

The CVE wording references code or command execution, so execution technique review may help defensive triage. This is a Glexia inferred lookup path, not an official MITRE, ATT&CK, or CVE Program mapping.

Open ATT&CK lookup
cve · low confidence lookup

CVE-2026-55546 mapping review

Open the CVE-to-ATT&CK bridge for reviewed, inferred, or future official mappings tied to this CVE.

Open ATT&CK lookup
Vulnerability profileCVE Program record
Severity
Critical
CVSS
9.8 (3.1)
Known Exploited
No
Published

Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

Official CVE source material

CNA and ADP enrichment extracted from CVE v5

These fields come from the CVE record and ADP containers, not from Glexia's Take. They preserve time-varying source decisions such as CISA SSVC, KEV status, CVSS metrics, and provider references.

1CVSS vectors
3Timeline events
1ADP providers
5Source links

SSVC decision data

CISA-ADPCISA Coordinator
Timestamp
Version
2.0.3
Exploitation: pocAutomatable: yesTechnical Impact: total

CVSS vector scores

1 official score

We collect every scored CVSS vector available in the official CNA and ADP containers. When more than one version is present, the table keeps the source vectors side by side instead of collapsing them into the highest score.

ScoreVersionSeverityVectorExploitImpactSource
9.8CVSS 3.1CriticalCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H3.95.9GitHub_M

Vulnerability scoring details

Base CVSS 3.1 score

9.8Critical
CVSS 3.1 vector shape for CVE-2026-55546Attack VectorAttack ComplexityPrivileges RequiredUser InteractionScopeConfidentiality ImpactIntegrity ImpactAvailability Impact

Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

Attack Vector
NetworkAdjacentLocalPhysical
Attack Complexity
LowHigh
Privileges Required
NoneLowHigh
User Interaction
NoneRequired
Scope
ChangedUnchanged
Confidentiality Impact
HighLowNone
Integrity Impact
HighLowNone
Availability Impact
HighLowNone

Vulnerability timeline

Timeline events are normalized from CVE metadata, CNA source timelines, ADP timelines, and KEV metadata when present.

  1. CVE reservedCVE Program

    The CVE ID was reserved by the assigning CNA.

  2. CVE publishedCVE Program

    The CVE record was published.

  3. CVE updatedCVE Program

    The CVE record metadata indicates this as the latest update time.

ADP provider summaries

CISA-ADPCISA ADP Vulnrichment
other:ssvc

Source materials

Affected products

Products and packages named in the record

VendorProductVersion / packageStatus
QWED-AIqwed-mcp< 0.2.1Listed
Weakness

CWE details

CWE links open Glexia weakness intelligence pages with official CWE context, developer remediation guidance, and related CVE mappings.

CWE-94 · source CWE mapping

Improper Control of Generation of Code

Improper Control of Generation of Code represents a recurring weakness pattern that can create exploitable paths when design, validation, or implementation controls are missing.