data built 2026-10-19T13:16:53Z

Look up another CVE · open CVE-2026-80928 in the interactive tracker

CVE-2026-80928

smack: fix cred UAF in smack_file_send_sigiotask()

7.8 EPSS 0.1% AV:L

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

ReleaseStatus VersionWhat this means
Debian 12bookwormfixedDLA-4841-1 · 2026-10-17 · text6.1.190-1Update 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 13trixiefixedDSA-6528-1 · 2026-09-29 · text6.12.111-1Update 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 14forkyfixed7.2.6-1Update the kernel and reboot. Fixed in 7.2.6-1. A running kernel keeps the old code until the machine restarts.
Debian unstablesidfixed7.2.6-1Update 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.12fixedDLA-4817-1 · 2026-10-04 · text6.12.111-1~deb12u1Update 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

IntroducedFixed inCommit
2.6.295.15.221a512366d84e1
2.6.296.1.1887c7fe043f309
2.6.296.6.157f9c7b1f2b9d8
2.6.296.12.109b5bcf3adfa27
2.6.296.18.50ed64aa505875
2.6.297.2.4b791401bf389
2.6.297.3fedc88e38ce9

Debian advisories

AdvisoryDateShipped toDebian
DLA-4841-12026-10-17bookworm 6.1.190-1tracker
DLA-4817-12026-10-04bookworm 6.12.111-1~deb12u1tracker
DSA-6528-12026-09-29trixie 6.12.111-1tracker

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.