Skip to main content

Server side template injection

Description

The application allows injecting malicious entries into a server-side command template. This vulnerability occurs when an attacker can use the template's template syntax to inject a malicious payload into a template, which is then executed on the server side.

Impact

  • Execute commands remotely - View the contents of sensitive files stored on the server. - Obtain sensitive information. - Read system files. - Cause strange behavior on the server.

Recommendation

Properly sanitize user-controlled inputs. Encourage the use of sandboxing.

Threat

Unauthenticated attacker from the Internet.

Expected Remediation Time

⌚ 1440 minutes.

Score

Default score using CVSS 3.1. It may change depending on the context of the vulnerability.

Base

  • Attack vector: N
  • Attack complexity: L
  • Privileges required: N
  • User interaction: N
  • Scope: C
  • Confidentiality: L
  • Integrity: L
  • Availability: N

Temporal

  • Exploit code madurity: H
  • Remediation level: U
  • Report confidence: C

Result

  • Vector string: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:L/I:L/A:N/E:H/RL:U/RC:C
  • Score:
    • Base: 7.2
    • Temporal: 7.2
  • Severity:
    • Base: High
    • Temporal: High

Code Examples

Compliant code

from jinja2 import Environment
env = Environment(autoescape=True) # Compliant

Non compliant code

from jinja2 import Environment

env = Environment() # Sensitive: New Jinja2 Environment has autoescape set to false
env = Environment(autoescape=False) # Sensitive:

Requirements