REDHAT-BUG-632239: XSS
As of the 1.2 release, the core Django framework includes a system, enabled by default, for detecting and preventing cross-site request forgery (CSRF) attacks against Django-powered applications. Previous Django releases provided a different, optionally-enabled system for the same purpose.
The Django 1.2 CSRF protection system involves the generation of a random token, inserted as a hidden field in outgoing forms. The same value is also set in a cookie, and the cookie value and form value are compared on submission.
The provided template tag for inserting the CSRF token into forms -- {% csrftoken %} -- explicitly trusts the cookie value, and displays it as-is. Thus, an attacker who is able to tamper with the value of the CSRF cookie can cause arbitrary content to be inserted, unescaped, into the outgoing HTML of the form, enabling cross-site scripting (XSS) attacks.
This issue was first reported via a public ticket in Django's Trac instance; while being triaged it was then independently reported, with broader description, by Jeff Balogh of Mozilla.
http://www.djangoproject.com/weblog/2010/sep/08/security-release/
Affected Software
Event History
Frequently Asked Questions
What is the severity of REDHAT-BUG-632239?
The severity of REDHAT-BUG-632239 is considered high due to the potential for cross-site request forgery (CSRF) attacks against vulnerable Django applications.
How do I fix REDHAT-BUG-632239?
To fix REDHAT-BUG-632239, upgrade to the most recent version of Django that includes enhanced CSRF protection features.
What versions of Django are affected by REDHAT-BUG-632239?
REDHAT-BUG-632239 affects all versions of Django prior to 1.2.
What is cross-site request forgery (CSRF) in the context of REDHAT-BUG-632239?
Cross-site request forgery (CSRF) is a type of attack that tricks the user into executing unwanted actions on a different site where they are authenticated.
Is CSRF protection enabled by default in Django version 1.2 and later?
Yes, CSRF protection is enabled by default in Django version 1.2 and later, addressing the vulnerability described in REDHAT-BUG-632239.