mjml-email-templates
Pass
Audited by Gen Agent Trust Hub on Mar 7, 2026
Risk Level: SAFEPROMPT_INJECTION
Full Analysis
- [PROMPT_INJECTION]: The skill implements a custom template variable substitution engine in the
MjmlTemplateRendererclass that is vulnerable to indirect injection. - Ingestion points: The
RenderTemplateAsyncmethod accepts a dictionary of variables (IReadOnlyDictionary<string, string> variables) which are sourced from external inputs such asrecipientName,inviterName, andorganizationNamein theUserEmailComposerclass. - Boundary markers: There are no boundary markers or instructions to the renderer to ignore MJML/HTML tags within the variable values.
- Capability inventory: The skill uses the
Mjml.Netlibrary to render MJML strings into HTML. - Sanitization: The
SubstituteVariablesmethod performs a direct string replacement using a regular expression ({{([^}]+)}}) without any HTML encoding or sanitization of the values. If an attacker-controlled variable (e.g.,OrganizationName) contains malicious MJML tags or scripts, they will be injected directly into the template before compilation.
Audit Metadata