In the Linux kernel, the following vulnerability has been resolved:
KVM: x86: smm: number of GPRs in the SMRAM image depends on the image format
On 64 bit host, if the guest doesn't have X86FEATURELM, KVM will access 16 gprs to 32-bit smram image, causing out-ouf-bound ram access.
On 32 bit host, the rsmloadstate64/entersmmsavestate_64 is compiled out, thus access overflow can't happen.
{
"cna_assigner": "Linux",
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2022/49xxx/CVE-2022-49883.json"
}"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2022-49883.json"
[
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@696db303e54f7352623d9f640e6c51d8fa9d5588",
"target": {
"file": "arch/x86/kvm/emulate.c",
"function": "rsm_load_state_64"
},
"deprecated": false,
"id": "CVE-2022-49883-1737a9fc",
"digest": {
"length": 2247.0,
"function_hash": "327275372153740590862775264269118499774"
},
"signature_version": "v1",
"signature_type": "Function"
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@696db303e54f7352623d9f640e6c51d8fa9d5588",
"target": {
"file": "arch/x86/kvm/emulate.c"
},
"deprecated": false,
"id": "CVE-2022-49883-2342ca7f",
"digest": {
"threshold": 0.9,
"line_hashes": [
"247577838113337167530171535241824480823",
"202622373811172532544175407197280705274",
"326722986163876071195506798055392284557",
"60430402952708493974593057731667839693",
"330176185389115277390582203835759913167",
"228914982629089165182436921916505642140",
"17880444483187927132318162508014749139",
"191762382834723215329524756693590782875"
]
},
"signature_version": "v1",
"signature_type": "Line"
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@a7ebfbea0f52550d7cdf12c38f3f5eaa7b2b6494",
"target": {
"file": "arch/x86/kvm/emulate.c",
"function": "rsm_load_state_32"
},
"deprecated": false,
"id": "CVE-2022-49883-4358b087",
"digest": {
"length": 1920.0,
"function_hash": "270519376355289887941581162814274516478"
},
"signature_version": "v1",
"signature_type": "Function"
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@a7ebfbea0f52550d7cdf12c38f3f5eaa7b2b6494",
"target": {
"file": "arch/x86/kvm/emulate.c"
},
"deprecated": false,
"id": "CVE-2022-49883-48f08966",
"digest": {
"threshold": 0.9,
"line_hashes": [
"247577838113337167530171535241824480823",
"202622373811172532544175407197280705274",
"326722986163876071195506798055392284557",
"60430402952708493974593057731667839693",
"330176185389115277390582203835759913167",
"228914982629089165182436921916505642140",
"17880444483187927132318162508014749139",
"191762382834723215329524756693590782875"
]
},
"signature_version": "v1",
"signature_type": "Line"
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@a7ebfbea0f52550d7cdf12c38f3f5eaa7b2b6494",
"target": {
"file": "arch/x86/kvm/emulate.c",
"function": "rsm_load_state_64"
},
"deprecated": false,
"id": "CVE-2022-49883-a659e8d9",
"digest": {
"length": 2247.0,
"function_hash": "327275372153740590862775264269118499774"
},
"signature_version": "v1",
"signature_type": "Function"
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@696db303e54f7352623d9f640e6c51d8fa9d5588",
"target": {
"file": "arch/x86/kvm/emulate.c",
"function": "rsm_load_state_32"
},
"deprecated": false,
"id": "CVE-2022-49883-fac6d0a7",
"digest": {
"length": 1920.0,
"function_hash": "270519376355289887941581162814274516478"
},
"signature_version": "v1",
"signature_type": "Function"
}
]