Django 1.4.20 release notes

18 mars 2015

Django 1.4.20 åtgärdar ett säkerhetsproblem i 1.4.19.

Mildrad möjlig XSS-attack via användartillhandahållna omdirigeringsadresser

Django förlitar sig på användarinmatning i vissa fall (t.ex. django.contrib.auth.views.login() och i18n) för att omdirigera användaren till en ”on success” URL. Säkerhetskontrollerna för dessa omdirigeringar (nämligen django.utils.http.is_safe_url()) accepterade webbadresser med ledande kontrolltecken och ansåg därför att webbadresser som \x08javascript:... var säkra. Detta problem påverkar inte Django för närvarande, eftersom vi bara lägger in denna URL i svarshuvudet Location och webbläsare verkar ignorera JavaScript där. Webbläsare som vi testade behandlar också webbadresser med kontrolltecken som %08//example.com som relativa sökvägar, så omdirigering till ett osäkert mål är inte heller ett problem.

Men om en utvecklare förlitar sig på is_safe_url() för att tillhandahålla säkra omdirigeringsmål och lägger in en sådan URL i en länk, kan de drabbas av en XSS-attack eftersom vissa webbläsare som Google Chrome ignorerar kontrolltecken i början av en URL i ankaret href.