KASAN did not properly detect this bug: https://groups.google.com/d/msg/syzkaller-bugs/PINYyzoaG1s/cvPh_4JXBgAJ and it caused silent memory corruptions and explosion of assorted bugs reported by syzbot. The crux is that double-free happens via kzfree. kzfree calls ksize to do memset before before calling kfree. ksize _unpoisons_ whole object (which was already free). And finally we call kfree, which checks first shadow byte and decides that the object is good. Probably need an additional kasan check in ksize.
This is fixed by the "mm/kasan: Add object validation in ksize()" series, right?
Yes, fixed by 0d4ca4c9bab3 ("mm/kasan: add object validation in ksize()")