In the Linux kernel, the following vulnerability has been resolved:
tracing: Fix overflow in get_free_elt()
“tracing_map->next_elt” in get_free_elt() is at risk of overflowing.
Once it overflows, new elements can still be inserted into the tracing_map
even though the maximum number of elements (max_elts
) has been reached.
Continuing to insert elements after the overflow could result in the
tracing_map containing “tracing_map->max_size” elements, leaving no empty
entries.
If any attempt is made to insert an element into a full tracing_map using
__tracing_map_insert()
, it will cause an infinite loop with preemption
disabled, leading to a CPU hang problem.
Fix this by preventing any further increments to “tracing_map->next_elt”
once it reaches “tracing_map->max_elt”.
[
{
"product": "Linux",
"vendor": "Linux",
"defaultStatus": "unaffected",
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"programFiles": [
"kernel/trace/tracing_map.c"
],
"versions": [
{
"version": "08d43a5fa063",
"lessThan": "302ceb625d7b",
"status": "affected",
"versionType": "git"
},
{
"version": "08d43a5fa063",
"lessThan": "d3e4dbc2858f",
"status": "affected",
"versionType": "git"
},
{
"version": "08d43a5fa063",
"lessThan": "eb223bf01e68",
"status": "affected",
"versionType": "git"
},
{
"version": "08d43a5fa063",
"lessThan": "cd10d186a540",
"status": "affected",
"versionType": "git"
},
{
"version": "08d43a5fa063",
"lessThan": "788ea62499b3",
"status": "affected",
"versionType": "git"
},
{
"version": "08d43a5fa063",
"lessThan": "a172c7b22bc2",
"status": "affected",
"versionType": "git"
},
{
"version": "08d43a5fa063",
"lessThan": "236bb4690773",
"status": "affected",
"versionType": "git"
},
{
"version": "08d43a5fa063",
"lessThan": "bcf86c01ca46",
"status": "affected",
"versionType": "git"
}
]
},
{
"product": "Linux",
"vendor": "Linux",
"defaultStatus": "affected",
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"programFiles": [
"kernel/trace/tracing_map.c"
],
"versions": [
{
"version": "4.7",
"status": "affected"
},
{
"version": "0",
"lessThan": "4.7",
"status": "unaffected",
"versionType": "custom"
},
{
"version": "4.19.320",
"lessThanOrEqual": "4.19.*",
"status": "unaffected",
"versionType": "custom"
},
{
"version": "5.4.282",
"lessThanOrEqual": "5.4.*",
"status": "unaffected",
"versionType": "custom"
},
{
"version": "5.10.224",
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"versionType": "custom"
},
{
"version": "5.15.165",
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"versionType": "custom"
},
{
"version": "6.1.105",
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"versionType": "custom"
},
{
"version": "6.6.46",
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"versionType": "custom"
},
{
"version": "6.10.5",
"lessThanOrEqual": "6.10.*",
"status": "unaffected",
"versionType": "custom"
},
{
"version": "6.11",
"lessThanOrEqual": "*",
"status": "unaffected",
"versionType": "original_commit_for_fix"
}
]
}
]
git.kernel.org/stable/c/236bb4690773ab6869b40bedc7bc8d889e36f9d6
git.kernel.org/stable/c/302ceb625d7b990db205a15e371f9a71238de91c
git.kernel.org/stable/c/788ea62499b3c18541fd6d621964d8fafbc4aec5
git.kernel.org/stable/c/a172c7b22bc2feaf489cfc6d6865f7237134fdf8
git.kernel.org/stable/c/bcf86c01ca4676316557dd482c8416ece8c2e143
git.kernel.org/stable/c/cd10d186a5409a1fe6e976df82858e9773a698da
git.kernel.org/stable/c/d3e4dbc2858fe85d1dbd2e72a9fc5dea988b5c18
git.kernel.org/stable/c/eb223bf01e688dfe37e813c8988ee11c8c9f8d0a