In the Linux kernel, the following vulnerability has been resolved:
x86/mtrr: Check if fixed MTRRs exist before saving them
MTRRs have an obsolete fixed variant for fine grained caching control
of the 640K-1MB region that uses separate MSRs. This fixed variant has
a separate capability bit in the MTRR capability MSR.
So far all x86 CPUs which support MTRR have this separate bit set, so it
went unnoticed that mtrr_save_state() does not check the capability bit
before accessing the fixed MTRR MSRs.
Though on a CPU that does not support the fixed MTRR capability this
results in a #GP. The #GP itself is harmless because the RDMSR fault is
handled gracefully, but results in a WARN_ON().
Add the missing capability check to prevent this.
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": [
"arch/x86/kernel/cpu/mtrr/mtrr.c"
],
"versions": [
{
"version": "2b1f6278d77c",
"lessThan": "34f36e6ee5bd",
"status": "affected",
"versionType": "git"
},
{
"version": "2b1f6278d77c",
"lessThan": "06c1de44d378",
"status": "affected",
"versionType": "git"
},
{
"version": "2b1f6278d77c",
"lessThan": "450b6b22acda",
"status": "affected",
"versionType": "git"
},
{
"version": "2b1f6278d77c",
"lessThan": "ca7d00c5656d",
"status": "affected",
"versionType": "git"
},
{
"version": "2b1f6278d77c",
"lessThan": "8aa79dfb216b",
"status": "affected",
"versionType": "git"
},
{
"version": "2b1f6278d77c",
"lessThan": "8a90d3fc7c24",
"status": "affected",
"versionType": "git"
},
{
"version": "2b1f6278d77c",
"lessThan": "388f1c954019",
"status": "affected",
"versionType": "git"
},
{
"version": "2b1f6278d77c",
"lessThan": "919f18f961c0",
"status": "affected",
"versionType": "git"
}
]
},
{
"product": "Linux",
"vendor": "Linux",
"defaultStatus": "affected",
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"programFiles": [
"arch/x86/kernel/cpu/mtrr/mtrr.c"
],
"versions": [
{
"version": "2.6.22",
"status": "affected"
},
{
"version": "0",
"lessThan": "2.6.22",
"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/06c1de44d378ec5439db17bf476507d68589bfe9
git.kernel.org/stable/c/34f36e6ee5bd7eff8b2adcd9fcaef369f752d82e
git.kernel.org/stable/c/388f1c954019f253a8383f7eb733f38d541e10b6
git.kernel.org/stable/c/450b6b22acdaac67a18eaf5ed498421ffcf10051
git.kernel.org/stable/c/8a90d3fc7c24608548d3a750671f9dac21d1a462
git.kernel.org/stable/c/8aa79dfb216b865e96ff890bc4ea71650f9bc8d7
git.kernel.org/stable/c/919f18f961c03d6694aa726c514184f2311a4614
git.kernel.org/stable/c/ca7d00c5656d1791e28369919e3e10febe9c3b16