{
    "dataType": "CVE_RECORD",
    "dataVersion": "5.2",
    "cveMetadata": {
        "cveId": "CVE-2023-53640",
        "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "state": "PUBLISHED",
        "assignerShortName": "Linux",
        "dateReserved": "2025-10-07T15:16:59.658Z",
        "datePublished": "2025-10-07T15:19:40.348Z",
        "dateUpdated": "2026-08-05T09:15:17.951Z"
    },
    "containers": {
        "cna": {
            "providerMetadata": {
                "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
                "shortName": "Linux",
                "dateUpdated": "2026-08-05T09:15:17.951Z"
            },
            "descriptions": [
                {
                    "lang": "en",
                    "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nASoC: lpass: Fix for KASAN use_after_free out of bounds\n\nWhen we run syzkaller we get below Out of Bounds error.\n\n\"KASAN: slab-out-of-bounds Read in regcache_flat_read\"\n\nBelow is the backtrace of the issue:\n\nBUG: KASAN: slab-out-of-bounds in regcache_flat_read+0x10c/0x110\nRead of size 4 at addr ffffff8088fbf714 by task syz-executor.4/14144\nCPU: 6 PID: 14144 Comm: syz-executor.4 Tainted: G        W\nHardware name: Qualcomm Technologies, Inc. sc7280 CRD platform (rev5+) (DT)\nCall trace:\ndump_backtrace+0x0/0x4ec\nshow_stack+0x34/0x50\ndump_stack_lvl+0xdc/0x11c\nprint_address_description+0x30/0x2d8\nkasan_report+0x178/0x1e4\n__asan_report_load4_noabort+0x44/0x50\nregcache_flat_read+0x10c/0x110\nregcache_read+0xf8/0x5a0\n_regmap_read+0x45c/0x86c\n_regmap_update_bits+0x128/0x290\nregmap_update_bits_base+0xc0/0x15c\nsnd_soc_component_update_bits+0xa8/0x22c\nsnd_soc_component_write_field+0x68/0xd4\ntx_macro_put_dec_enum+0x1d0/0x268\nsnd_ctl_elem_write+0x288/0x474\n\nBy Error checking and checking valid values issue gets rectifies."
                }
            ],
            "metrics": [
                {
                    "cvssV3_1": {
                        "version": "3.1",
                        "vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:L/A:H",
                        "baseScore": 7.3,
                        "baseSeverity": "HIGH"
                    },
                    "scenarios": [
                        {
                            "lang": "en",
                            "value": "AV:L - The vulnerability is reached through an SNDRV_CTL_IOCTL_ELEM_WRITE ioctl on the local ALSA control device /dev/snd/controlC*, targeting the \"TX SMIC MUXn\" DAPM mux control. There is no network-facing path to lpass-tx-macro.\nAC:L - A single ioctl with an attacker-chosen 32-bit enumerated value deterministically produces the out-of-bounds access; the attacker directly selects the offending register offset via val, with no race, timing, or memory-layout precondition.\nPR:L - The attacker needs only an unprivileged local account with access to the sound control device (granted by udev ACL/audio group on desktops, and demonstrated by syzkaller running as an ordinary user process on sc7280); snd_ctl_elem_write performs no capability check.\nUI:N - The attacker triggers the bug entirely from their own process with one ioctl; no victim action, no file open, and no device plug-in is required.\nS:U - The out-of-bounds access and the resulting corruption/crash are confined to the kernel's own memory and the codec device it manages, with no crossing into a different security authority such as a hypervisor or IOMMU boundary.\nC:H - regcache_flat_read() performs an unchecked 4-byte read at an attacker-selected index up to 16383 into a 491-entry array, exposing up to ~63.5 KB of adjacent kernel heap, and the read value is observable as a repeatable oracle since the subsequent write (and its dev_err/return code) only occurs when the leaked word's masked bits differ from tx->dmic_clk_div.\nI:L - The out-of-bounds cache write is blocked by regmap_writeable()'s max_register check, but the u16 truncation of dmic_clk_reg lets the attacker force a 3-bit CDC_TX_SWR_DMIC_CLK_SEL field into any writable TX-macro register and its regcache entry, giving unintended but bounded modification of codec clocking, routing, and mute state.\nA:H - The 64 KB out-of-bounds read can land in an unmapped no-map carveout hole in the arm64 linear map (common on Qualcomm SoCs) causing an oops while card->controls_rwsem is held for write, permanently deadlocking the ALSA control device, and it panics outright on KASAN/hardened builds; stray writes to TX-macro clock/reset registers can additionally wedge the audio hardware."
                        }
                    ]
                }
            ],
            "affected": [
                {
                    "product": "Linux",
                    "vendor": "Linux",
                    "defaultStatus": "unaffected",
                    "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
                    "programFiles": [
                        "sound/soc/codecs/lpass-tx-macro.c"
                    ],
                    "versions": [
                        {
                            "version": "c39667ddcfc516fee084e449179d54430a558298",
                            "lessThan": "8f1512d78b5de928f4616a871e77b58fd546e651",
                            "status": "affected",
                            "versionType": "git"
                        },
                        {
                            "version": "c39667ddcfc516fee084e449179d54430a558298",
                            "lessThan": "8d81d3b0ed3610d24191d24f8e9e20f6775f0cc5",
                            "status": "affected",
                            "versionType": "git"
                        },
                        {
                            "version": "c39667ddcfc516fee084e449179d54430a558298",
                            "lessThan": "f5e61e3fe799ba2fda4320af23d26d28c3302045",
                            "status": "affected",
                            "versionType": "git"
                        },
                        {
                            "version": "c39667ddcfc516fee084e449179d54430a558298",
                            "lessThan": "75e5fab7db0cecb6e16b22c34608f0b40a4c7cd1",
                            "status": "affected",
                            "versionType": "git"
                        }
                    ]
                },
                {
                    "product": "Linux",
                    "vendor": "Linux",
                    "defaultStatus": "affected",
                    "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
                    "programFiles": [
                        "sound/soc/codecs/lpass-tx-macro.c"
                    ],
                    "versions": [
                        {
                            "version": "5.12",
                            "status": "affected"
                        },
                        {
                            "version": "0",
                            "lessThan": "5.12",
                            "status": "unaffected",
                            "versionType": "semver"
                        },
                        {
                            "version": "5.15.114",
                            "lessThanOrEqual": "5.15.*",
                            "status": "unaffected",
                            "versionType": "semver"
                        },
                        {
                            "version": "6.1.31",
                            "lessThanOrEqual": "6.1.*",
                            "status": "unaffected",
                            "versionType": "semver"
                        },
                        {
                            "version": "6.3.5",
                            "lessThanOrEqual": "6.3.*",
                            "status": "unaffected",
                            "versionType": "semver"
                        },
                        {
                            "version": "6.4",
                            "lessThanOrEqual": "*",
                            "status": "unaffected",
                            "versionType": "original_commit_for_fix"
                        }
                    ]
                }
            ],
            "cpeApplicability": [
                {
                    "nodes": [
                        {
                            "operator": "OR",
                            "negate": false,
                            "cpeMatch": [
                                {
                                    "vulnerable": true,
                                    "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                                    "versionStartIncluding": "5.12",
                                    "versionEndExcluding": "5.15.114"
                                },
                                {
                                    "vulnerable": true,
                                    "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                                    "versionStartIncluding": "5.12",
                                    "versionEndExcluding": "6.1.31"
                                },
                                {
                                    "vulnerable": true,
                                    "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                                    "versionStartIncluding": "5.12",
                                    "versionEndExcluding": "6.3.5"
                                },
                                {
                                    "vulnerable": true,
                                    "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                                    "versionStartIncluding": "5.12",
                                    "versionEndExcluding": "6.4"
                                }
                            ]
                        }
                    ]
                }
            ],
            "references": [
                {
                    "url": "https://git.kernel.org/stable/c/8f1512d78b5de928f4616a871e77b58fd546e651"
                },
                {
                    "url": "https://git.kernel.org/stable/c/8d81d3b0ed3610d24191d24f8e9e20f6775f0cc5"
                },
                {
                    "url": "https://git.kernel.org/stable/c/f5e61e3fe799ba2fda4320af23d26d28c3302045"
                },
                {
                    "url": "https://git.kernel.org/stable/c/75e5fab7db0cecb6e16b22c34608f0b40a4c7cd1"
                }
            ],
            "title": "ASoC: lpass: Fix for KASAN use_after_free out of bounds",
            "x_generator": {
                "engine": "bippy-1.2.0"
            }
        }
    }
}