In the Linux kernel, the following vulnerability has been resolved:
drivers/perf: hisi: hns3: Fix out-of-bound access when valid event group
The perf tool allows users to create event groups through following
cmd [1], but the driver does not check whether the array index is out
of bounds when writing data to the event_group array. If the number of
events in an event_group is greater than HNS3_PMU_MAX_HW_EVENTS, the
memory write overflow of event_group array occurs.
Add array index check to fix the possible array out of bounds violation,
and return directly when write new events are written to array bounds.
There are 9 different events in an event_group.
[1] perf stat -e '{pmu/event1/, … ,pmu/event9/}
[
{
"product": "Linux",
"vendor": "Linux",
"defaultStatus": "unaffected",
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"programFiles": [
"drivers/perf/hisilicon/hns3_pmu.c"
],
"versions": [
{
"version": "66637ab137b4",
"lessThan": "3669baf30830",
"status": "affected",
"versionType": "git"
},
{
"version": "66637ab137b4",
"lessThan": "be1fa711e59c",
"status": "affected",
"versionType": "git"
},
{
"version": "66637ab137b4",
"lessThan": "b5120d322763",
"status": "affected",
"versionType": "git"
},
{
"version": "66637ab137b4",
"lessThan": "aa2d3d678895",
"status": "affected",
"versionType": "git"
},
{
"version": "66637ab137b4",
"lessThan": "81bdd60a3d1d",
"status": "affected",
"versionType": "git"
}
]
},
{
"product": "Linux",
"vendor": "Linux",
"defaultStatus": "affected",
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"programFiles": [
"drivers/perf/hisilicon/hns3_pmu.c"
],
"versions": [
{
"version": "6.0",
"status": "affected"
},
{
"version": "0",
"lessThan": "6.0",
"status": "unaffected",
"versionType": "custom"
},
{
"version": "6.1.93",
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"versionType": "custom"
},
{
"version": "6.6.33",
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"versionType": "custom"
},
{
"version": "6.8.12",
"lessThanOrEqual": "6.8.*",
"status": "unaffected",
"versionType": "custom"
},
{
"version": "6.9.3",
"lessThanOrEqual": "6.9.*",
"status": "unaffected",
"versionType": "custom"
},
{
"version": "6.10-rc1",
"lessThanOrEqual": "*",
"status": "unaffected",
"versionType": "original_commit_for_fix"
}
]
}
]
git.kernel.org/stable/c/3669baf308308385a2ab391324abdde5682af5aa
git.kernel.org/stable/c/81bdd60a3d1d3b05e6cc6674845afb1694dd3a0e
git.kernel.org/stable/c/aa2d3d678895c8eedd003f1473f87d3f06fe6ec7
git.kernel.org/stable/c/b5120d322763c15c978bc47beb3b6dff45624304
git.kernel.org/stable/c/be1fa711e59c874d049f592aef1d4685bdd22bdf