In the Linux kernel, the following vulnerability has been resolved:
netlink: fix false positive warning in extack during dumps
Commit under fixes extended extack reporting to dumps. It works under normal conditions, because extack errors are usually reported during ->start() or the first ->dump(), it's quite rare that the dump starts okay but fails later. If the dump does fail later, however, the input skb will already have the initiating message pulled, so checking if bad attr falls within skb->data will fail.
Switch the check to using nlh, which is always valid.
syzbot found a way to hit that scenario by filling up the receive queue. In this case we initiate a dump but don't call ->dump() until there is read space for an skb.
WARNING: CPU: 1 PID: 5845 at net/netlink/afnetlink.c:2210 netlinkacktlvfill+0x1a8/0x560 net/netlink/afnetlink.c:2209 RIP: 0010:netlinkacktlvfill+0x1a8/0x560 net/netlink/afnetlink.c:2209 Call Trace: <TASK> netlinkdumpdone+0x513/0x970 net/netlink/afnetlink.c:2250 netlinkdump+0x91f/0xe10 net/netlink/afnetlink.c:2351 netlinkrecvmsg+0x6bb/0x11d0 net/netlink/afnetlink.c:1983 sockrecvmsgnosec net/socket.c:1051 [inline] sockrecvmsg+0x22f/0x280 net/socket.c:1073 _sysrecvfrom+0x246/0x3d0 net/socket.c:2267 _dosysrecvfrom net/socket.c:2285 [inline] _sesysrecvfrom net/socket.c:2281 [inline] _x64sysrecvfrom+0xde/0x100 net/socket.c:2281 dosyscallx64 arch/x86/entry/common.c:52 [inline] dosyscall64+0xf3/0x230 arch/x86/entry/common.c:83 entrySYSCALL64afterhwframe+0x77/0x7f RIP: 0033:0x7ff37dd17a79