CVE-2024-22199: Django Template Engine Vulnerable to XSS
Impact
Vulnerability Type: Cross-Site Scripting (XSS) Affected Users: All users of the Django template engine for Fiber prior to the patch. This vulnerability specifically impacts web applications that render user-supplied data through this template engine, potentially leading to the execution of malicious scripts in users' browsers when visiting affected web pages.
Patches
The vulnerability has been addressed. The template engine now defaults to having autoescape set to true, effectively mitigating the risk of XSS attacks. Users are advised to upgrade to the latest version of the Django template engine for Fiber, where this security update is implemented. Ensure that the version of the template engine being used is the latest, post-patch version.
Workarounds
For users unable to upgrade immediately to the patched version, a workaround involves manually implementing autoescaping within individual Django templates. This method includes adding specific tags in the template to control autoescape behavior: django {% autoescape on %} {{ "<script>alert('xss');</script>" }} {% endautoescape %}
References
- Official documentation of the Django template engine for Fiber: https://docs.gofiber.io/template/django/ - Django built-in template tags: https://docs.djangoproject.com/en/5.0/ref/templates/builtins/
Other sources
This package provides universal methods to use multiple template engines with the Fiber web framework using the Views interface. This vulnerability specifically impacts web applications that render user-supplied data through this template engine, potentially leading to the execution of malicious scripts in users' browsers when visiting affected web pages. The vulnerability has been addressed, the template engine now defaults to having autoescape set to true, effectively mitigating the risk of XSS attacks.
— NVD
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
go/github.com/gofiber/template/django/v3to a version that resolves this vulnerability.Fixed in 3.1.9 - Configuration
Ensure autoescaping is enabled in Django templates. If upgrading is not immediately possible, manually implement autoescaping by adding `{% autoescape on %}` / `{% endautoescape %}` blocks around sections rendering user-supplied data (example provided: `{% autoescape on %} ... {% endautoescape %}`), and avoid rendering unescaped user input.
Fiber Django template engine autoescape = true
Event History
Frequently Asked Questions
What is the severity of CVE-2024-22199?
The severity of CVE-2024-22199 is classified as high due to its potential for Cross-Site Scripting (XSS) attacks.
How do I fix CVE-2024-22199?
To fix CVE-2024-22199, upgrade the affected Django template engine to version 3.1.9 or later.
Who is affected by CVE-2024-22199?
All users of the Django template engine for Fiber prior to version 3.1.9 are affected by CVE-2024-22199.
What type of vulnerability is CVE-2024-22199?
CVE-2024-22199 is classified as a Cross-Site Scripting (XSS) vulnerability.
What software is affected by CVE-2024-22199?
CVE-2024-22199 affects the Gofiber Django package versions prior to 3.1.9.