cveboard RSS feed

CVE-2026-99040

CVE.org · Published

Historical CVEsJSONAI instructions

Record status
Published
Identifier year (not publication year)
2026
Source publication
Source updated
Imported by cveboard
Source snapshot
cve_2026-10-24_midnight_baseline ·

Plain text

CNA source text (English)

KEYS: Fix add_key() race with keyring restriction

In the Linux kernel, the following vulnerability has been resolved: KEYS: Fix add_key() race with keyring restriction __key_create_or_update() snapshots keyring->restrict_link before taking the destination keyring's semaphore. keyring_restrict() installs a restriction while holding that semaphore. This allows a writer to observe no restriction, wait for the keyring owner to install a reject-all restriction and return successfully, and then link a key using the stale NULL snapshot. The writer only needs write permission on the destination keyring. Move the restrict_link read after __key_link_lock() and __key_link_begin(). The read and the subsequent restriction check are then serialized with restriction installation by keyring->sem. The race was reproduced on v7.2.8 in 19 executions where restriction installation returned before the link completed. All 19 linked the key despite the reject-all restriction. With this change, 312 executions reached the same ordering and every add_key() call failed with -EPERM. The issue was found by manual concurrency analysis assisted by AI-based analysis and independently verified with a QEMU reproducer and kernel instrumentation.

Scoped product and version facts

Fix information unknown; no fixed version is derived here. Missing information does not prove that no fix exists.

Exploitation unknown; this catalogue does not assess exploitation.

Linux

Vendor
Linux
Product
Linux
Platforms
Unknown
Default status
unaffected
Linux · Scoped product and version facts
Version (version)Status (status)Version scheme (versionType)Exclusive end (lessThan)Inclusive end (lessThanOrEqual)Status changes (at → status)
5ac7eace2d00eab5ae0e9fdee63e38aee6001f7caffectedgit305f1828b871dd46bf41addeb6f11d2c162dcb25UnavailableNone listed
5ac7eace2d00eab5ae0e9fdee63e38aee6001f7caffectedgitf99399b48e3edd6851fac34cd329bab9f1f33bafUnavailableNone listed
5ac7eace2d00eab5ae0e9fdee63e38aee6001f7caffectedgit11516a0c402a6c1fa52254aa70d8d65fb921e59eUnavailableNone listed
5ac7eace2d00eab5ae0e9fdee63e38aee6001f7caffectedgitda0b595d8e6e2dd798f6e34e09dc51a13b888514UnavailableNone listed
5ac7eace2d00eab5ae0e9fdee63e38aee6001f7caffectedgitdd3ea3fcba7c75493760cdbccd35f029597e8d5eUnavailableNone listed

Linux

Vendor
Linux
Product
Linux
Platforms
Unknown
Default status
affected
Linux · Scoped product and version facts
Version (version)Status (status)Version scheme (versionType)Exclusive end (lessThan)Inclusive end (lessThanOrEqual)Status changes (at → status)
4.7affectedUnavailableUnavailableUnavailableNone listed
0unaffectedsemver4.7UnavailableNone listed
6.6.160unaffectedsemverUnavailable6.6.*None listed
6.12.113unaffectedsemverUnavailable6.12.*None listed
6.18.57unaffectedsemverUnavailable6.18.*None listed
7.2.11unaffectedsemverUnavailable7.2.*None listed
7.3unaffectedoriginal_commit_for_fixUnavailable*None listed