lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20230511043602.GG3390869@ZenIV>
Date:   Thu, 11 May 2023 05:36:02 +0100
From:   Al Viro <viro@...iv.linux.org.uk>
To:     houweitao <houweitao@...iglobal.com>
Cc:     akpm@...ux-foudation.org, xupengfei@...china.com,
        brauner@...nel.org, dchinner@...hat.com,
        linux-fsdevel@...r.kernel.org, linux-kernel@...r.kernel.org,
        royliyueyi@...iglobal.com
Subject: Re: [PATCH] fs: hfsplus: fix uninit-value bug in hfsplus_listxattr

On Wed, May 10, 2023 at 10:25:15AM +0800, houweitao wrote:
> BUG: KMSAN: uninit-value in strncmp+0x11e/0x180 lib/string.c:307
>  strncmp+0x11e/0x180 lib/string.c:307
>  is_known_namespace fs/hfsplus/xattr.c:45 [inline]
>  name_len fs/hfsplus/xattr.c:397 [inline]
>  hfsplus_listxattr+0xe61/0x1aa0 fs/hfsplus/xattr.c:746
>  vfs_listxattr fs/xattr.c:473 [inline]
>  listxattr+0x700/0x780 fs/xattr.c:820
>  path_listxattr fs/xattr.c:844 [inline]
>  __do_sys_llistxattr fs/xattr.c:862 [inline]
>  __se_sys_llistxattr fs/xattr.c:859 [inline]
>  __ia32_sys_llistxattr+0x171/0x300 fs/xattr.c:859
>  do_syscall_32_irqs_on arch/x86/entry/common.c:112 [inline]
>  __do_fast_syscall_32+0xa2/0x100 arch/x86/entry/common.c:178
>  do_fast_syscall_32+0x37/0x80 arch/x86/entry/common.c:203
>  do_SYSENTER_32+0x1f/0x30 arch/x86/entry/common.c:246
>  entry_SYSENTER_compat_after_hwframe+0x70/0x82
> 
> Reported-by: syzbot <syzbot+92ef9ee419803871020e@...kaller.appspotmail.com>
> Link: https://syzkaller.appspot.com/bug?extid=92ef9ee419803871020e
> Signed-off-by: houweitao <houweitao@...iglobal.com>

Why does it actually fix anything?  Other than making KMSAN STFU, that is...

"Fill it with zeroes" might or might not be a fix in this particular case,
but it really needs more detailed proof.

You might have figured it out, but how do I (or anybody else) even begin
to reason about the correctness of that fix?  By redoing the analysis from
scratch, starting with "in some conditions this stack trace might end up
reading uninitialized data in strbuf"?

NAK.  *IF* you have an explanation of what's going on and why this change
really fixes things, please repost with useful commit message.

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ