UNPKG

mcp-server-semgrep

Version:

MCP Server for Semgrep Integration - static code analysis with AI

130 lines (129 loc) 2.54 kB
rules: - id: template-translate-as-no-escape languages: [generic] severity: INFO message: >- Translated strings will not be escaped when rendered in a template. This leads to a vulnerability where translators could include malicious script tags in their translations. Consider using `force_escape` to explicitly escape a translated text. patterns: - pattern-either: - pattern: | {% translate ... as $TRANS ... %} ... ... ... ... ... ... ... ... ... ... {{ ... $TRANS ... }} - pattern: | {% trans ... as $TRANS ... %} ... ... ... ... ... ... ... ... ... ... {{ ... $TRANS ... }} - pattern-not: | {% translate ... as $TRANS ... %} ... ... ... ... ... ... ... ... ... ... {{ ... $TRANS ... | ... force_escape ... }} - pattern-not: | {% trans ... as $TRANS ... %} ... ... ... ... ... ... ... ... ... ... {{ ... $TRANS ... | ... force_escape ... }} - pattern-not: | {% translate ... as $TRANS ... %} ... ... ... ... ... ... ... ... ... ... {% filter force_escape %} ... ... ... ... ... ... ... ... ... ... {{ ... $TRANS ... }} - pattern-not: | {% trans ... as $TRANS ... %} ... ... ... ... ... ... ... ... ... ... {% filter force_escape %} ... ... ... ... ... ... ... ... ... ... {{ ... $TRANS ... }} metadata: cwe: - "CWE-79: Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')" owasp: - A07:2017 - Cross-Site Scripting (XSS) - A03:2021 - Injection references: - https://edx.readthedocs.io/projects/edx-developer-guide/en/latest/preventing_xss/preventing_xss_in_django_templates.html#html-escaping-translations-in-django-templates - https://docs.djangoproject.com/en/3.1/topics/i18n/translation/#internationalization-in-template-code category: security technology: - django cwe2022-top25: true cwe2021-top25: true subcategory: - audit likelihood: LOW impact: MEDIUM confidence: LOW