• Casey Schaufler's avatar
    broken ping to ipv6 linklocal addresses on debian buster · 87fbfffc
    Casey Schaufler authored
    I am seeing ping failures to IPv6 linklocal addresses with Debian
    buster. Easiest example to reproduce is:
    
    $ ping -c1 -w1 ff02::1%eth1
    connect: Invalid argument
    
    $ ping -c1 -w1 ff02::1%eth1
    PING ff02::01%eth1(ff02::1%eth1) 56 data bytes
    64 bytes from fe80::e0:f9ff:fe0c:37%eth1: icmp_seq=1 ttl=64 time=0.059 ms
    
    git bisect traced the failure to
    commit b9ef5513 ("smack: Check address length before reading address family")
    
    Arguably ping is being stupid since the buster version is not setting
    the address family properly (ping on stretch for example does):
    
    $ strace -e connect ping6 -c1 -w1 ff02::1%eth1
    connect(5, {sa_family=AF_UNSPEC,
    sa_data="\4\1\0\0\0\0\377\2\0\0\0\0\0\0\0\0\0\0\0\0\0\1\3\0\0\0"}, 28)
    = -1 EINVAL (Invalid argument)
    
    but the command works fine on kernels prior to this commit, so this is
    breakage which goes against the Linux paradigm of "don't break userspace"
    
    Cc: stable@vger.kernel.org
    Reported-by: default avatarDavid Ahern <dsahern@gmail.com>
    Suggested-by: default avatarTetsuo Handa <penguin-kernel@i-love.sakura.ne.jp>
    Signed-off-by: default avatarCasey Schaufler <casey@schaufler-ca.com>
    
     security/smack/smack_lsm.c | 41 +++++++++++++++++++----------------------
     1 file changed, 19 insertions(+), 22 deletions(-)
    87fbfffc
smack_lsm.c 117 KB