Skip to content
  • Jann Horn's avatar
    net/mlx5: fix uaccess beyond "count" in debugfs read/write handlers · 31e33a5b
    Jann Horn authored
    In general, accessing userspace memory beyond the length of the supplied
    buffer in VFS read/write handlers can lead to both kernel memory corruption
    (via kernel_read()/kernel_write(), which can e.g. be triggered via
    sys_splice()) and privilege escalation inside userspace.
    
    In this case, the affected files are in debugfs (and should therefore only
    be accessible to root) and check that *pos is zero (which prevents the
    sys_splice() trick). Therefore, this is not a security fix, but rather a
    small cleanup.
    
    For the read handlers, fix it by using simple_read_from_buffer() instead of
    custom logic.
    For the write handler, add a check.
    
    changed in v2:
     - also fix dbg_write()
    
    Fixes: e126ba97
    
     ("mlx5: Add driver for Mellanox Connect-IB adapters")
    Signed-off-by: default avatarJann Horn <jannh@google.com>
    Reviewed-by: default avatarLeon Romanovsky <leonro@mellanox.com>
    Signed-off-by: default avatarSaeed Mahameed <saeedm@mellanox.com>
    31e33a5b