Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 07 Mar 2018 15:10:39 +0000
From:      bugzilla-noreply@freebsd.org
To:        freebsd-bugs@FreeBSD.org
Subject:   [Bug 226421] v6 address truncated and socket type shows "tcp46" when IPv4 mapping enabled
Message-ID:  <bug-226421-8@https.bugs.freebsd.org/bugzilla/>

next in thread | raw e-mail | index | archive | help
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D226421

            Bug ID: 226421
           Summary: v6 address truncated and socket type shows "tcp46"
                    when IPv4 mapping enabled
           Product: Base System
           Version: 11.1-STABLE
          Hardware: Any
                OS: Any
            Status: New
          Severity: Affects Only Me
          Priority: ---
         Component: kern
          Assignee: freebsd-bugs@FreeBSD.org
          Reporter: dan.mcgregor@usask.ca

Created attachment 191279
  --> https://bugs.freebsd.org/bugzilla/attachment.cgi?id=3D191279&action=
=3Dedit
Proposed patch to correct IPv6 vs IPv4 check in receive path

Since bug 221385's been closed, with net.inet6.ip6.v6only=3D0, a socket lis=
tening
on an IPv6 address accepts a connection from another IPv6 host, the accepted
socket shows type "tcp46" and has its address truncated to the lower 32 bit=
s:

USER     COMMAND    PID   FD PROTO  LOCAL ADDRESS         FOREIGN ADDRESS
dan      sshd       711   3  tcp46  254.11.122.185:22     0.0.0.2:47615
root     sshd       708   3  tcp46  254.11.122.185:22     0.0.0.2:47615

The addresses are the lower 32 bits of the IPv6 addresses in question,
2001:470:1f17:273:2a0:98ff:fe0b:7ab9 and 2001:470:1c:4df::2.

The expected result would be:

USER     COMMAND    PID   FD PROTO  LOCAL ADDRESS         FOREIGN ADDRESS
dan      sshd       40475 3  tcp6   2001:470:30f3:1:ca60:ff:fe5f:c1f3:22
2001:470:30f3:1:922b:34ff:fe5d:d4b3:33558
root     sshd       35424 3  tcp6   2001:470:30f3:1:ca60:ff:fe5f:c1f3:22
2001:470:30f3:1:922b:34ff:fe5d:d4b3:33558

This appears to be due to the kernel assuming any socket whose inp_vflag
includes IPv4 is an IPv4 socket. The accepted socket inherits that value fr=
om
the parent socket. It should only have tcp46 for listening sockets, and in
accept check that only INP_IPV4 is set.

--=20
You are receiving this mail because:
You are the assignee for the bug.=



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-226421-8>