GHSA-xrmj-5g4g-8987: @dynatrace-oss/dynatrace-mcp-server has a workflow template injection via create_workflow_for_notification
Summary
A template injection vulnerability in the create_workflow_for_notification tool lets a caller embed Jinja2 expressions that the Dynatrace workflow engine evaluates at runtime, exfiltrating event data to attacker-controlled destinations through a workflow that persists in the tenant after the MCP session ends.
Details
The create_workflow_for_notification tool interpolates three caller-supplied parameters (teamName, problemType, channel) directly into a Dynatrace Workflow definition. Dynatrace Workflows use Jinja2 templating: per the official documentation, {{ ... }} expressions in action inputs are evaluated at workflow runtime for every action except Run Javascript (which is carved out specifically to avoid code injection). A caller can therefore supply, for example, teamName = "{{ event() }}" and have the workflow engine evaluate that expression at runtime, serialising the full event object into the message body delivered to the Slack channel.
The vulnerable code is in src/capabilities/create-workflow-for-problem-notification.ts, lines 82-99:
let notificationWorkflow: WorkflowCreate = {
title: [MCP POC] Notify team ${teamName} on problem of type ${problemType},
description: Automatically created workflow to notify team ${teamName} on problems of type ${problemType} - ...,
isPrivate: isPrivate,
type: 'SIMPLE',
tasks: {
send_notification: {
name: 'Send notification',
action: 'dynatrace.slack:slack-send-message',
description: 'Sends a notification to a Slack channel',
input: {
connectionId: 'slack-connection-id',
channel: {{ \"${channel}\" }}, // <-- channel sits inside {{ }}
message: 🚨 Alert for Team ${teamName}\n*Problem Type*: ${problemType}\n +
*Problem ID*: {{ event()["display_id"] }}\n*Status*: {{ event()["event.status"] }}\n +
<{{ environment().url }}/ui/apps/.../problem/{{ event()["event.id"] }}|Click here>,
},
active: true,
},
},
};
The action used is dynatrace.slack:slack-send-message, which is not in the documented Jinja-expression exception li
Details
Original advisory: https://github.com/advisories/GHSA-xrmj-5g4g-8987
More from GitHub Security Advisories
- mediumGHSA-jr6p-8pjj-mfx6: Capsule has an incomplete fix of CVE-2026-22872: TenantResource RawItems and Generators s…2026-07-31
- mediumGHSA-68cj-mvg9-rgm2: Capsule: CapsuleConfiguration NodeMetadata regex fields lack webhook validation, allowing…2026-07-31
- mediumGHSA-ff84-5f28-78qj: re2: Out-of-bounds heap read in `exec`/`test`/`match` via attacker-influenced `lastIndex`…2026-07-31
- mediumGHSA-6hxr-mr5r-9836: re2: Global `String.prototype.match` with an empty-matchable pattern never advances → inf…2026-07-31
- mediumGHSA-x83g-979r-f5fh: Sylius Mollie Plugin has unauthenticated IDOR that leaks order token and customer PII2026-07-31