That sounds pretty good.<div><br></div><div>/Security should be the landing page.</div><div><br></div><div>/Security-Issues (I tend to prefer naming with spaces or hyphens for SEO/readability) should be for the list of known and fixed security issues.</div>
<div><br></div><div>/Security-Report-[descriptive-shortname] could be used for the details of an individual report.</div><div><br></div><div>Are there good templates for such reports on the web? I can import one to the wiki so that it&#39;d be available in the dropdown list of templates.</div>
<div><br></div><div>Chris<br><br><div class="gmail_quote">On Mon, Nov 16, 2009 at 11:11 AM, Andrew Arnott <span dir="ltr">&lt;<a href="mailto:andrewarnott@gmail.com">andrewarnott@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
I suggest we refactor it so that /Security is a general discussion of how security is evaluated and triaged for OpenID, and that /SecurityIssues be where all issues are listed, and that sub-pages to /SecurityIssues actually explain individual issues.<div class="im">
<br clear="all">

--<br>Andrew Arnott<br>&quot;I [may] not agree with what you have to say, but I&#39;ll defend to the death your right to say it.&quot; - S. G. Tallentyre<br>
<br><br></div><div><div></div><div class="h5"><div class="gmail_quote">On Mon, Nov 16, 2009 at 11:03 AM, Breno de Medeiros <span dir="ltr">&lt;<a href="mailto:breno@google.com" target="_blank">breno@google.com</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

Hmmm... we need to consolidate these locations ... Suggestions?<br>
<div><div></div><div><br>
On Mon, Nov 16, 2009 at 11:00 AM, Andrew Arnott &lt;<a href="mailto:andrewarnott@gmail.com" target="_blank">andrewarnott@gmail.com</a>&gt; wrote:<br>
&gt; I&#39;ve added it to <a href="http://wiki.openid.net/Reported_Security_Issues" target="_blank">http://wiki.openid.net/Reported_Security_Issues</a>,<br>
&gt; Although between these URLs, and their content, it was difficult to figure<br>
&gt; out exactly where was most appropriate.  So let me know if I guessed wrong.<br>
&gt; <a href="http://wiki.openid.net/Security" target="_blank">http://wiki.openid.net/Security</a><br>
&gt; <a href="http://wiki.openid.net/SecurityIssues" target="_blank">http://wiki.openid.net/SecurityIssues</a><br>
&gt; <a href="http://wiki.openid.net/Reported_Security_Issues" target="_blank">http://wiki.openid.net/Reported_Security_Issues</a><br>
&gt; --<br>
&gt; Andrew Arnott<br>
&gt; &quot;I [may] not agree with what you have to say, but I&#39;ll defend to the death<br>
&gt; your right to say it.&quot; - S. G. Tallentyre<br>
&gt;<br>
&gt;<br>
&gt; On Mon, Nov 16, 2009 at 10:42 AM, Andrew Arnott &lt;<a href="mailto:andrewarnott@gmail.com" target="_blank">andrewarnott@gmail.com</a>&gt;<br>
&gt; wrote:<br>
&gt;&gt;<br>
&gt;&gt; I&#39;ll do that.  Thanks.<br>
&gt;&gt; --<br>
&gt;&gt; Andrew Arnott<br>
&gt;&gt; &quot;I [may] not agree with what you have to say, but I&#39;ll defend to the death<br>
&gt;&gt; your right to say it.&quot; - S. G. Tallentyre<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; On Mon, Nov 16, 2009 at 10:06 AM, Breno de Medeiros &lt;<a href="mailto:breno@google.com" target="_blank">breno@google.com</a>&gt;<br>
&gt;&gt; wrote:<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Andrew,<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; This is a sufficiently significant risk that should be documented in<br>
&gt;&gt;&gt; the security wiki. I encourage you to do so.<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; On Sat, Nov 14, 2009 at 7:21 PM, Andrew Arnott &lt;<a href="mailto:andrewarnott@gmail.com" target="_blank">andrewarnott@gmail.com</a>&gt;<br>
&gt;&gt;&gt; wrote:<br>
&gt;&gt;&gt; &gt; That&#39;s right, John.<br>
&gt;&gt;&gt; &gt; For a vulnerable RP, an attacker could set up any URL to impersonate<br>
&gt;&gt;&gt; &gt; any<br>
&gt;&gt;&gt; &gt; other user at the RP simply by logging into the RP with his own URL,<br>
&gt;&gt;&gt; &gt; after<br>
&gt;&gt;&gt; &gt; configuring it to send back the Content-Location header with the<br>
&gt;&gt;&gt; &gt; victim&#39;s<br>
&gt;&gt;&gt; &gt; claimed_id as its value.<br>
&gt;&gt;&gt; &gt; I&#39;ve confirmed that the extremeswankopenid library is vulnerable to<br>
&gt;&gt;&gt; &gt; this<br>
&gt;&gt;&gt; &gt; attack, and have contacted the author already.<br>
&gt;&gt;&gt; &gt; Regarding your question about how this is different than delegating<br>
&gt;&gt;&gt; &gt; your<br>
&gt;&gt;&gt; &gt; identifier to a victim&#39;s OpenID... I&#39;m not familiar with such an<br>
&gt;&gt;&gt; &gt; approach,<br>
&gt;&gt;&gt; &gt; or how that would be exploited.<br>
&gt;&gt;&gt; &gt; --<br>
&gt;&gt;&gt; &gt; Andrew Arnott<br>
&gt;&gt;&gt; &gt; &quot;I [may] not agree with what you have to say, but I&#39;ll defend to the<br>
&gt;&gt;&gt; &gt; death<br>
&gt;&gt;&gt; &gt; your right to say it.&quot; - S. G. Tallentyre<br>
&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt; On Sat, Nov 14, 2009 at 10:50 AM, John Bradley &lt;<a href="mailto:ve7jtb@ve7jtb.com" target="_blank">ve7jtb@ve7jtb.com</a>&gt;<br>
&gt;&gt;&gt; &gt; wrote:<br>
&gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt; &gt;&gt; This is a attack on discovery.<br>
&gt;&gt;&gt; &gt;&gt; If the RP performs discovery on URL A the owner of URL A can return a<br>
&gt;&gt;&gt; &gt;&gt; XRDS<br>
&gt;&gt;&gt; &gt;&gt; with a content-Location header for URL B.  The RP now believes that<br>
&gt;&gt;&gt; &gt;&gt; whatever<br>
&gt;&gt;&gt; &gt;&gt; OP endpoint is in the XRDS is authoritative for URL B without having<br>
&gt;&gt;&gt; &gt;&gt; retrieved the actual XRDS for it, only the one for URL A claiming to<br>
&gt;&gt;&gt; &gt;&gt; be B.<br>
&gt;&gt;&gt; &gt;&gt; The problem is that .Net &quot;helps&quot; the application by making it think a<br>
&gt;&gt;&gt; &gt;&gt; redirect has taken place when it hasn&#39;t.<br>
&gt;&gt;&gt; &gt;&gt; There are lots of times when this works just fine however the<br>
&gt;&gt;&gt; &gt;&gt; claimed_id<br>
&gt;&gt;&gt; &gt;&gt; is tied to the product of the second normalization so is vulnerable to<br>
&gt;&gt;&gt; &gt;&gt; this<br>
&gt;&gt;&gt; &gt;&gt; sort of fake redirect.<br>
&gt;&gt;&gt; &gt;&gt; Andrew can provide more of the details.<br>
&gt;&gt;&gt; &gt;&gt; John B.<br>
&gt;&gt;&gt; &gt;&gt; On 2009-11-14, at 2:24 PM, Allen Tom wrote:<br>
&gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt; &gt;&gt; Hi Andrew,<br>
&gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt; &gt;&gt; Would an attacker be able to exploit this issue by returning the<br>
&gt;&gt;&gt; &gt;&gt; Content-Location HTTP response header for an URL that he owns, making<br>
&gt;&gt;&gt; &gt;&gt; his<br>
&gt;&gt;&gt; &gt;&gt; URL equivalent to a victim&#39;s OpenID? How is this different from having<br>
&gt;&gt;&gt; &gt;&gt; the<br>
&gt;&gt;&gt; &gt;&gt; attacker delegating his URL to the victim&#39;s OpenID?<br>
&gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt; &gt;&gt; Can you outline a scenario where the Content-Location HTTP header is<br>
&gt;&gt;&gt; &gt;&gt; exploited?<br>
&gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt; &gt;&gt; Thanks<br>
&gt;&gt;&gt; &gt;&gt; Allen<br>
&gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt; &gt;&gt; Arnott wrote:<br>
&gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt; &gt;&gt; Just a heads up from something I recently became aware of that<br>
&gt;&gt;&gt; &gt;&gt; impacted<br>
&gt;&gt;&gt; &gt;&gt; older versions of dotnetopenid.<br>
&gt;&gt;&gt; &gt;&gt; The HTTP protocol defines a Content-Location HTTP response header that<br>
&gt;&gt;&gt; &gt;&gt; allows the web server to suggest to the client that another URL would<br>
&gt;&gt;&gt; &gt;&gt; be<br>
&gt;&gt;&gt; &gt;&gt; equivalent to the one that client actually pulled from.  It is not a<br>
&gt;&gt;&gt; &gt;&gt; redirect, but merely a suggestion that two URLs are equivalent.  For<br>
&gt;&gt;&gt; &gt;&gt; the<br>
&gt;&gt;&gt; &gt;&gt; purposes of OpenID claimed identifier discovery, it is imperative that<br>
&gt;&gt;&gt; &gt;&gt; an<br>
&gt;&gt;&gt; &gt;&gt; OpenID RP ignore this header, lest a web server upon which discovery<br>
&gt;&gt;&gt; &gt;&gt; was<br>
&gt;&gt;&gt; &gt;&gt; performed can spoof an arbitrary claimed_id&#39;s identity by fooling the<br>
&gt;&gt;&gt; &gt;&gt; RP<br>
&gt;&gt;&gt; &gt;&gt; into thinking it discovered an identifier that in fact it did not.<br>
&gt;&gt;&gt; &gt;&gt; In particular, .NET&#39;s &quot;helpful&quot; HTTP stack automatically reads this<br>
&gt;&gt;&gt; &gt;&gt; header<br>
&gt;&gt;&gt; &gt;&gt; and reports it to the client as if it was in fact that actual URL that<br>
&gt;&gt;&gt; &gt;&gt; was<br>
&gt;&gt;&gt; &gt;&gt; pulled from even though it wasn&#39;t.  Since .NET follows redirects<br>
&gt;&gt;&gt; &gt;&gt; automatically by default, a legitimate redirect and this<br>
&gt;&gt;&gt; &gt;&gt; Content-Location<br>
&gt;&gt;&gt; &gt;&gt; header are indiscernable, which is really bad.  This is fixed in the<br>
&gt;&gt;&gt; &gt;&gt; dotnetopenid and dotnetopenauth libraries.<br>
&gt;&gt;&gt; &gt;&gt; Other RP library/site authors should verify that the HTTP stack they<br>
&gt;&gt;&gt; &gt;&gt; are<br>
&gt;&gt;&gt; &gt;&gt; using ignore this header, or workaround the issue.<br>
&gt;&gt;&gt; &gt;&gt; I&#39;ve set up a test on <a href="http://test-id.org" target="_blank">test-id.org</a> where an RP can very quickly assess<br>
&gt;&gt;&gt; &gt;&gt; whether they are vulnerable.  Please take a moment to find out, and<br>
&gt;&gt;&gt; &gt;&gt; fix it<br>
&gt;&gt;&gt; &gt;&gt; ASAP if you are.<br>
&gt;&gt;&gt; &gt;&gt; <a href="http://test-id.org/RP/IgnoresContentLocationHeader.aspx" target="_blank">http://test-id.org/RP/IgnoresContentLocationHeader.aspx</a><br>
&gt;&gt;&gt; &gt;&gt; --<br>
&gt;&gt;&gt; &gt;&gt; Andrew Arnott<br>
&gt;&gt;&gt; &gt;&gt; &quot;I [may] not agree with what you have to say, but I&#39;ll defend to the<br>
&gt;&gt;&gt; &gt;&gt; death<br>
&gt;&gt;&gt; &gt;&gt; your right to say it.&quot; - S. G. Tallentyre<br>
&gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt; &gt;&gt; ________________________________<br>
&gt;&gt;&gt; &gt;&gt; _______________________________________________<br>
&gt;&gt;&gt; &gt;&gt; security mailing list<br>
&gt;&gt;&gt; &gt;&gt; <a href="mailto:security@lists.openid.net" target="_blank">security@lists.openid.net</a><br>
&gt;&gt;&gt; &gt;&gt; <a href="http://lists.openid.net/mailman/listinfo/openid-security" target="_blank">http://lists.openid.net/mailman/listinfo/openid-security</a><br>
&gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt; &gt;&gt; _______________________________________________<br>
&gt;&gt;&gt; &gt;&gt; security mailing list<br>
&gt;&gt;&gt; &gt;&gt; <a href="mailto:security@lists.openid.net" target="_blank">security@lists.openid.net</a><br>
&gt;&gt;&gt; &gt;&gt; <a href="http://lists.openid.net/mailman/listinfo/openid-security" target="_blank">http://lists.openid.net/mailman/listinfo/openid-security</a><br>
&gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt; _______________________________________________<br>
&gt;&gt;&gt; &gt; security mailing list<br>
&gt;&gt;&gt; &gt; <a href="mailto:security@lists.openid.net" target="_blank">security@lists.openid.net</a><br>
&gt;&gt;&gt; &gt; <a href="http://lists.openid.net/mailman/listinfo/openid-security" target="_blank">http://lists.openid.net/mailman/listinfo/openid-security</a><br>
&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; --<br>
&gt;&gt;&gt; --Breno<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; +1 (650) 214-1007 desk<br>
&gt;&gt;&gt; +1 (408) 212-0135 (Grand Central)<br>
&gt;&gt;&gt; MTV-41-3 : 383-A<br>
&gt;&gt;&gt; PST (GMT-8) / PDT(GMT-7)<br>
&gt;&gt;<br>
&gt;<br>
&gt;<br>
<br>
<br>
<br>
</div></div>--<br>
<div><div></div><div>--Breno<br>
<br>
+1 (650) 214-1007 desk<br>
+1 (408) 212-0135 (Grand Central)<br>
MTV-41-3 : 383-A<br>
PST (GMT-8) / PDT(GMT-7)<br>
</div></div></blockquote></div><br>
</div></div><br>_______________________________________________<br>
security mailing list<br>
<a href="mailto:security@lists.openid.net">security@lists.openid.net</a><br>
<a href="http://lists.openid.net/mailman/listinfo/openid-security" target="_blank">http://lists.openid.net/mailman/listinfo/openid-security</a><br>
<br></blockquote></div><br><br clear="all"><br>-- <br>Chris Messina<br>Open Web Advocate<br><br>Personal: <a href="http://factoryjoe.com">http://factoryjoe.com</a><br>Follow me on Twitter: <a href="http://twitter.com/chrismessina">http://twitter.com/chrismessina</a><br>
<br>Citizen Agency: <a href="http://citizenagency.com">http://citizenagency.com</a><br>Diso Project: <a href="http://diso-project.org">http://diso-project.org</a><br>OpenID Foundation: <a href="http://openid.net">http://openid.net</a><br>
<br>This email is:   [ ] shareable    [X] ask first   [ ] private<br>
</div>