Look up another CVE · open CVE-2026-80928 in the interactive tracker
CVE-2026-80928
smack: fix cred UAF in smack_file_send_sigiotask()
Published 2026-09-11 (37 days ago) by the Linux kernel CNA. Subsystem security/smack. Debian urgency: not yet assigned.
Debian does not build this code. The per-release build detail is under "Where it lives" below.
What to do, per Debian release
Debian's own status for CVE-2026-80928 in every release this site tracks, and what each one means in practice. Every status below is the one the Debian Security Team publishes for this CVE. source
| Release | Status | Version | What this means |
|---|---|---|---|
| Debian 12bookworm | fixedDLA-4841-1 · 2026-10-17 · text | 6.1.190-1 | Update the kernel and reboot. DLA-4841-1 shipped the fix on 2026-10-17, in 6.1.190-1. A running kernel keeps the old code until the machine restarts. |
| Debian 13trixie | fixedDSA-6528-1 · 2026-09-29 · text | 6.12.111-1 | Update the kernel and reboot. DSA-6528-1 shipped the fix on 2026-09-29, in 6.12.111-1. A running kernel keeps the old code until the machine restarts. |
| Debian 14forky | fixed | 7.2.6-1 | Update the kernel and reboot. Fixed in 7.2.6-1. A running kernel keeps the old code until the machine restarts. |
| Debian unstablesid | fixed | 7.2.6-1 | Update the kernel and reboot. Fixed in 7.2.6-1. A running kernel keeps the old code until the machine restarts. |
| Debian 12bookworm · linux-6.12 | fixedDLA-4817-1 · 2026-10-04 · text | 6.12.111-1~deb12u1 | Update the kernel and reboot. DLA-4817-1 shipped the fix on 2026-10-04, in 6.12.111-1~deb12u1. A running kernel keeps the old code until the machine restarts. |
The vulnerability
What the bug is
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.
Where it lives
The fix touches these files. If the subsystem is one you do not use, the practical exposure is lower, though the package is still the vulnerable one.
security/smack/smack_lsm.c
- What this is
- SMACK SECURITY MODULEMAINTAINERS section matched on security/smack/ · linux-security-module@vger.kernel.org · Maintained
- Kernel module
- none to look for. The file would have gone into smack, and Debian does not compile it into that module, so finding smack in lsmod would say nothing about this CVE.
Check it on the machine
grep -w CONFIG_SECURITY_SMACK /boot/config-$(uname -r)Reads the booted kernel's own configuration, on the machine and nowhere else. =y is built in, =m is a module, and an is not set line means the code is not there.
Show whether Debian builds this, per release
Debian does not build this code. In 5 releases below, every kernel flavour Debian publishes has the switch off, so the vulnerable file is compiled into no kernel binary Debian ships.
- bookworm, trixie, forky, sid, bookworm · linux-6.12n
- n
- not enabled on any flavour - this release does not build the code
- Build switch
- CONFIG_SECURITY_SMACK
From the configuration Debian publishes for every kernel flavour it builds. It covers only the architectures Debian ships a linux-config package for, and nothing about a kernel you built yourself. Debian's own status above stays authoritative about the source package.MAINTAINERS kbuild Makefiles Debian linux-config packages
Signals
- Published
- 2026-09-11 (37 days ago)source
- CVSS
- 7.8 high
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:Hsource recompute it - Attack vector
- local (AV:L)source
- EPSS
- 0.13%, higher than 2.3% of all CVEssource
- CISA KEV
- not listedthe KEV catalogue
- Debian urgency
- not yet assignedsource
- Subsystem
- security/smack
Upstream fixes
The versions the CNA records as introducing and fixing this, and the commit for each. source
| Introduced | Fixed in | Commit |
|---|---|---|
| 2.6.29 | 5.15.221 | a512366d84e1 |
| 2.6.29 | 6.1.188 | 7c7fe043f309 |
| 2.6.29 | 6.6.157 | f9c7b1f2b9d8 |
| 2.6.29 | 6.12.109 | b5bcf3adfa27 |
| 2.6.29 | 6.18.50 | ed64aa505875 |
| 2.6.29 | 7.2.4 | b791401bf389 |
| 2.6.29 | 7.3 | fedc88e38ce9 |
Debian advisories
| Advisory | Date | Shipped to | Debian |
|---|---|---|---|
| DLA-4841-1 | 2026-10-17 | bookworm 6.1.190-1 | tracker |
| DLA-4817-1 | 2026-10-04 | bookworm 6.12.111-1~deb12u1 | tracker |
| DSA-6528-1 | 2026-09-29 | trixie 6.12.111-1 | tracker |
Why the CNA scored it this way
Quoted from the kernel CNA's own scoring file, word for word. A highlighted metric carries the most severe value CVSS v3.1 defines for it, which is what pushes the score up. source
- AV:LAttack vector, local
- Reachable only via local syscalls: fcntl(F_SETOWN)/O_ASYNC on a pipe or socket, then write or MSG_OOB so kill_fasync()/send_sigurg() call smack_file_send_sigiotask(). Same SIGIO path as CVE-2026-72183 (AV:L); a remote peer can raise SIGIO only on a socket the local attacker already owns.
- AC:LAttack complexity, low
- The attacker controls both sides of the race: one thread loops faccessat() so access_override_creds() installs a non_rcu subjective cred that revert_creds()+put_cred() frees without RCU, while another thread writes the pipe or sends OOB to fire SIGIO. The fix author reproduced a KASAN cred UAF; the window is retryable.
- PR:LPrivileges required, low
- pipe(), fcntl(F_SETOWN/F_SETFL), write(), and faccessat() need no capabilities. An unprivileged user namespace (unshare(CLONE_NEWUSER)) makes access() install the non_rcu override (non-root uid with caps, or real uid != fsuid). The UAF is kernel cred memory on the attacker’s own task.
- UI:NUser interaction, none
- No victim action is required. The attacker arms fowner on their own file, overrides their own subjective creds via faccessat(), and triggers SIGIO themselves.
- S:UScope, unchanged
- This is in-kernel cred use-after-free leading to local privilege escalation within the kernel security authority. It is not a VM escape, IOMMU bypass, or userspace sandbox boundary crossing.
- C:HConfidentiality impact, high
- This is a use-after-free of struct cred. After free, the cred slab can be sprayed so cred->security and the derived smack_known are attacker-controlled, enabling arbitrary kernel reads through smk_access() and smack_log(). Kernel UAF scores C:H.
- I:HIntegrity impact, high
- The same sprayed cred/task_smack/smack_known objects yield a fake-object primitive on the SIGIO path, exploitable for control-flow hijacking and arbitrary write as with other kernel cred UAFs. Kernel UAF scores I:H.
- A:HAvailability impact, high
- The fix author confirmed a KASAN use-after-free of struct cred in smack_file_send_sigiotask(). Dereferencing the freed cred on the SIGIO path, including from kill_fasync() in interrupt context, causes a kernel oops or panic.