• A
    ovl: fix out of bounds access warning in ovl_check_fb_len() · 522f6e6c
    Amir Goldstein 提交于
    syzbot reported out of bounds memory access from open_by_handle_at()
    with a crafted file handle that looks like this:
    
      { .handle_bytes = 2, .handle_type = OVL_FILEID_V1 }
    
    handle_bytes gets rounded down to 0 and we end up calling:
      ovl_check_fh_len(fh, 0) => ovl_check_fb_len(fh + 3, -3)
    
    But fh buffer is only 2 bytes long, so accessing struct ovl_fb at
    fh + 3 is illegal.
    
    Fixes: cbe7fba8 ("ovl: make sure that real fid is 32bit aligned in memory")
    Reported-and-tested-by: syzbot+61958888b1c60361a791@syzkaller.appspotmail.com
    Cc: <stable@vger.kernel.org> # v5.5
    Signed-off-by: NAmir Goldstein <amir73il@gmail.com>
    Signed-off-by: NMiklos Szeredi <mszeredi@redhat.com>
    522f6e6c
overlayfs.h 16.6 KB