In the Linux kernel, the following vulnerability has been resolved:
ACPICA: Avoid undefined behavior: applying zero offset to null pointer
ACPICA commit 770653e3ba67c30a629ca7d12e352d83c2541b1e
Before this change we see the following UBSAN stack trace in Fuchsia:
#0 0x000021e4213b3302 in acpidsinitamlwalk(struct acpiwalkstate*, union acpiparseobject*, struct acpinamespacenode*, u8*, u32, struct acpievaluateinfo*, u8) ../../thirdparty/acpica/source/components/dispatcher/dswstate.c:682 <platform-bus-x86.so>+0x233302 #1.2 0x000020d0f660777f in ubsangetstacktrace() compiler-rt/lib/ubsan/ubsandiag.cpp:41 <libclang_rt.asan.so>+0x3d77f #1.1 0x000020d0f660777f in maybeprintstacktrace() compiler-rt/lib/ubsan/ubsandiag.cpp:51 <libclang_rt.asan.so>+0x3d77f #1 0x000020d0f660777f in ~scopedreport() compiler-rt/lib/ubsan/ubsandiag.cpp:387 <libclang_rt.asan.so>+0x3d77f #2 0x000020d0f660b96d in handlepointeroverflowimpl() compiler-rt/lib/ubsan/ubsanhandlers.cpp:809 <libclang_rt.asan.so>+0x4196d #3 0x000020d0f660b50d in compiler-rt/lib/ubsan/ubsanhandlers.cpp:815 <libclang_rt.asan.so>+0x4150d #4 0x000021e4213b3302 in acpidsinitamlwalk(struct acpiwalkstate*, union acpiparseobject*, struct acpinamespacenode*, u8*, u32, struct acpievaluateinfo*, u8) ../../thirdparty/acpica/source/components/dispatcher/dswstate.c:682 <platform-bus-x86.so>+0x233302 #5 0x000021e4213e2369 in acpidscallcontrolmethod(struct acpithreadstate*, struct acpiwalkstate*, union acpiparseobject*) ../../thirdparty/acpica/source/components/dispatcher/dsmethod.c:605 <platform-bus-x86.so>+0x262369 #6 0x000021e421437fac in acpipsparseaml(struct acpiwalkstate*) ../../thirdparty/acpica/source/components/parser/psparse.c:550 <platform-bus-x86.so>+0x2b7fac #7 0x000021e4214464d2 in acpipsexecutemethod(struct acpievaluateinfo*) ../../thirdparty/acpica/source/components/parser/psxface.c:244 <platform-bus-x86.so>+0x2c64d2 #8 0x000021e4213aa052 in acpinsevaluate(struct acpievaluateinfo*) ../../thirdparty/acpica/source/components/namespace/nseval.c:250 <platform-bus-x86.so>+0x22a052 #9 0x000021e421413dd8 in acpinsinitonedevice(acpihandle, u32, void*, void**) ../../thirdparty/acpica/source/components/namespace/nsinit.c:735 <platform-bus-x86.so>+0x293dd8 #10 0x000021e421429e98 in acpinswalknamespace(acpiobjecttype, acpihandle, u32, u32, acpiwalkcallback, acpiwalkcallback, void*, void**) ../../thirdparty/acpica/source/components/namespace/nswalk.c:298 <platform-bus-x86.so>+0x2a9e98 #11 0x000021e4214131ac in acpinsinitializedevices(u32) ../../thirdparty/acpica/source/components/namespace/nsinit.c:268 <platform-bus-x86.so>+0x2931ac #12 0x000021e42147c40d in acpiinitializeobjects(u32) ../../thirdparty/acpica/source/components/utilities/utxfinit.c:304 <platform-bus-x86.so>+0x2fc40d #13 0x000021e42126d603 in acpi::acpiimpl::initializeacpi(acpi::acpi_impl*) ../../src/devices/board/lib/acpi/acpi-impl.cc:224 <platform-bus-x86.so>+0xed603
Add a simple check that avoids incrementing a pointer by zero, but otherwise behaves as before. Note that our findings are against ACPICA 20221020, but the same code exists on master.
{
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2023/53xxx/CVE-2023-53182.json",
"cna_assigner": "Linux"
}[
{
"target": {
"file": "drivers/acpi/acpica/dswstate.c"
},
"digest": {
"line_hashes": [
"78426281967179722206858553744470334696",
"328678450950026662196794963030718012949",
"3460470923939250962708031527473722000",
"110958762550307897152045249471444782709",
"259221973883468843961873962968107408378",
"328710879001108878896993485956244401727"
],
"threshold": 0.9
},
"signature_type": "Line",
"signature_version": "v1",
"deprecated": false,
"id": "CVE-2023-53182-0c373b3f",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@35465c7a91c6b46e7c14d0c01d0084349a38ce51"
},
{
"target": {
"file": "drivers/acpi/acpica/dswstate.c",
"function": "acpi_ds_init_aml_walk"
},
"digest": {
"length": 1378.0,
"function_hash": "244694695716045526898393786758644581368"
},
"signature_type": "Function",
"signature_version": "v1",
"deprecated": false,
"id": "CVE-2023-53182-10460787",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@3a7a4aa3958ce0c4938a443d65001debe9a9af9c"
},
{
"target": {
"file": "drivers/acpi/acpica/dswstate.c",
"function": "acpi_ds_init_aml_walk"
},
"digest": {
"length": 1378.0,
"function_hash": "244694695716045526898393786758644581368"
},
"signature_type": "Function",
"signature_version": "v1",
"deprecated": false,
"id": "CVE-2023-53182-22d9cf87",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@05bb0167c80b8f93c6a4e0451b7da9b96db990c2"
},
{
"target": {
"file": "drivers/acpi/acpica/dswstate.c",
"function": "acpi_ds_init_aml_walk"
},
"digest": {
"length": 1378.0,
"function_hash": "244694695716045526898393786758644581368"
},
"signature_type": "Function",
"signature_version": "v1",
"deprecated": false,
"id": "CVE-2023-53182-2e23aac8",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@16359bc02c093b0862e31739c07673340a2106a6"
},
{
"target": {
"file": "drivers/acpi/acpica/dswstate.c",
"function": "acpi_ds_init_aml_walk"
},
"digest": {
"length": 1378.0,
"function_hash": "244694695716045526898393786758644581368"
},
"signature_type": "Function",
"signature_version": "v1",
"deprecated": false,
"id": "CVE-2023-53182-31dcdf3b",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@5a2d0dcb47b16f84880a59571eab8a004e3236d7"
},
{
"target": {
"file": "drivers/acpi/acpica/dswstate.c",
"function": "acpi_ds_init_aml_walk"
},
"digest": {
"length": 1378.0,
"function_hash": "244694695716045526898393786758644581368"
},
"signature_type": "Function",
"signature_version": "v1",
"deprecated": false,
"id": "CVE-2023-53182-34ac1126",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@35465c7a91c6b46e7c14d0c01d0084349a38ce51"
},
{
"target": {
"file": "drivers/acpi/acpica/dswstate.c",
"function": "acpi_ds_init_aml_walk"
},
"digest": {
"length": 1378.0,
"function_hash": "244694695716045526898393786758644581368"
},
"signature_type": "Function",
"signature_version": "v1",
"deprecated": false,
"id": "CVE-2023-53182-39c376a2",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@8c4a7163b7f1495e3cc58bec7a4100de6612cde9"
},
{
"target": {
"file": "drivers/acpi/acpica/dswstate.c"
},
"digest": {
"line_hashes": [
"78426281967179722206858553744470334696",
"328678450950026662196794963030718012949",
"3460470923939250962708031527473722000",
"110958762550307897152045249471444782709",
"259221973883468843961873962968107408378",
"328710879001108878896993485956244401727"
],
"threshold": 0.9
},
"signature_type": "Line",
"signature_version": "v1",
"deprecated": false,
"id": "CVE-2023-53182-4a24c921",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@3a7a4aa3958ce0c4938a443d65001debe9a9af9c"
},
{
"target": {
"file": "drivers/acpi/acpica/dswstate.c"
},
"digest": {
"line_hashes": [
"78426281967179722206858553744470334696",
"328678450950026662196794963030718012949",
"3460470923939250962708031527473722000",
"110958762550307897152045249471444782709",
"259221973883468843961873962968107408378",
"328710879001108878896993485956244401727"
],
"threshold": 0.9
},
"signature_type": "Line",
"signature_version": "v1",
"deprecated": false,
"id": "CVE-2023-53182-6f575567",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@16359bc02c093b0862e31739c07673340a2106a6"
},
{
"target": {
"file": "drivers/acpi/acpica/dswstate.c"
},
"digest": {
"line_hashes": [
"78426281967179722206858553744470334696",
"328678450950026662196794963030718012949",
"3460470923939250962708031527473722000",
"110958762550307897152045249471444782709",
"259221973883468843961873962968107408378",
"328710879001108878896993485956244401727"
],
"threshold": 0.9
},
"signature_type": "Line",
"signature_version": "v1",
"deprecated": false,
"id": "CVE-2023-53182-7786e7f4",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@710e09fd116e2fa53e319a416ad4e4f8027682b6"
},
{
"target": {
"file": "drivers/acpi/acpica/dswstate.c",
"function": "acpi_ds_init_aml_walk"
},
"digest": {
"length": 1378.0,
"function_hash": "244694695716045526898393786758644581368"
},
"signature_type": "Function",
"signature_version": "v1",
"deprecated": false,
"id": "CVE-2023-53182-79108143",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@710e09fd116e2fa53e319a416ad4e4f8027682b6"
},
{
"target": {
"file": "drivers/acpi/acpica/dswstate.c"
},
"digest": {
"line_hashes": [
"78426281967179722206858553744470334696",
"328678450950026662196794963030718012949",
"3460470923939250962708031527473722000",
"110958762550307897152045249471444782709",
"259221973883468843961873962968107408378",
"328710879001108878896993485956244401727"
],
"threshold": 0.9
},
"signature_type": "Line",
"signature_version": "v1",
"deprecated": false,
"id": "CVE-2023-53182-9733d8e2",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@5a2d0dcb47b16f84880a59571eab8a004e3236d7"
},
{
"target": {
"file": "drivers/acpi/acpica/dswstate.c"
},
"digest": {
"line_hashes": [
"78426281967179722206858553744470334696",
"328678450950026662196794963030718012949",
"3460470923939250962708031527473722000",
"110958762550307897152045249471444782709",
"259221973883468843961873962968107408378",
"328710879001108878896993485956244401727"
],
"threshold": 0.9
},
"signature_type": "Line",
"signature_version": "v1",
"deprecated": false,
"id": "CVE-2023-53182-b77431f2",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@8c4a7163b7f1495e3cc58bec7a4100de6612cde9"
},
{
"target": {
"file": "drivers/acpi/acpica/dswstate.c"
},
"digest": {
"line_hashes": [
"78426281967179722206858553744470334696",
"328678450950026662196794963030718012949",
"3460470923939250962708031527473722000",
"110958762550307897152045249471444782709",
"259221973883468843961873962968107408378",
"328710879001108878896993485956244401727"
],
"threshold": 0.9
},
"signature_type": "Line",
"signature_version": "v1",
"deprecated": false,
"id": "CVE-2023-53182-cf50cfa0",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@3048c6b84a51e4ba4a89385ed218d19a670edd47"
},
{
"target": {
"file": "drivers/acpi/acpica/dswstate.c"
},
"digest": {
"line_hashes": [
"78426281967179722206858553744470334696",
"328678450950026662196794963030718012949",
"3460470923939250962708031527473722000",
"110958762550307897152045249471444782709",
"259221973883468843961873962968107408378",
"328710879001108878896993485956244401727"
],
"threshold": 0.9
},
"signature_type": "Line",
"signature_version": "v1",
"deprecated": false,
"id": "CVE-2023-53182-f18bb218",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@05bb0167c80b8f93c6a4e0451b7da9b96db990c2"
},
{
"target": {
"file": "drivers/acpi/acpica/dswstate.c",
"function": "acpi_ds_init_aml_walk"
},
"digest": {
"length": 1378.0,
"function_hash": "244694695716045526898393786758644581368"
},
"signature_type": "Function",
"signature_version": "v1",
"deprecated": false,
"id": "CVE-2023-53182-f7ef14fb",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@3048c6b84a51e4ba4a89385ed218d19a670edd47"
}
]
"https://storage.googleapis.com/osv-test-cve-osv-conversion/osv-output/CVE-2023-53182.json"