CVE-2026-99222

    Dashboard / Vulnerabilities / CVE-2026-99222

    CVE-2026-99222

    Published: 2 Nov 2026Last Modified: 5 Nov 2026

    Summary: keys: Protect the read method check against type removal

    Details: In the Linux kernel, the following vulnerability has been resolved: keys: Protect the read method check against type removal keyctl_read_key() checks key->type->read without holding key->sem. A reference keeps the key alive, but does not pin the module containing its type. A surviving RxRPC key can therefore be read while AF_RXRPC is being unloaded: KEYCTL_READ task Module unload and key GC ---------------- ------------------------ lookup_user_key() permission / possession checks load key->type af_rxrpc_exit() unregister_key_type() GC: down_write(key->sem) GC: retype to key_type_dead GC: up_write(key->sem) unregister_key_type() returns free_module() read saved type's read member The final access can read freed module storage. The read invocation in __keyctl_read_key() is already protected by key->sem, but the earlier method check is outside that critical section. Move the method check into __keyctl_read_key(), after key_validate() and under its existing read hold on key->sem. The check and invocation then use the same protected type for length queries and every read retry. The GC cannot retype the key until the semaphore is released, and type unregistration waits for that GC pass before the module can be freed. Return -EOPNOTSUPP when validation succeeds and the type has no read method. A temporary buffer may now be allocated before this result; allocation and copying to userspace remain outside the semaphore.

    Affected packages

    Package

    Name:

    Purl:

    Affected ranges

    Type: GIT

    Events:

    Introduced- d3ec10aa95819bff18a0d936b18884c7816d0914

    Affected versions

    v4.14.336
    v4.14.335
    v4.14.334
    v4.14.333
    v4.14.332
    v4.14.331
    v4.14.330
    v4.14.329
    v4.14.328
    v4.14.327
    v4.14.326
    v4.14.325
    v4.14.324
    v4.14.323
    v4.14.322
    v4.14.321
    v4.14.320
    v4.14.319
    v4.14.318
    v4.14.317
    v4.14.316
    v4.14.315
    v4.14.314
    v4.14.313
    v4.14.312
    v4.14.311
    v4.14.310
    v4.14.309
    v4.14.308
    v4.14.307
    v4.14.306
    v4.14.305
    v4.14.304
    v4.14.303
    v4.14.302
    v4.14.301
    v4.14.300
    v4.14.299
    v4.14.298
    v4.14.297
    v4.14.296
    v4.14.295
    v4.14.294
    v4.14.293
    v4.14.292
    v4.14.291
    v4.14.290
    v4.14.289
    v4.14.288
    v4.14.287
    v4.14.286
    v4.14.285
    v4.14.284
    v4.14.283
    v4.14.282
    v4.14.281
    v4.14.280
    v4.14.279
    v4.14.278
    v4.14.277
    v4.14.276
    v4.14.275
    v4.14.274
    v4.14.273
    v4.14.272
    v4.14.271
    v4.14.270
    v4.14.269
    v4.14.268
    v4.14.267
    v4.14.266
    v4.14.265
    v4.14.264
    v4.14.263
    v4.14.262
    v4.14.261
    v4.14.260
    v4.14.259
    v4.14.258
    v4.14.257
    v4.14.256
    v4.14.255
    v4.14.254
    v4.14.253
    v4.14.252
    v4.14.251
    v4.14.250
    v4.14.249
    v4.14.248
    v4.14.247
    v4.14.246
    v4.14.245
    v4.14.244
    v4.14.243
    v4.14.242
    v4.14.241
    v4.14.240
    v4.14.239
    v4.14.238
    v4.14.237
    v4.14.236
    v4.14.235
    v4.14.234
    v4.14.233
    v4.14.232
    v4.14.231
    v4.14.230
    v4.14.229
    v4.14.228
    v4.14.227
    v4.14.226
    v4.14.225
    v4.14.224
    v4.14.223
    v4.14.222
    v4.14.221
    v4.14.220
    v4.14.219
    v4.14.218
    v4.14.217
    v4.14.216
    v4.14.215
    v4.14.214
    v4.14.213
    v4.14.212
    v4.14.211
    v4.14.210
    v4.14.209
    v4.14.208
    v4.14.207
    v4.14.206
    v4.14.205
    v4.14.204
    v4.14.203
    v4.14.202
    v4.14.201
    v4.14.200
    v4.14.199
    v4.14.198
    v4.14.197
    v4.14.196
    v4.14.195
    v4.14.194
    v4.14.193
    v4.14.192
    v4.14.191
    v4.14.190
    v4.14.189
    v4.14.188
    v4.14.187
    v4.14.186
    v4.14.185
    v4.14.184
    v4.14.183
    v4.14.182
    v4.14.181
    v4.14.180
    v4.14.179
    v4.14.178
    v4.14.177

    Common Vulnerability Scoring System

    Attack Vector
    Network
    Adjacent
    Local
    Physical
    Privileges Required
    None
    Low
    High
    User Interaction
    None
    Required
    Scope
    Unchanged
    Changed
    Confidentiality
    None
    Low
    High
    Integrity
    None
    Low
    High
    Availability
    None
    Low
    High
    CVE-2026-99222 | CVE-DB