In the Linux kernel, the following vulnerability has been resolved:
x86/MCE: Always save CS register on AMD Zen IF Poison errors
The Instruction Fetch (IF) units on current AMD Zen-based systems do not guarantee a synchronous #MC is delivered for poison consumption errors. Therefore, MCG_STATUS[EIPV|RIPV] will not be set. However, the microarchitecture does guarantee that the exception is delivered within the same context. In other words, the exact rIP is not known, but the context is known to not have changed.
There is no architecturally-defined method to determine this behavior.
The Code Segment (CS) register is always valid on such IF unit poison errors regardless of the value of MCG_STATUS[EIPV|RIPV].
Add a quirk to save the CS register for poison consumption from the IF unit banks.
This is needed to properly determine the context of the error. Otherwise, the severity grading function will assume the context is IN_KERNEL due to the m->cs value being 0 (the initialized value). This leads to unnecessary kernel panics on data poison errors due to the kernel believing the poison consumption occurred in kernel context.
{
"cna_assigner": "Linux",
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2023/53xxx/CVE-2023-53438.json"
}[
{
"digest": {
"threshold": 0.9,
"line_hashes": [
"204348519736252909517552759384939777141",
"69827502345934996978567397248141809318",
"261153291101555452943000934573085932542",
"170601798884326558455564693157091537092",
"35708714536446863315831221816137745546",
"91004472246097867207249945032804606856",
"41439383721300536746903679332141109573",
"317274505037203917950273726357828430609",
"230943017259379147025473432749950264884"
]
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@4240e2ebe67941ce2c4f5c866c3af4b5ac7a0c67",
"deprecated": false,
"id": "CVE-2023-53438-01b6a36f",
"signature_type": "Line",
"target": {
"file": "arch/x86/kernel/cpu/mce/core.c"
},
"signature_version": "v1"
},
{
"digest": {
"threshold": 0.9,
"line_hashes": [
"204348519736252909517552759384939777141",
"69827502345934996978567397248141809318",
"261153291101555452943000934573085932542",
"170601798884326558455564693157091537092",
"35708714536446863315831221816137745546",
"91004472246097867207249945032804606856",
"41439383721300536746903679332141109573",
"317274505037203917950273726357828430609",
"230943017259379147025473432749950264884"
]
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@6eac3965901489ae114a664a78cd2d1415d1af5c",
"deprecated": false,
"id": "CVE-2023-53438-08e5902e",
"signature_type": "Line",
"target": {
"file": "arch/x86/kernel/cpu/mce/core.c"
},
"signature_version": "v1"
},
{
"digest": {
"threshold": 0.9,
"line_hashes": [
"204348519736252909517552759384939777141",
"69827502345934996978567397248141809318",
"261153291101555452943000934573085932542",
"170601798884326558455564693157091537092",
"35708714536446863315831221816137745546",
"91004472246097867207249945032804606856",
"41439383721300536746903679332141109573",
"317274505037203917950273726357828430609",
"230943017259379147025473432749950264884"
]
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@2e01bdf7203c383e9d8489d9f963c52d6c81e4db",
"deprecated": false,
"id": "CVE-2023-53438-0bf9818d",
"signature_type": "Line",
"target": {
"file": "arch/x86/kernel/cpu/mce/core.c"
},
"signature_version": "v1"
},
{
"digest": {
"length": 579.0,
"function_hash": "120501530954407670977694769894473071759"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@6eac3965901489ae114a664a78cd2d1415d1af5c",
"deprecated": false,
"id": "CVE-2023-53438-0c17a773",
"signature_type": "Function",
"target": {
"function": "mce_no_way_out",
"file": "arch/x86/kernel/cpu/mce/core.c"
},
"signature_version": "v1"
},
{
"digest": {
"length": 1622.0,
"function_hash": "6191336922286804008895645113059937062"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@2e01bdf7203c383e9d8489d9f963c52d6c81e4db",
"deprecated": false,
"id": "CVE-2023-53438-1443cc92",
"signature_type": "Function",
"target": {
"function": "__mcheck_cpu_apply_quirks",
"file": "arch/x86/kernel/cpu/mce/core.c"
},
"signature_version": "v1"
},
{
"digest": {
"threshold": 0.9,
"line_hashes": [
"332293128639477388895709174356667434897",
"43796412952707398818450086320095841707",
"40860779479087711157275074110436290291",
"305368235558878056164078954806103443511",
"66352664209352742285422126102290687857",
"189376489130798798591053296742720846845",
"244642083104091170398526953391259909228"
]
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@4240e2ebe67941ce2c4f5c866c3af4b5ac7a0c67",
"deprecated": false,
"id": "CVE-2023-53438-1967a83f",
"signature_type": "Line",
"target": {
"file": "arch/x86/kernel/cpu/mce/internal.h"
},
"signature_version": "v1"
},
{
"digest": {
"length": 1622.0,
"function_hash": "6191336922286804008895645113059937062"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@e6e6a5f50f58fadec397b23064b7e4830292863d",
"deprecated": false,
"id": "CVE-2023-53438-2d806415",
"signature_type": "Function",
"target": {
"function": "__mcheck_cpu_apply_quirks",
"file": "arch/x86/kernel/cpu/mce/core.c"
},
"signature_version": "v1"
},
{
"digest": {
"threshold": 0.9,
"line_hashes": [
"204348519736252909517552759384939777141",
"69827502345934996978567397248141809318",
"261153291101555452943000934573085932542",
"170601798884326558455564693157091537092",
"35708714536446863315831221816137745546",
"91004472246097867207249945032804606856",
"41439383721300536746903679332141109573",
"317274505037203917950273726357828430609",
"230943017259379147025473432749950264884"
]
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@e6e6a5f50f58fadec397b23064b7e4830292863d",
"deprecated": false,
"id": "CVE-2023-53438-32f5c4f4",
"signature_type": "Line",
"target": {
"file": "arch/x86/kernel/cpu/mce/core.c"
},
"signature_version": "v1"
},
{
"digest": {
"threshold": 0.9,
"line_hashes": [
"332293128639477388895709174356667434897",
"43796412952707398818450086320095841707",
"40860779479087711157275074110436290291",
"305368235558878056164078954806103443511",
"66352664209352742285422126102290687857",
"189376489130798798591053296742720846845",
"244642083104091170398526953391259909228"
]
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@2e01bdf7203c383e9d8489d9f963c52d6c81e4db",
"deprecated": false,
"id": "CVE-2023-53438-6e8e7f2a",
"signature_type": "Line",
"target": {
"file": "arch/x86/kernel/cpu/mce/internal.h"
},
"signature_version": "v1"
},
{
"digest": {
"threshold": 0.9,
"line_hashes": [
"332293128639477388895709174356667434897",
"43796412952707398818450086320095841707",
"40860779479087711157275074110436290291",
"305368235558878056164078954806103443511",
"66352664209352742285422126102290687857",
"189376489130798798591053296742720846845",
"244642083104091170398526953391259909228"
]
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@6eac3965901489ae114a664a78cd2d1415d1af5c",
"deprecated": false,
"id": "CVE-2023-53438-8b800d39",
"signature_type": "Line",
"target": {
"file": "arch/x86/kernel/cpu/mce/internal.h"
},
"signature_version": "v1"
},
{
"digest": {
"length": 579.0,
"function_hash": "120501530954407670977694769894473071759"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@4240e2ebe67941ce2c4f5c866c3af4b5ac7a0c67",
"deprecated": false,
"id": "CVE-2023-53438-9ccb851c",
"signature_type": "Function",
"target": {
"function": "mce_no_way_out",
"file": "arch/x86/kernel/cpu/mce/core.c"
},
"signature_version": "v1"
},
{
"digest": {
"length": 579.0,
"function_hash": "120501530954407670977694769894473071759"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@e6e6a5f50f58fadec397b23064b7e4830292863d",
"deprecated": false,
"id": "CVE-2023-53438-ab652544",
"signature_type": "Function",
"target": {
"function": "mce_no_way_out",
"file": "arch/x86/kernel/cpu/mce/core.c"
},
"signature_version": "v1"
},
{
"digest": {
"length": 579.0,
"function_hash": "120501530954407670977694769894473071759"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@2e01bdf7203c383e9d8489d9f963c52d6c81e4db",
"deprecated": false,
"id": "CVE-2023-53438-b3fa42d4",
"signature_type": "Function",
"target": {
"function": "mce_no_way_out",
"file": "arch/x86/kernel/cpu/mce/core.c"
},
"signature_version": "v1"
},
{
"digest": {
"threshold": 0.9,
"line_hashes": [
"332293128639477388895709174356667434897",
"43796412952707398818450086320095841707",
"40860779479087711157275074110436290291",
"305368235558878056164078954806103443511",
"66352664209352742285422126102290687857",
"189376489130798798591053296742720846845",
"296690038989502735692729349596620182479"
]
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@e6e6a5f50f58fadec397b23064b7e4830292863d",
"deprecated": false,
"id": "CVE-2023-53438-dc58ef56",
"signature_type": "Line",
"target": {
"file": "arch/x86/kernel/cpu/mce/internal.h"
},
"signature_version": "v1"
},
{
"digest": {
"length": 1622.0,
"function_hash": "6191336922286804008895645113059937062"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@4240e2ebe67941ce2c4f5c866c3af4b5ac7a0c67",
"deprecated": false,
"id": "CVE-2023-53438-dfea59a7",
"signature_type": "Function",
"target": {
"function": "__mcheck_cpu_apply_quirks",
"file": "arch/x86/kernel/cpu/mce/core.c"
},
"signature_version": "v1"
},
{
"digest": {
"length": 1622.0,
"function_hash": "6191336922286804008895645113059937062"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@6eac3965901489ae114a664a78cd2d1415d1af5c",
"deprecated": false,
"id": "CVE-2023-53438-eb0eb09f",
"signature_type": "Function",
"target": {
"function": "__mcheck_cpu_apply_quirks",
"file": "arch/x86/kernel/cpu/mce/core.c"
},
"signature_version": "v1"
}
]
"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2023-53438.json"