CVE-2026-33154High· 7.5▾ MidnightPoC availabledynaconf Affected by Remote Code Execution (RCE) via Insecure Template Evaluation in @jinja Resolver
▾ Midnight zone — Critical, or high with PoC / in-the-wild
impact 41.3 · likelihood 0.1 · exploitation 12
A public proof-of-concept already exists for this vulnerability — see Exploit availability below.
Public exploit / PoC code seen in 1 source. Availability, not in-the-wild use.
Exploit-prediction probability, daily snapshots since Jul 13.
Disclosure to exploitation, from the record and what we observed since indexing it.
Disclosed via OSV
0.5%
1 GitHub repo
Last analysed / modified upstream
Dynaconf is vulnerable to Server-Side Template Injection (SSTI) due to unsafe template evaluation in the @jinja resolver. When the jinja2 package is installed, Dynaconf evaluates template expressions embedded in configuration values without a sandboxed environment.
If an attacker can influence configuration sources such as: environment variables .env files container environment configuration CI/CD secrets they can execute arbitrary OS commands on the host system. In addition, the @format resolver allows object graph traversal, which may expose sensitive runtime objects and environment variables.
The vulnerability arises because Dynaconf's string resolvers lack proper security boundaries.
Example attack path cycler → init → globals → os → popen() This leads to arbitrary command execution.
import os
from dynaconf import Dynaconf
# Malicious configuration injection
os.environ["DYNACONF_RCE"] = "@jinja {{ cycler.__init__.__globals__.os.popen('id').read() }}"
settings = Dynaconf()
print("[!] Command Execution Result:")
print(settings.RCE)
Successful exploitation allows attackers to:
from jinja2.sandbox import SandboxedEnvironment
env = SandboxedEnvironment()
template = env.from_string("{{ config_value }}")
safe_value = template.render(config_value=user_input)```
safe_value = "{name}".format(name=trusted_name)
dynaconf < 3.2.13Upgrade to a patched release:
dynaconf 3.2.13Field changes observed since this record was first indexed.