In the Linux kernel, the following vulnerability has been resolved:
net: fix uninit-value in caif_seqpkt_sendmsg
When nr_segs equal to zero in iovec_from_user, the object msg->msg_iter.iov is uninit stack memory in caif_seqpkt_sendmsg which is defined in ___sys_sendmsg. So we cann't just judge msg->msg_iter.iov->base directlly. We can use nr_segs to judge msg in caif_seqpkt_sendmsg whether has data buffers.
===================================================== BUG: KMSAN: uninit-value in caif_seqpkt_sendmsg+0x693/0xf60 net/caif/caif_socket.c:542 Call Trace: __dump_stack lib/dump_stack.c:77 [inline] dump_stack+0x1c9/0x220 lib/dump_stack.c:118 kmsan_report+0xf7/0x1e0 mm/kmsan/kmsan_report.c:118 __msan_warning+0x58/0xa0 mm/kmsan/kmsan_instr.c:215 caif_seqpkt_sendmsg+0x693/0xf60 net/caif/caif_socket.c:542 sock_sendmsg_nosec net/socket.c:652 [inline] sock_sendmsg net/socket.c:672 [inline] ____sys_sendmsg+0x12b6/0x1350 net/socket.c:2343 ___sys_sendmsg net/socket.c:2397 [inline] __sys_sendmmsg+0x808/0xc90 net/socket.c:2480 __compat_sys_sendmmsg net/compat.c:656 [inline]
"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2021-47297.json"
[
{
"events": [
{
"introduced": "2.6.35"
},
{
"fixed": "4.4.277"
}
]
},
{
"events": [
{
"introduced": "4.5"
},
{
"fixed": "4.9.277"
}
]
},
{
"events": [
{
"introduced": "4.10"
},
{
"fixed": "4.14.241"
}
]
},
{
"events": [
{
"introduced": "4.15"
},
{
"fixed": "4.19.199"
}
]
},
{
"events": [
{
"introduced": "4.20"
},
{
"fixed": "5.4.136"
}
]
},
{
"events": [
{
"introduced": "5.5"
},
{
"fixed": "5.10.54"
}
]
},
{
"events": [
{
"introduced": "5.11"
},
{
"fixed": "5.13.6"
}
]
},
{
"events": [
{
"introduced": "0"
},
{
"last_affected": "5.14-rc1"
}
]
},
{
"events": [
{
"introduced": "0"
},
{
"last_affected": "5.14-rc2"
}
]
}
]