In the Linux kernel, the following vulnerability has been resolved:
iio: mma8452: Fix trigger reference couting
The mma8452 driver directly assigns a trigger to the struct iio_dev. The
IIO core when done using this trigger will call iio_trigger_put()
to drop
the reference count by 1.
Without the matching iio_trigger_get()
in the driver the reference count
can reach 0 too early, the trigger gets freed while still in use and a
use-after-free occurs.
Fix this by getting a reference to the trigger before assigning it to the
IIO device.
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": [
"drivers/iio/accel/mma8452.c"
],
"versions": [
{
"version": "ae6d9ce05691",
"lessThan": "094d513b78b1",
"status": "affected",
"versionType": "git"
},
{
"version": "ae6d9ce05691",
"lessThan": "fb75cc4740d8",
"status": "affected",
"versionType": "git"
},
{
"version": "ae6d9ce05691",
"lessThan": "794c0898f6bf",
"status": "affected",
"versionType": "git"
},
{
"version": "ae6d9ce05691",
"lessThan": "f5deab10ced3",
"status": "affected",
"versionType": "git"
},
{
"version": "ae6d9ce05691",
"lessThan": "acf0088ac073",
"status": "affected",
"versionType": "git"
},
{
"version": "ae6d9ce05691",
"lessThan": "db12d9508536",
"status": "affected",
"versionType": "git"
},
{
"version": "ae6d9ce05691",
"lessThan": "c43517071dfc",
"status": "affected",
"versionType": "git"
},
{
"version": "ae6d9ce05691",
"lessThan": "cd0082235783",
"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/iio/accel/mma8452.c"
],
"versions": [
{
"version": "4.2",
"status": "affected"
},
{
"version": "0",
"lessThan": "4.2",
"status": "unaffected",
"versionType": "custom"
},
{
"version": "4.4.295",
"lessThanOrEqual": "4.4.*",
"status": "unaffected",
"versionType": "custom"
},
{
"version": "4.9.293",
"lessThanOrEqual": "4.9.*",
"status": "unaffected",
"versionType": "custom"
},
{
"version": "4.14.258",
"lessThanOrEqual": "4.14.*",
"status": "unaffected",
"versionType": "custom"
},
{
"version": "4.19.221",
"lessThanOrEqual": "4.19.*",
"status": "unaffected",
"versionType": "custom"
},
{
"version": "5.4.165",
"lessThanOrEqual": "5.4.*",
"status": "unaffected",
"versionType": "custom"
},
{
"version": "5.10.85",
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"versionType": "custom"
},
{
"version": "5.15.8",
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"versionType": "custom"
},
{
"version": "5.16",
"lessThanOrEqual": "*",
"status": "unaffected",
"versionType": "original_commit_for_fix"
}
]
}
]
git.kernel.org/stable/c/094d513b78b1714113bc016684b8142382e071ba
git.kernel.org/stable/c/794c0898f6bf39a458655d5fb4af70ec43a5cfcb
git.kernel.org/stable/c/acf0088ac073ca6e7f4cad6acac112177e08df5e
git.kernel.org/stable/c/c43517071dfc9fce34f8f69dbb98a86017f6b739
git.kernel.org/stable/c/cd0082235783f814241a1c9483fb89e405f4f892
git.kernel.org/stable/c/db12d95085367de8b0223929d1332731024441f1
git.kernel.org/stable/c/f5deab10ced368c807866283f8b79144c4823be8
git.kernel.org/stable/c/fb75cc4740d81264cd5bcb0e17d961d018a8be96