Opened 16 years ago
Closed 15 years ago
#10996 closed (fixed)
CSRF documentation doesn't note login CSRF vulnerability
Reported by: | smehmood | Owned by: | Luke Plant |
---|---|---|---|
Component: | Documentation | Version: | 1.0 |
Severity: | Keywords: | CSRF | |
Cc: | Triage Stage: | Accepted | |
Has patch: | no | Needs documentation: | no |
Needs tests: | no | Patch needs improvement: | no |
Easy pickings: | no | UI/UX: | no |
Description
It is my understanding the the CsrfMiddleware module does not protect against the login CSRF attacks described in http://www.adambarth.com/papers/2008/barth-jackson-mitchell-b.pdf.
This post to the django-dev seems to confirm this:http://groups.google.com/group/django-developers/browse_thread/thread/ae525f270ed46933/5a339c6d64d40868?lnk=gst&q=csrf#5a339c6d64d40868
However, the documentation for the CsrfMiddleware class does not note this, despite having a specific 'Limitations' section.
It also makes this false statement:
"POST requests that are not accompanied by a session cookie are not protected, but they do not need to be protected, since the 'attacking' Web site could make these kind of requests anyway."
Two things:
1) The fact that an attacking website could make the requests anyway is not a reason to say they don't need to be protected. It might be more accurate to say that such requests are not authenticated, and thus, are unlikely to perform sensitive actions.
2) This statement ignores the possibility of login CSRFs. These are requests that do not have a session cookie, but /do/ need to be protected.
Change History (4)
comment:1 by , 16 years ago
Owner: | changed from | to
---|
comment:2 by , 16 years ago
comment:3 by , 15 years ago
Triage Stage: | Unreviewed → Accepted |
---|
comment:4 by , 15 years ago
Resolution: | → fixed |
---|---|
Status: | new → closed |
See CsrfProtection - out-of-the-box login views are not actually vulnerable to login CSRF with the CSRF middleware. But probably the documentation does need fixing in the 1.0.X branch (and 1.1.X branch when it arrives).