Categories
CVE-2026-47708

Command Injection in stata-mcp (CVE-2026-47708)

Summary

Command injection in stata-mcp (CVE-2026-47708). Risk of unauthorized operations or information disclosure. Exploitable via log_file_name. Mitigation: upgrade to 1.17.3 or later.

Original description

The description as published by the source.

Summary

The log_file_name parameter in the stata_do API and CLI is directly interpolated into a Stata command string without sanitization. The security guard (GuardValidator) only scans the do-file content but does not validate this parameter. An attacker can inject arbitrary Stata commands (including shell, python, erase, etc.) by crafting a malicious log_file_name containing quotes, newlines, or Stata command separators.

Details

In src/stata_mcp/stata/stata_do/do.py, both _execute_unix_like and _execute_windows construct a Stata command string using Python f-strings:

commands = f"""
capture log close
{self.generate_log_command(log_file, is_replace)}
...
do "{dofile_path}"
...
"""

The generate_log_command method returns:

log_cmd = f'log using "{log_file.as_posix()}", {replace_clause} {log_type} name({log_type}_log)'

Where log_file is constructed from user-supplied log_name:

def generate_log_file(self, log_name: str, extension='log'):
    return self.log_file_path / f"{log_name}.{extension}"

The log_name parameter comes directly from user input (via MCP tool stata_do or CLI stata-mcp tool do) without any validation. Since the path is embedded inside double quotes in a Stata command string, an attacker can break out of the string context and inject arbitrary commands.

Additionally, generate_log_file does not prevent path traversal via log_name, allowing arbitrary file write outside t…

Source: GitHub Security Advisories (Global) NVD GitHub Advisory

Auto-generated summary

Assembled by SecPulse from the source data (CVSS, CWE, affected versions) using templates — no AI involved. Check the original description and references below for exact details.

A vulnerability tracked as CVE-2026-47708 has been found in stata-mcp.
Attackers can target a specific entry point like log_file_name over the network to misuse the product.
Risk of unauthorized operations or information disclosure.
What to do: upgrade stata-mcp to 1.17.3 or later.
If unsure, ask your IT team or search "stata-mcp CVE-2026-47708" on the vendor's site.

CVE-2026-47708 (stata-mcp) — CWE-77
Attack surface: log_file_name / stata_do / GuardValidator / shell
Patched: 1.17.3 — apply immediately
Plan: 1) Audit SBOM/dependencies, 2) Stage→prod upgrade, 3) Add WAF/proxy monitoring on affected endpoints, 4) Hunt IOCs in logs.
Refs: see the GHSA / vendor advisory / patched release linked on this page.

❓ What is the problem

A vulnerability (CWE-77) exists in stata-mcp. Attackers reach the vulnerable code path via log_file_name.

📍 Affected scope

Check the vendor advisory for the affected versions of stata-mcp. Attack surface: log_file_name / stata_do / GuardValidator / shell.

🔥 Severity

Severity: ?. Risk of unauthorized operations or information disclosure.

🔧 How to fix

Update to 1.17.3.

🛡️ Workaround

Until the patch is applied: disable the affected feature, apply WAF rules, or restrict access via network ACLs.

🔍 Detection

Search webserver/proxy logs for unusual request patterns matching this CVE's known IOCs. Run grep -r 'stata-mcp' . against your dependency files (package-lock.json, requirements.txt, go.sum) to find affected services.

Response actions

Concrete steps and command examples for SOC/SRE teams to execute in order

  1. 1
    Identify exposure identify
    grep -r 'stata-mcp' . | grep -v node_modules

    リポジトリと本番環境の依存ファイル (package-lock.json / requirements.txt / go.sum / Gemfile.lock 等) で stata-mcp を grep し、稼働しているサービス・バージョンを把握する。

  2. 2
    Apply patch patch
    Upgrade stata-mcp to 1.17.3

    ステージング環境で 1.17.3 に上げて回帰テスト → 本番反映。回帰テストはアプリの主要ハッピーパスを含めること。

  3. 3
    Post-deployment verification verify
    Confirm patched version is live in production

    パッチ適用後、ステージングで PoC または同等の悪用パターンを再現して脆弱性が閉じたことを確認。本番ではアクセスログ・WAF でアラート再発が無いか継続監視。

Affected packages

pip stata-mcp
[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.17.3"}]}]
PyPI stata-mcp
[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.17.3"}]}]

References

We use cookies for analytics and ad measurement. This setting applies to all Game co., Ltd. sites. Details