Summary
CVE-2026-100382 is a critical OS command injection vulnerability in the ExternalData extension for MediaWiki, allowing unauthenticated, unauthenticated attackers to execute arbitrary system commands on the underlying server. The flaw is exploitable directly through wikitext or the Lua/Scribunto API and requires no authentication or user interaction, making it a full remote code execution (RCE) vector. The vulnerability has been assigned a maximum CVSS score of 10.0 and affects all versions of the extension prior to 3.7.
Technical details
- Root cause: ExternalData’s EDConnectorExe connector, which is used by the
#get_program_dataparser function and themw.ext.externalData.getProgramData()Lua function, passes attacker-controlled parameter values into a shell command execution call without adequate sanitization (CWE-78: Improper Neutralization of Special Elements used in an OS Command). - Trigger conditions:
- Via wikitext, any user able to edit a page containing the parser function can inject shell commands, e.g.
{{#get_program_data:program=a|Command=touch /tmp/externaldata.txt}}. - Via Lua (when Scribunto is enabled), attackers can craft parameter names containing whitespace to bypass existing input validation logic and reach the same vulnerable code path.
- Via wikitext, any user able to edit a page containing the parser function can inject shell commands, e.g.
- Attack vector: Network — no authentication, privileges, or user interaction are required to exploit the flaw where wiki editing is exposed (e.g., open or lightly-restricted wikis).
- Impact: Full compromise of confidentiality, integrity, and availability of the host running the wiki, since arbitrary OS commands can be executed with the privileges of the web server/PHP process.
Affected software
- MediaWiki ExternalData Extension — all versions prior to 3.7
Severity
- CVSS Score: 10.0 (Critical)
- CVSS v4.0 Vector:
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H
Mitigation and recommended actions
- Immediate: Upgrade the ExternalData extension to version 3.7 or later, which trims/normalizes Lua parameter names to close the whitespace-based bypass and adds configuration support to disable individual connectors/parsers.
- If immediate patching is not possible:
- Disable the EDConnectorExe (program/executable) connector via ExternalData’s connector configuration, since this is the specific connector abused by the exploit.
- Restrict page-editing and Lua/Scribunto module-editing permissions to trusted users only, reducing the pool of accounts that can inject the malicious parser function or Lua call.
- Where feasible, disable or remove the ExternalData extension entirely until the upgrade can be applied, particularly on wikis open to anonymous or untrusted editors.

