lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [day] [month] [year] [list]
Message-ID: <CAOJKFBBZqioUTL4SqKUFW_usBeCy+d2SJxjm_Cp76fSnw4pDeA@mail.gmail.com>
Date: Thu, 6 Mar 2014 12:14:33 -0600
From: Brandon Perry <bperry.volatile@...il.com>
To: "full-disclosure@...ts.grok.org.uk" <full-disclosure@...ts.grok.org.uk>
Subject: Rails and redirections

Currently, passing \0, \r, or \n into a URL that is passed to redirect_to
has Rails gsub'ing them out of the URL before completing the redirect.

A programmer that doesn't realise this is happening could easily write a
regex and logic that says "if url starts with https:// or http:// fail or
else redirect_to url".

Seems straighforward, but an attacker could simply pass in a url like
\nhttp://www.google.com and bypass the regex check and be redirected to
google.com.

The line effecting this is line 106 in redirecting.rb in Rails.

https://github.com/rails/rails/blob/3-2-stable/actionpack/lib/action_controller/metal/redirecting.rb#L106

I feel like this is something that Rails should not be doing on behalf of
the programmer. The programmer should be expected to pass in exactly what
they want redirected to without Rails changing their data. Should this be
considered a vulnerability?

Thoughts?

-- 
http://volatile-minds.blogspot.com -- blog
http://www.volatileminds.net -- website

Content of type "text/html" skipped

_______________________________________________
Full-Disclosure - We believe in it.
Charter: http://lists.grok.org.uk/full-disclosure-charter.html
Hosted and sponsored by Secunia - http://secunia.com/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ