[tor-bugs] #25036 [Core Tor/Tor]: Tor 0.3.2 rejects connections to raw ipv6 addresses

Tor Bug Tracker & Wiki blackhole at torproject.org
Mon Feb 12 19:18:16 UTC 2018


#25036: Tor 0.3.2 rejects connections to raw ipv6 addresses
------------------------------------------+--------------------------------
 Reporter:  pastly                        |          Owner:  tbb-team
     Type:  defect                        |         Status:  needs_revision
 Priority:  High                          |      Milestone:  Tor:
                                          |  0.3.3.x-final
Component:  Core Tor/Tor                  |        Version:  Tor:
                                          |  0.3.2.1-alpha
 Severity:  Normal                        |     Resolution:
 Keywords:  regression ipv6 032-backport  |  Actual Points:
Parent ID:                                |         Points:
 Reviewer:                                |        Sponsor:
------------------------------------------+--------------------------------

Comment (by teor):

 Replying to [comment:21 rl1987]:
 > Replying to [comment:20 teor]:
 > > Replying to [comment:18 rl1987]:
 > > > Preliminary patch for this (and #25055):
 https://github.com/rl1987/tor/commits/bugs_25036_25055
 > >
 > > Did you replace every use of string_is_valid_hostname()?
 >
 > Yes, there were two of them in SOCKS parsing code.
 >
 > > Please add another unit test for a bracketed IPv6 address, rather than
 replacing the existing raw IPv6 address test.
 >
 > Do we want to allow IPv6 addresses without brackets? RFC2732 seems to
 require brackets in IPv6 URLs, but does not explicitly forbid bracket-less
 form.

 We can allow bracketless IPv6 without ambiguity, because the hostname and
 port are separate in the socks protocol.
 So, yes, please allow bracketless IPv6.

 > > Is tor_inet_pton() used for bracketed IPv6 strings elsewhere in the
 codebase?
 > > If not, how are they handled? Do it the same way.
 > > If so, please update the function comment on tor_inet_pton(), and add
 a unit test for tor_inet_pton() with a bracketed IPv6 address.
 >
 > In 0dda450d41b1fcfc108f1d7ee4bc3417a7494ce3 I did it the way
 `tor_addr_parse` is doing - if brackets are detected, they are stripped
 out and resulting string is passed to `tor_inet_pton`. Also I realised the
 testcase was wrong all along - it was comparing to -1.

 Thanks. These changes look good. You could call strlen() once if you
 wanted to.

--
Ticket URL: <https://trac.torproject.org/projects/tor/ticket/25036#comment:22>
Tor Bug Tracker & Wiki <https://trac.torproject.org/>
The Tor Project: anonymity online


More information about the tor-bugs mailing list