In the Linux kernel, the following vulnerability has been resolved:
icmp: prevent possible NULL dereferences from icmp_build_probe()
First problem is a double call to __in_dev_get_rcu(), because
the second one could return NULL.
if (__in_dev_get_rcu(dev) && __in_dev_get_rcu(dev)->ifa_list)
Second problem is a read from dev->ip6_ptr with no NULL check:
if (!list_empty(&rcu_dereference(dev->ip6_ptr)->addr_list))
Use the correct RCU API to fix these.
v2: add missing include <net/addrconf.h>
[
{
"product": "Linux",
"vendor": "Linux",
"defaultStatus": "unaffected",
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"programFiles": [
"net/ipv4/icmp.c"
],
"versions": [
{
"version": "d329ea5bd884",
"lessThan": "23b7ee4a8d55",
"status": "affected",
"versionType": "git"
},
{
"version": "d329ea5bd884",
"lessThan": "599c9ad5e1d4",
"status": "affected",
"versionType": "git"
},
{
"version": "d329ea5bd884",
"lessThan": "d68dc711d84f",
"status": "affected",
"versionType": "git"
},
{
"version": "d329ea5bd884",
"lessThan": "3e2979bf080c",
"status": "affected",
"versionType": "git"
},
{
"version": "d329ea5bd884",
"lessThan": "c58e88d49097",
"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/ipv4/icmp.c"
],
"versions": [
{
"version": "5.13",
"status": "affected"
},
{
"version": "0",
"lessThan": "5.13",
"status": "unaffected",
"versionType": "custom"
},
{
"version": "5.15.158",
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"versionType": "custom"
},
{
"version": "6.1.90",
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"versionType": "custom"
},
{
"version": "6.6.30",
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"versionType": "custom"
},
{
"version": "6.8.9",
"lessThanOrEqual": "6.8.*",
"status": "unaffected",
"versionType": "custom"
},
{
"version": "6.9",
"lessThanOrEqual": "*",
"status": "unaffected",
"versionType": "original_commit_for_fix"
}
]
}
]
git.kernel.org/stable/c/23b7ee4a8d559bf38eac7ce5bb2f6ebf76f9c401
git.kernel.org/stable/c/3e2979bf080c40da4f7c93aff8575ab8bc62b767
git.kernel.org/stable/c/599c9ad5e1d43f5c12d869f5fd406ba5d8c55270
git.kernel.org/stable/c/c58e88d49097bd12dfcfef4f075b43f5d5830941
git.kernel.org/stable/c/d68dc711d84fdcf698e5d45308c3ddeede586350