{
    "dataType": "CVE_RECORD",
    "dataVersion": "5.2",
    "cveMetadata": {
        "cveId": "CVE-2026-99222",
        "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "state": "PUBLISHED",
        "assignerShortName": "Linux",
        "dateReserved": "2026-09-25T10:25:14.402Z",
        "datePublished": "2026-11-02T16:06:32.844Z",
        "dateUpdated": "2026-11-03T19:12:56.503Z"
    },
    "containers": {
        "cna": {
            "providerMetadata": {
                "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
                "shortName": "Linux",
                "dateUpdated": "2026-11-03T19:12:56.503Z"
            },
            "descriptions": [
                {
                    "lang": "en",
                    "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nkeys: Protect the read method check against type removal\n\nkeyctl_read_key() checks key->type->read without holding key->sem.\nA reference keeps the key alive, but does not pin the module containing\nits type. A surviving RxRPC key can therefore be read while AF_RXRPC\nis being unloaded:\n\n  KEYCTL_READ task                    Module unload and key GC\n  ----------------                   ------------------------\n  lookup_user_key()\n  permission / possession checks\n  load key->type\n                                     af_rxrpc_exit()\n                                       unregister_key_type()\n                                         GC: down_write(key->sem)\n                                         GC: retype to key_type_dead\n                                         GC: up_write(key->sem)\n                                       unregister_key_type() returns\n                                     free_module()\n  read saved type's read member\n\nThe final access can read freed module storage. The read invocation in\n__keyctl_read_key() is already protected by key->sem, but the earlier\nmethod check is outside that critical section.\n\nMove the method check into __keyctl_read_key(), after key_validate() and\nunder its existing read hold on key->sem. The check and invocation then\nuse the same protected type for length queries and every read retry.\nThe GC cannot retype the key until the semaphore is released, and type\nunregistration waits for that GC pass before the module can be freed.\n\nReturn -EOPNOTSUPP when validation succeeds and the type has no read\nmethod. A temporary buffer may now be allocated before this result;\nallocation and copying to userspace remain outside the semaphore."
                }
            ],
            "affected": [
                {
                    "product": "Linux",
                    "vendor": "Linux",
                    "defaultStatus": "unaffected",
                    "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
                    "programFiles": [
                        "security/keys/keyctl.c"
                    ],
                    "versions": [
                        {
                            "version": "d3ec10aa95819bff18a0d936b18884c7816d0914",
                            "lessThan": "e5f830ae6611cddbfc504c43f14155f60b63206a",
                            "status": "affected",
                            "versionType": "git"
                        },
                        {
                            "version": "d3ec10aa95819bff18a0d936b18884c7816d0914",
                            "lessThan": "ff11cfed85cbfdd7fe1185ebd18d2c7a8353ad8d",
                            "status": "affected",
                            "versionType": "git"
                        },
                        {
                            "version": "d3ec10aa95819bff18a0d936b18884c7816d0914",
                            "lessThan": "1486caee47b4909f52835a957c3293e970113e44",
                            "status": "affected",
                            "versionType": "git"
                        },
                        {
                            "version": "d3ec10aa95819bff18a0d936b18884c7816d0914",
                            "lessThan": "ff44f1b303aa76a818d898e85c56ed4852c031e2",
                            "status": "affected",
                            "versionType": "git"
                        },
                        {
                            "version": "d3ec10aa95819bff18a0d936b18884c7816d0914",
                            "lessThan": "6a36e2a1a017c51f8a8ad2a094566bad97c46a9b",
                            "status": "affected",
                            "versionType": "git"
                        },
                        {
                            "version": "d3ec10aa95819bff18a0d936b18884c7816d0914",
                            "lessThan": "3edc064069d07e7d37359fcb4d03d3bab15ee3ab",
                            "status": "affected",
                            "versionType": "git"
                        },
                        {
                            "version": "d3ec10aa95819bff18a0d936b18884c7816d0914",
                            "lessThan": "cf1af7df80e38bf58bd74c2cccce32fcbd1a596a",
                            "status": "affected",
                            "versionType": "git"
                        },
                        {
                            "version": "d3ec10aa95819bff18a0d936b18884c7816d0914",
                            "lessThan": "e2a2deda08d91644f5e30c17d267b1cdc5f124b2",
                            "status": "affected",
                            "versionType": "git"
                        },
                        {
                            "version": "d3ec10aa95819bff18a0d936b18884c7816d0914",
                            "lessThan": "925c84e3cc21caf09de92d9bcafab0147790debf",
                            "status": "affected",
                            "versionType": "git"
                        },
                        {
                            "version": "7fa67aa30509ad0da72ac0f757aa76e53c0ea3de",
                            "status": "affected",
                            "versionType": "git"
                        },
                        {
                            "version": "18779eac17b5df9dff57138d07631573553a41d4",
                            "status": "affected",
                            "versionType": "git"
                        },
                        {
                            "version": "f1afcf9488fc45765e20e2047d3b776981900e0b",
                            "status": "affected",
                            "versionType": "git"
                        },
                        {
                            "version": "212d3adb1af4e34acb158d6c6def370016a1011d",
                            "status": "affected",
                            "versionType": "git"
                        },
                        {
                            "version": "4.14.177",
                            "lessThan": "4.15",
                            "status": "affected",
                            "versionType": "semver"
                        },
                        {
                            "version": "4.19.118",
                            "lessThan": "4.20",
                            "status": "affected",
                            "versionType": "semver"
                        },
                        {
                            "version": "5.4.35",
                            "lessThan": "5.5",
                            "status": "affected",
                            "versionType": "semver"
                        },
                        {
                            "version": "5.6.7",
                            "lessThan": "5.7",
                            "status": "affected",
                            "versionType": "semver"
                        }
                    ]
                },
                {
                    "product": "Linux",
                    "vendor": "Linux",
                    "defaultStatus": "affected",
                    "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
                    "programFiles": [
                        "security/keys/keyctl.c"
                    ],
                    "versions": [
                        {
                            "version": "5.7",
                            "status": "affected"
                        },
                        {
                            "version": "0",
                            "lessThan": "5.7",
                            "status": "unaffected",
                            "versionType": "semver"
                        },
                        {
                            "version": "5.10.273",
                            "lessThanOrEqual": "5.10.*",
                            "status": "unaffected",
                            "versionType": "semver"
                        },
                        {
                            "version": "5.15.224",
                            "lessThanOrEqual": "5.15.*",
                            "status": "unaffected",
                            "versionType": "semver"
                        },
                        {
                            "version": "6.1.191",
                            "lessThanOrEqual": "6.1.*",
                            "status": "unaffected",
                            "versionType": "semver"
                        },
                        {
                            "version": "6.6.161",
                            "lessThanOrEqual": "6.6.*",
                            "status": "unaffected",
                            "versionType": "semver"
                        },
                        {
                            "version": "6.12.115",
                            "lessThanOrEqual": "6.12.*",
                            "status": "unaffected",
                            "versionType": "semver"
                        },
                        {
                            "version": "6.18.60",
                            "lessThanOrEqual": "6.18.*",
                            "status": "unaffected",
                            "versionType": "semver"
                        },
                        {
                            "version": "7.2.14",
                            "lessThanOrEqual": "7.2.*",
                            "status": "unaffected",
                            "versionType": "semver"
                        },
                        {
                            "version": "7.3.1",
                            "lessThanOrEqual": "7.3.*",
                            "status": "unaffected",
                            "versionType": "semver"
                        },
                        {
                            "version": "7.4-rc1",
                            "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.7",
                                    "versionEndExcluding": "5.10.273"
                                },
                                {
                                    "vulnerable": true,
                                    "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                                    "versionStartIncluding": "5.7",
                                    "versionEndExcluding": "5.15.224"
                                },
                                {
                                    "vulnerable": true,
                                    "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                                    "versionStartIncluding": "5.7",
                                    "versionEndExcluding": "6.1.191"
                                },
                                {
                                    "vulnerable": true,
                                    "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                                    "versionStartIncluding": "5.7",
                                    "versionEndExcluding": "6.6.161"
                                },
                                {
                                    "vulnerable": true,
                                    "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                                    "versionStartIncluding": "5.7",
                                    "versionEndExcluding": "6.12.115"
                                },
                                {
                                    "vulnerable": true,
                                    "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                                    "versionStartIncluding": "5.7",
                                    "versionEndExcluding": "6.18.60"
                                },
                                {
                                    "vulnerable": true,
                                    "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                                    "versionStartIncluding": "5.7",
                                    "versionEndExcluding": "7.2.14"
                                },
                                {
                                    "vulnerable": true,
                                    "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                                    "versionStartIncluding": "5.7",
                                    "versionEndExcluding": "7.3.1"
                                },
                                {
                                    "vulnerable": true,
                                    "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                                    "versionStartIncluding": "5.7",
                                    "versionEndExcluding": "7.4-rc1"
                                },
                                {
                                    "vulnerable": true,
                                    "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                                    "versionStartIncluding": "4.14.177"
                                },
                                {
                                    "vulnerable": true,
                                    "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                                    "versionStartIncluding": "4.19.118"
                                },
                                {
                                    "vulnerable": true,
                                    "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                                    "versionStartIncluding": "5.4.35"
                                },
                                {
                                    "vulnerable": true,
                                    "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                                    "versionStartIncluding": "5.6.7"
                                }
                            ]
                        }
                    ]
                }
            ],
            "references": [
                {
                    "url": "https://git.kernel.org/stable/c/e5f830ae6611cddbfc504c43f14155f60b63206a"
                },
                {
                    "url": "https://git.kernel.org/stable/c/ff11cfed85cbfdd7fe1185ebd18d2c7a8353ad8d"
                },
                {
                    "url": "https://git.kernel.org/stable/c/1486caee47b4909f52835a957c3293e970113e44"
                },
                {
                    "url": "https://git.kernel.org/stable/c/ff44f1b303aa76a818d898e85c56ed4852c031e2"
                },
                {
                    "url": "https://git.kernel.org/stable/c/6a36e2a1a017c51f8a8ad2a094566bad97c46a9b"
                },
                {
                    "url": "https://git.kernel.org/stable/c/3edc064069d07e7d37359fcb4d03d3bab15ee3ab"
                },
                {
                    "url": "https://git.kernel.org/stable/c/cf1af7df80e38bf58bd74c2cccce32fcbd1a596a"
                },
                {
                    "url": "https://git.kernel.org/stable/c/e2a2deda08d91644f5e30c17d267b1cdc5f124b2"
                },
                {
                    "url": "https://git.kernel.org/stable/c/925c84e3cc21caf09de92d9bcafab0147790debf"
                }
            ],
            "title": "keys: Protect the read method check against type removal",
            "x_generator": {
                "engine": "bippy-1.2.0"
            }
        }
    }
}