keys: Pin request_key_auth payload in instantiate paths
- Published
- Last modified
- Where the record stands: published, rejected by its publisher, or superseded by another id.What do these mean? →
- published
- Whether CISA lists it in its Known Exploited Vulnerabilities catalog: proof that attackers are using it.What do these mean? →
- Not listed in CISA KEV
- Fix
- Fixed in 5.10.260, 5.15.211, 6.1.177, 6.6.144, 6.12.95, and 2 more
- Whether working attack code is public (Exploit-DB, Metasploit, Nuclei or GitHub). Public code makes attacks easier.What do these mean? →
- None on Exploit-DB, Metasploit or GitHub
- Exploitation: none
- Automatable: no
- Technical impact: total
Summary
In the Linux kernel, the following vulnerability has been resolved: keys: Pin request_key_auth payload in instantiate paths A: request_key() B: KEYCTL_INSTANTIATE_IOV ================ ========================= create auth key store rka in auth key wait for helper get auth key load rka from auth key copy user payload sleep on #PF helper completed detach and free rka destroy auth key wake up use rka->target_key USE-AFTER-FREE Give request_key_auth payloads a refcount. Take a payload reference while authkey->sem stabilizes the payload and revocation state. Hold that reference across the instantiate and reject paths. Drop the auth key owning reference from revoke and destroy. [jarkko: Replaced the first two paragraphs of text with an actual concurrency scenario.]
Timeline
- CVE published
- CISA SSVC assessment
Exploitation: none · Automatable: no · Technical impact: total
- Record last updated
Affected versions
- Linux Linux
From b5f545c880a2a47947ba2118b2509644ab7a2969 · fixed in d8274181b0f28d450b42489723a5ba81042158d7; From b5f545c880a2a47947ba2118b2509644ab7a2969 · fixed in 4982bfabce6b33b3c9eddb4fb900fe5568b7cf91; From b5f545c880a2a47947ba2118b2509644ab7a2969 · fixed in 708709c65a1832a99b0eef8ae46e343ddaca3d06; From b5f545c880a2a47947ba2118b2509644ab7a2969 · fixed in 35ab4db86774d82389e4b9559e26ab7f68d8e395; From b5f545c880a2a47947ba2118b2509644ab7a2969 · fixed in f9b68632ac93cc742f2e411021c4dbfe452ea0c2; From b5f545c880a2a47947ba2118b2509644ab7a2969 · fixed in 7216ce8cb12fee44e309503955bb83806b106129; From b5f545c880a2a47947ba2118b2509644ab7a2969 · fixed in 83c0a1cb296d955d5f4d1f0bd8a769ba8ed8c29f; From b5f545c880a2a47947ba2118b2509644ab7a2969 · fixed in fd15b457a86939c38aa12116adabd8ff686c5e51
- Linux Linux
2.6.16
- KernelLinux
From 2.6.16 · fixed in 5.10.260; From 5.11.0 · fixed in 5.15.211; From 5.16.0 · fixed in 6.1.177; From 6.2.0 · fixed in 6.6.144; From 6.7.0 · fixed in 6.12.95; From 6.13.0 · fixed in 6.18.38; From 6.19.0 · fixed in 7.1.3
References 8
git.kernel.org
- stable/c/d8274181b0f28d450b42489723a5ba81042158d7
- stable/c/4982bfabce6b33b3c9eddb4fb900fe5568b7cf91
- stable/c/708709c65a1832a99b0eef8ae46e343ddaca3d06
- stable/c/35ab4db86774d82389e4b9559e26ab7f68d8e395
- stable/c/f9b68632ac93cc742f2e411021c4dbfe452ea0c2
- stable/c/7216ce8cb12fee44e309503955bb83806b106129
- stable/c/83c0a1cb296d955d5f4d1f0bd8a769ba8ed8c29f
- stable/c/fd15b457a86939c38aa12116adabd8ff686c5e51