• Eric Dumazet's avatar
    netrom: fix info-leak in nr_write_internal() · 31642e70
    Eric Dumazet authored
    Simon Kapadia reported the following issue:
    
    <quote>
    
    The Online Amateur Radio Community (OARC) has recently been experimenting
    with building a nationwide packet network in the UK.
    As part of our experimentation, we have been testing out packet on 300bps HF,
    and playing with net/rom.  For HF packet at this baud rate you really need
    to make sure that your MTU is relatively low; AX.25 suggests a PACLEN of 60,
    and a net/rom PACLEN of 40 to go with that.
    However the Linux net/rom support didn't work with a low PACLEN;
    the mkiss module would truncate packets if you set the PACLEN below about 200 or so, e.g.:
    
    Apr 19 14:00:51 radio kernel: [12985.747310] mkiss: ax1: truncating oversized transmit packet!
    
    This didn't make any sense to me (if the packets are smaller why would they
    be truncated?) so I started investigating.
    I looked at the packets using ethereal, and found that many were just huge
    compared to what I would expect.
    A simple net/rom connection request packet had the request and then a bunch
    of what appeared to be random data following it:
    
    </quote>
    
    Simon provided a patch that I slightly revised:
    Not only we must not use skb_tailroom(), we also do
    not want to count NR_NETWORK_LEN twice.
    
    Fixes: 1da177e4 ("Linux-2.6.12-rc2")
    Co-Developed-by: default avatarSimon Kapadia <szymon@kapadia.pl>
    Signed-off-by: default avatarSimon Kapadia <szymon@kapadia.pl>
    Signed-off-by: default avatarEric Dumazet <edumazet@google.com>
    Tested-by: default avatarSimon Kapadia <szymon@kapadia.pl>
    Reviewed-by: default avatarSimon Horman <simon.horman@corigine.com>
    Link: https://lore.kernel.org/r/20230524141456.1045467-1-edumazet@google.comSigned-off-by: default avatarJakub Kicinski <kuba@kernel.org>
    31642e70
nr_subr.c 5.84 KB