In the Linux kernel, the following vulnerability has been resolved:
mm, slub: do not call doslabfree for kfence object
In 782f8906f805 the freeing of kfence objects was moved from deep inside doslabfree to the wrapper functions outside. This is a nice change, but unfortunately it missed one spot in _kmemcachefreebulk.
This results in a crash like this:
BUG skbuffheadcache (Tainted: G S B E ): Padding overwritten. 0xffff88907fea0f00-0xffff88907fea0fff @offset=3840
slaberr (mm/slub.c:1129) freetopartiallist (mm/slub.c:? mm/slub.c:4036) slabpadcheck (mm/slub.c:864 mm/slub.c:1290) checkslab (mm/slub.c:?) freetopartiallist (mm/slub.c:3171 mm/slub.c:4036) kmemcacheallocbulk (mm/slub.c:? mm/slub.c:4495 mm/slub.c:4586 mm/slub.c:4635) napibuild_skb (net/core/skbuff.c:348 net/core/skbuff.c:527 net/core/skbuff.c:549)
All the other callers to doslabfree appear to be ok.
Add a kfencefree check in _kmemcachefree_bulk to avoid the crash.