ZeroHour

CVE-2026-80928

niche

Credential use-after-free in Linux kernel Smack LSM (smack_file_send_sigiotask)

CVSS 3.1
7.8 high
EPSS
Published
()
Modified
AI analysis

The Linux kernel's Smack security module contains a use-after-free of the kernel credential structure (struct cred) in smack_file_send_sigiotask(), the hook invoked when a file delivers a SIGIO signal to its owner task. The function incorrectly read the target task's subjective credentials (tsk->cred) in addition to the objective credentials (__task_cred(tsk)); because a task may swap its own ->cred pointer without synchronization (e.g., during a setuid-style credential change), a racing reader can dereference a freed credential object. A local attacker able to trigger repeated SIGIO delivery against a task that is concurrently changing credentials could exploit the race, and the fix author confirmed it is reachable via a KASAN-reported use-after-free, with CVSS 3.1 rating high (7.8, local vector, low privileges required, high confidentiality/integrity/availability impact). Only systems with the Smack LSM compiled in and enabled (CONFIG_SECURITY_SMACK) are affected — Smack is not enabled by default in mainstream distributions. No public proof of concept is known, the flaw is not in the CISA KEV catalog, and there is no indication of in-the-wild exploitation.

What to do: Apply kernel updates from your distribution once the fix is backported, and verify whether Smack is actually in use (check CONFIG_SECURITY_SMACK and your lsm= boot parameter) — systems without Smack enabled are not exposed. If Smack is not required, disable it at boot or in the kernel config to eliminate exposure. Watch kernel logs for KASAN or slab use-after-free reports involving struct cred as an indicator of attempted triggering.

Affected
Linux kernel (Smack LSM, CONFIG_SECURITY_SMACK)
Estimated exposure
nicheunknown; plausibly a small fraction of Linux systems (order of magnitude: tens of thousands of devices or fewer), since Smack must be explicitly enabled — Smack LSM is an opt-in kernel configuration used mainly in niche/embedded deployments rather than default mainstream distributions, so no reliable count exists and the true exposure is likely very small.

Order-of-magnitude estimate by the model from install counts, market share and public scan data it knows; verify before quoting.

Description

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.

Vector
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H

In the news

No ingested article mentions this CVE yet.