{
    "dataType": "CVE_RECORD",
    "dataVersion": "5.2",
    "cveMetadata": {
        "cveId": "CVE-2022-48790",
        "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "state": "PUBLISHED",
        "assignerShortName": "Linux",
        "dateReserved": "2024-07-16T11:38:08.893Z",
        "datePublished": "2024-07-16T11:43:46.556Z",
        "dateUpdated": "2026-08-05T08:52:20.684Z"
    },
    "containers": {
        "cna": {
            "providerMetadata": {
                "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
                "shortName": "Linux",
                "dateUpdated": "2026-08-05T08:52:20.684Z"
            },
            "descriptions": [
                {
                    "lang": "en",
                    "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnvme: fix a possible use-after-free in controller reset during load\n\nUnlike .queue_rq, in .submit_async_event drivers may not check the ctrl\nreadiness for AER submission. This may lead to a use-after-free\ncondition that was observed with nvme-tcp.\n\nThe race condition may happen in the following scenario:\n1. driver executes its reset_ctrl_work\n2. -> nvme_stop_ctrl - flushes ctrl async_event_work\n3. ctrl sends AEN which is received by the host, which in turn\n   schedules AEN handling\n4. teardown admin queue (which releases the queue socket)\n5. AEN processed, submits another AER, calling the driver to submit\n6. driver attempts to send the cmd\n==> use-after-free\n\nIn order to fix that, add ctrl state check to validate the ctrl\nis actually able to accept the AER submission.\n\nThis addresses the above race in controller resets because the driver\nduring teardown should:\n1. change ctrl state to RESETTING\n2. flush async_event_work (as well as other async work elements)\n\nSo after 1,2, any other AER command will find the\nctrl state to be RESETTING and bail out without submitting the AER."
                }
            ],
            "metrics": [
                {
                    "cvssV3_1": {
                        "version": "3.1",
                        "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
                        "baseScore": 9.8,
                        "baseSeverity": "CRITICAL"
                    },
                    "scenarios": [
                        {
                            "lang": "en",
                            "value": "AV:N - The UAF is reached when the nvme-tcp host processes an Asynchronous Event Notification CQE from a remote NVMe-oF target over TCP and then submits a new AER on the admin-queue socket; a malicious or compromised target (or on-path attacker on the unauthenticated NVMe/TCP session) delivers that AEN and induces controller reset/error recovery entirely over the network.\nAC:L - The remote target controls both sides of the race—when to send the AEN and when to force reset/error recovery (bad CQE, FW_ACT AEN, disconnect)—and the driver's automatic reconnect gives unlimited retries, so success does not depend on conditions outside the attacker's influence.\nPR:N - The attacker acts as the NVMe-oF target peer and needs no account, capability, or other privilege on the victim host; AENs and reset-inducing traffic are accepted on an already-established fabrics connection without host-side credentials.\nUI:N - NVMe-oF initiator connections are persistent system configuration (boot autoconnect / discovery AEN re-connect), and reset/error recovery plus reconnect run automatically, so no additional user or administrator action is required at attack time.\nS:U - The use-after-free corrupts kernel memory within the same host kernel security authority; it does not cross a VM, IOMMU, or other security-boundary authority.\nC:H - Use-after-free of the admin-queue socket lets an attacker reclaim and spray the freed sock object, yielding a controllable kernel read primitive over the reclaimed slab (per UAF guidance).\nI:H - Submitting the AER calls sock_sendmsg() on the freed queue->sock, so reclaiming that object provides a kernel control-flow/write primitive suitable for arbitrary modification and code execution.\nA:H - Any use of the released socket during AER submission can oops/panic the host kernel, and the attacker can repeat the sequence across automatic reconnects for a reliable denial of service."
                        }
                    ]
                }
            ],
            "affected": [
                {
                    "product": "Linux",
                    "vendor": "Linux",
                    "defaultStatus": "unaffected",
                    "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
                    "programFiles": [
                        "drivers/nvme/host/core.c"
                    ],
                    "versions": [
                        {
                            "version": "ad22c355b707a8d8d48e282aadc01c0b0604b2e9",
                            "lessThan": "a25e460fbb0340488d119fb2e28fe3f829b7417e",
                            "status": "affected",
                            "versionType": "git"
                        },
                        {
                            "version": "ad22c355b707a8d8d48e282aadc01c0b0604b2e9",
                            "lessThan": "70356b756a58704e5c8818cb09da5854af87e765",
                            "status": "affected",
                            "versionType": "git"
                        },
                        {
                            "version": "ad22c355b707a8d8d48e282aadc01c0b0604b2e9",
                            "lessThan": "0ead57ceb21bbf15963b4874c2ac67143455382f",
                            "status": "affected",
                            "versionType": "git"
                        },
                        {
                            "version": "ad22c355b707a8d8d48e282aadc01c0b0604b2e9",
                            "lessThan": "e043fb5a0336ee74614e26f0d9f36f1f5bb6d606",
                            "status": "affected",
                            "versionType": "git"
                        },
                        {
                            "version": "ad22c355b707a8d8d48e282aadc01c0b0604b2e9",
                            "lessThan": "9e956a2596ae276124ef0d96829c013dd0faf861",
                            "status": "affected",
                            "versionType": "git"
                        },
                        {
                            "version": "ad22c355b707a8d8d48e282aadc01c0b0604b2e9",
                            "lessThan": "0fa0f99fc84e41057cbdd2efbfe91c6b2f47dd9d",
                            "status": "affected",
                            "versionType": "git"
                        }
                    ]
                },
                {
                    "product": "Linux",
                    "vendor": "Linux",
                    "defaultStatus": "affected",
                    "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
                    "programFiles": [
                        "drivers/nvme/host/core.c"
                    ],
                    "versions": [
                        {
                            "version": "4.15",
                            "status": "affected"
                        },
                        {
                            "version": "0",
                            "lessThan": "4.15",
                            "status": "unaffected",
                            "versionType": "semver"
                        },
                        {
                            "version": "4.19.231",
                            "lessThanOrEqual": "4.19.*",
                            "status": "unaffected",
                            "versionType": "semver"
                        },
                        {
                            "version": "5.4.181",
                            "lessThanOrEqual": "5.4.*",
                            "status": "unaffected",
                            "versionType": "semver"
                        },
                        {
                            "version": "5.10.102",
                            "lessThanOrEqual": "5.10.*",
                            "status": "unaffected",
                            "versionType": "semver"
                        },
                        {
                            "version": "5.15.25",
                            "lessThanOrEqual": "5.15.*",
                            "status": "unaffected",
                            "versionType": "semver"
                        },
                        {
                            "version": "5.16.11",
                            "lessThanOrEqual": "5.16.*",
                            "status": "unaffected",
                            "versionType": "semver"
                        },
                        {
                            "version": "5.17",
                            "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": "4.15",
                                    "versionEndExcluding": "4.19.231"
                                },
                                {
                                    "vulnerable": true,
                                    "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                                    "versionStartIncluding": "4.15",
                                    "versionEndExcluding": "5.4.181"
                                },
                                {
                                    "vulnerable": true,
                                    "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                                    "versionStartIncluding": "4.15",
                                    "versionEndExcluding": "5.10.102"
                                },
                                {
                                    "vulnerable": true,
                                    "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                                    "versionStartIncluding": "4.15",
                                    "versionEndExcluding": "5.15.25"
                                },
                                {
                                    "vulnerable": true,
                                    "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                                    "versionStartIncluding": "4.15",
                                    "versionEndExcluding": "5.16.11"
                                },
                                {
                                    "vulnerable": true,
                                    "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                                    "versionStartIncluding": "4.15",
                                    "versionEndExcluding": "5.17"
                                }
                            ]
                        }
                    ]
                }
            ],
            "references": [
                {
                    "url": "https://git.kernel.org/stable/c/a25e460fbb0340488d119fb2e28fe3f829b7417e"
                },
                {
                    "url": "https://git.kernel.org/stable/c/70356b756a58704e5c8818cb09da5854af87e765"
                },
                {
                    "url": "https://git.kernel.org/stable/c/0ead57ceb21bbf15963b4874c2ac67143455382f"
                },
                {
                    "url": "https://git.kernel.org/stable/c/e043fb5a0336ee74614e26f0d9f36f1f5bb6d606"
                },
                {
                    "url": "https://git.kernel.org/stable/c/9e956a2596ae276124ef0d96829c013dd0faf861"
                },
                {
                    "url": "https://git.kernel.org/stable/c/0fa0f99fc84e41057cbdd2efbfe91c6b2f47dd9d"
                }
            ],
            "title": "nvme: fix a possible use-after-free in controller reset during load",
            "x_generator": {
                "engine": "bippy-1.2.0"
            }
        },
        "adp": [
            {
                "providerMetadata": {
                    "orgId": "af854a3a-2127-422b-91ae-364da2661108",
                    "shortName": "CVE",
                    "dateUpdated": "2024-08-03T15:25:01.558Z"
                },
                "title": "CVE Program Container",
                "references": [
                    {
                        "url": "https://git.kernel.org/stable/c/a25e460fbb0340488d119fb2e28fe3f829b7417e",
                        "tags": [
                            "x_transferred"
                        ]
                    },
                    {
                        "url": "https://git.kernel.org/stable/c/70356b756a58704e5c8818cb09da5854af87e765",
                        "tags": [
                            "x_transferred"
                        ]
                    },
                    {
                        "url": "https://git.kernel.org/stable/c/0ead57ceb21bbf15963b4874c2ac67143455382f",
                        "tags": [
                            "x_transferred"
                        ]
                    },
                    {
                        "url": "https://git.kernel.org/stable/c/e043fb5a0336ee74614e26f0d9f36f1f5bb6d606",
                        "tags": [
                            "x_transferred"
                        ]
                    },
                    {
                        "url": "https://git.kernel.org/stable/c/9e956a2596ae276124ef0d96829c013dd0faf861",
                        "tags": [
                            "x_transferred"
                        ]
                    },
                    {
                        "url": "https://git.kernel.org/stable/c/0fa0f99fc84e41057cbdd2efbfe91c6b2f47dd9d",
                        "tags": [
                            "x_transferred"
                        ]
                    }
                ]
            },
            {
                "metrics": [
                    {
                        "other": {
                            "type": "ssvc",
                            "content": {
                                "id": "CVE-2022-48790",
                                "role": "CISA Coordinator",
                                "options": [
                                    {
                                        "Exploitation": "none"
                                    },
                                    {
                                        "Automatable": "no"
                                    },
                                    {
                                        "Technical Impact": "partial"
                                    }
                                ],
                                "version": "2.0.3",
                                "timestamp": "2024-09-10T16:59:38.803415Z"
                            }
                        }
                    }
                ],
                "title": "CISA ADP Vulnrichment",
                "providerMetadata": {
                    "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
                    "shortName": "CISA-ADP",
                    "dateUpdated": "2024-09-11T17:34:15.849Z"
                }
            }
        ]
    }
}