On Tue, May 23, 2017 at 9:53 AM, Adam Roach <a...@nostrum.com> wrote:

> On 5/23/17 05:09, Alexey Melnikov wrote:
>
> On Tue, May 23, 2017, at 10:24 AM, Alexey Melnikov wrote:
>
> Hi William,
>
> On 22 May 2017, at 23:14, William Denniss <wdenn...@google.com> wrote:
>
> Section 8.1 makes the statement that "Loopback IP based redirect URIs may
> be susceptible to interception by other apps listening on the same
> loopback interface." That's not how TCP listener sockets work: for any
> given IP address, they guarantee single-process access to a port at any
> one time. (Exceptions would include processes with root access, but an
> attacking process with that level of access is going to be impossible to
> defend against). While mostly harmless, the statement appears to be false
> on its face, and should be removed or clarified.
>
>
> Will be removed in the next update. Thank you.
>
>
> Actually, I disagree with Adam on this, because what he says is OS
> specific. So I think the text is valuable and should stay.
>
> In particular, I think SO_REUSEADDR socket option is widely implemented,
> both on Windows and Linux.
>
>
> Okay, after doing a lot of digging, this appears to be much more
> complicated than it should be [1]. Linux (as of 3.9) does allow multiple
> _listeners_ on a single IP/Address pair (and does load balancing among them
> o_O), but only if they're both using SO_REUSEADDR ("don't do that then"
> would be good advice). Windows allows the kind of hijacking described in
> the document unless SO_EXCLUSIVEADDRUSE is set (and it might be good advice
> in this document to suggest setting it).
>

Thank you Alexey and Adam for the discussion and research!

I've added notes to both the Windows and Linux implementation details
(staged for v12).


> So I'm okay with the paragraph staying in, although I would like to see it
> qualified with "on some operating systems", and would like to see a note
> (probably in section B.3) recommending the use of SO_EXCLUSIVEADDRUSE on
> listening sockets.
>

Added the qualifier "on some operating systems" for the next version.

/a
>
>
> ____
>
> [1] The most comprehensive explanation of facts on the ground that I could
> find is https://stackoverflow.com/questions/14388706/socket-
> options-so-reuseaddr-and-so-reuseport-how-do-they-differ-do-they-mean-t
>
_______________________________________________
OAuth mailing list
OAuth@ietf.org
https://www.ietf.org/mailman/listinfo/oauth

Reply via email to