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]
Vendor | Product | Version | CPE |
---|---|---|---|
linux | linux_kernel | * | cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* |
[
{
"product": "Linux",
"vendor": "Linux",
"defaultStatus": "unaffected",
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"programFiles": [
"net/caif/caif_socket.c"
],
"versions": [
{
"version": "bece7b2398d0",
"lessThan": "d9d646acad2c",
"status": "affected",
"versionType": "git"
},
{
"version": "bece7b2398d0",
"lessThan": "5c6d8e2f7187",
"status": "affected",
"versionType": "git"
},
{
"version": "bece7b2398d0",
"lessThan": "ffe31dd70b70",
"status": "affected",
"versionType": "git"
},
{
"version": "bece7b2398d0",
"lessThan": "452c3ed7bf63",
"status": "affected",
"versionType": "git"
},
{
"version": "bece7b2398d0",
"lessThan": "9413c0abb57f",
"status": "affected",
"versionType": "git"
},
{
"version": "bece7b2398d0",
"lessThan": "1582a02fecff",
"status": "affected",
"versionType": "git"
},
{
"version": "bece7b2398d0",
"lessThan": "d4c7797ab151",
"status": "affected",
"versionType": "git"
},
{
"version": "bece7b2398d0",
"lessThan": "991e634360f2",
"status": "affected",
"versionType": "git"
}
]
},
{
"product": "Linux",
"vendor": "Linux",
"defaultStatus": "affected",
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"programFiles": [
"net/caif/caif_socket.c"
],
"versions": [
{
"version": "2.6.35",
"status": "affected"
},
{
"version": "0",
"lessThan": "2.6.35",
"status": "unaffected",
"versionType": "custom"
},
{
"version": "4.4.277",
"lessThanOrEqual": "4.4.*",
"status": "unaffected",
"versionType": "custom"
},
{
"version": "4.9.277",
"lessThanOrEqual": "4.9.*",
"status": "unaffected",
"versionType": "custom"
},
{
"version": "4.14.241",
"lessThanOrEqual": "4.14.*",
"status": "unaffected",
"versionType": "custom"
},
{
"version": "4.19.199",
"lessThanOrEqual": "4.19.*",
"status": "unaffected",
"versionType": "custom"
},
{
"version": "5.4.136",
"lessThanOrEqual": "5.4.*",
"status": "unaffected",
"versionType": "custom"
},
{
"version": "5.10.54",
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"versionType": "custom"
},
{
"version": "5.13.6",
"lessThanOrEqual": "5.13.*",
"status": "unaffected",
"versionType": "custom"
},
{
"version": "5.14",
"lessThanOrEqual": "*",
"status": "unaffected",
"versionType": "original_commit_for_fix"
}
]
}
]
git.kernel.org/stable/c/1582a02fecffcee306663035a295e28e1c4aaaff
git.kernel.org/stable/c/452c3ed7bf63721b07bc2238ed1261bb26027e85
git.kernel.org/stable/c/5c6d8e2f7187b8e45a18c27acb7a3885f03ee3db
git.kernel.org/stable/c/9413c0abb57f70a953b1116318d6aa478013c35d
git.kernel.org/stable/c/991e634360f2622a683b48dfe44fe6d9cb765a09
git.kernel.org/stable/c/d4c7797ab1517515f0d08b3bc1c6b48883889c54
git.kernel.org/stable/c/d9d646acad2c3590e189bb5d5c86ab8bd8a2dfc3
git.kernel.org/stable/c/ffe31dd70b70a40cd6b21b78c1713a23e021843a