Re: [PATCH v2] bcachefs: memset bounce buffer portion to 0 after key_sort_fix_overlapping
From: Kent Overstreet
Date: Mon Sep 23 2024 - 17:44:23 EST
On Sun, Sep 22, 2024 at 03:18:01PM GMT, Piotr Zalewski wrote:
> Zero-initialize part of allocated bounce buffer which wasn't touched by
> subsequent bch2_key_sort_fix_overlapping to mitigate later uinit-value
> use KMSAN bug[1].
>
> After applying the patch reproducer still triggers stack overflow[2] but
> it seems unrelated to the uninit-value use warning. After further
> investigation it was found that stack overflow occurs because KMSAN adds
> too many function calls[3]. Backtrace of where the stack magic number gets
> smashed was added as a reply to syzkaller thread[3].
>
> It was confirmed that task's stack magic number gets smashed after the code
> path where KSMAN detects uninit-value use is executed, so it can be assumed
> that it doesn't contribute in any way to uninit-value use detection.
>
> [1] https://syzkaller.appspot.com/bug?extid=6f655a60d3244d0c6718
> [2] https://lore.kernel.org/lkml/66e57e46.050a0220.115905.0002.GAE@xxxxxxxxxx
> [3] https://lore.kernel.org/all/rVaWgPULej8K7HqMPNIu8kVNyXNjjCiTB-QBtItLFBmk0alH6fV2tk4joVPk97Evnuv4ZRDd8HB5uDCkiFG6u81xKdzDj-KrtIMJSlF6Kt8=@proton.me
>
> Reported-by: syzbot+6f655a60d3244d0c6718@xxxxxxxxxxxxxxxxxxxxxxxxx
> Closes: https://syzkaller.appspot.com/bug?extid=6f655a60d3244d0c6718
> Fixes: ec4edd7b9d20 ("bcachefs: Prep work for variable size btree node buffers")
> Suggested-by: Kent Overstreet <kent.overstreet@xxxxxxxxx>
> Signed-off-by: Piotr Zalewski <pZ010001011111@xxxxxxxxx>
Thanks! Applied.