<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <meta content="text/html;charset=ISO-8859-1" http-equiv="Content-Type">
  <title></title>
</head>
<body bgcolor="#ffffff" text="#000000">
Hi Andrew,<br>
<br>
Would an attacker be able to exploit this issue by returning the
Content-Location HTTP response header for an URL that he owns, making
his URL equivalent to a victim's OpenID? How is this different from
having the attacker delegating his URL to the victim's OpenID?<br>
<br>
Can you outline a scenario where the Content-Location HTTP header is
exploited?<br>
<br>
Thanks<br>
Allen<br>
<br>
<br>
<br>
Arnott wrote:
<blockquote
 cite="mid:216e54900911040945p4335be3fqea367a56736925c0@mail.gmail.com"
 type="cite">Just a heads up from something I recently became aware of
that impacted older versions of dotnetopenid.
  <div><br>
  </div>
  <div>The HTTP protocol defines a Content-Location HTTP response
header that allows the web server to suggest to the client that another
URL would be equivalent to the one that client actually pulled from.
&nbsp;It is<i> not</i>&nbsp;a redirect, but merely a suggestion that two URLs are
equivalent. &nbsp;For the purposes of OpenID claimed identifier discovery,
it is imperative that an OpenID RP <i>ignore</i>&nbsp;this header, lest a
web server upon which discovery was performed can spoof an arbitrary
claimed_id's identity by fooling the RP into thinking it discovered an
identifier that in fact it did not.</div>
  <div><br>
  </div>
  <div>In particular, .NET's "helpful" HTTP stack automatically reads
this header and reports it to the client as if it was in fact that
actual URL that was pulled from even though it wasn't. &nbsp;Since .NET
follows redirects automatically by default, a legitimate redirect and
this Content-Location header are indiscernable, which is really bad.
&nbsp;This is fixed in the dotnetopenid and dotnetopenauth libraries.</div>
  <div><br>
  </div>
  <div>Other RP library/site authors should verify that the HTTP stack
they are using ignore this header, or workaround the issue. &nbsp;</div>
  <div><br>
  </div>
  <div>I've set up a test on <a moz-do-not-send="true"
 href="http://test-id.org">test-id.org</a> where an RP can very quickly
assess whether they are vulnerable. &nbsp;Please take a moment to find out,
and fix it ASAP if you are.</div>
  <div><a moz-do-not-send="true"
 href="http://test-id.org/RP/IgnoresContentLocationHeader.aspx">http://test-id.org/RP/IgnoresContentLocationHeader.aspx</a></div>
  <div><br clear="all">
--<br>
Andrew Arnott<br>
"I [may] not agree with what you have to say, but I'll defend to the
death your right to say it." - S. G. Tallentyre<br>
  </div>
  <pre wrap="">
<hr size="4" width="90%">
_______________________________________________
security mailing list
<a class="moz-txt-link-abbreviated" href="mailto:security@lists.openid.net">security@lists.openid.net</a>
<a class="moz-txt-link-freetext" href="http://lists.openid.net/mailman/listinfo/openid-security">http://lists.openid.net/mailman/listinfo/openid-security</a>
  </pre>
</blockquote>
<br>
</body>
</html>