smack: fix cred UAF in smack_file_send_sigiotask()
- 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.15.221, 6.1.188, 6.6.157, 6.12.109, 6.18.50, and 1 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
Summary
In the Linux kernel, the following vulnerability has been resolved: smack: fix cred UAF in smack_file_send_sigiotask() When inspecting the credentials of another task, objective credentials (->real_cred, accessed with __task_cred()) must always be used. Accessing ->cred on a non-current task is forbidden unless that task is being created or destroyed; a task is allowed to change its own ->cred pointer with no synchronization, and changing ->cred should only affect the current syscall. smack_file_send_sigiotask() was accessing both sets of credentials: First tsk->cred, then __task_cred(tsk). Fix it, always access the objective credentials here. I have tested that this bug can lead to a KASAN-reported UAF of struct cred in smack_file_send_sigiotask(), and that this fix prevents the race.
Timeline
- CVE published
- Record last updated
Affected versions
- Linux Linux
From 3b11a1decef07c19443d24ae926982bc8ec9f4c0 · fixed in a512366d84e134a9eefc2cc40eeb6e80e2ec162c; From 3b11a1decef07c19443d24ae926982bc8ec9f4c0 · fixed in 7c7fe043f3099d0d35002b248967f75e55345b93; From 3b11a1decef07c19443d24ae926982bc8ec9f4c0 · fixed in f9c7b1f2b9d8f4176d2632743f51400855978ace; From 3b11a1decef07c19443d24ae926982bc8ec9f4c0 · fixed in b5bcf3adfa27279da4401ab8f1e1a706601a92be; From 3b11a1decef07c19443d24ae926982bc8ec9f4c0 · fixed in ed64aa505875a3b4defd504ee8e59e1949246a62; From 3b11a1decef07c19443d24ae926982bc8ec9f4c0 · fixed in b791401bf389a1546a830d2b381ca60fe94c7870; From 3b11a1decef07c19443d24ae926982bc8ec9f4c0 · fixed in fedc88e38ce979a720cd2de042578cb5df3dc8de
- Linux Linux
2.6.29
- KernelLinux
From 2.6.29 · fixed in 5.15.221; From 5.16.0 · fixed in 6.1.188; From 6.2.0 · fixed in 6.6.157; From 6.7.0 · fixed in 6.12.109; From 6.13.0 · fixed in 6.18.50; From 6.19.0 · fixed in 7.2.4
References 7
git.kernel.org
- stable/c/a512366d84e134a9eefc2cc40eeb6e80e2ec162c
- stable/c/7c7fe043f3099d0d35002b248967f75e55345b93
- stable/c/f9c7b1f2b9d8f4176d2632743f51400855978ace
- stable/c/b5bcf3adfa27279da4401ab8f1e1a706601a92be
- stable/c/ed64aa505875a3b4defd504ee8e59e1949246a62
- stable/c/b791401bf389a1546a830d2b381ca60fe94c7870
- stable/c/fedc88e38ce979a720cd2de042578cb5df3dc8de