CVE-2026-74483

Source
https://cve.org/CVERecord?id=CVE-2026-74483
Import Source
https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-74483.json
JSON Data
https://api.osv.dev/v1/vulns/CVE-2026-74483
Downstream
Published
2026-08-15T12:27:15.709Z
Modified
2026-08-18T03:30:52.015832974Z
Summary
binfmt_misc: don't leak the user namespace when the mount fails
Details

In the Linux kernel, the following vulnerability has been resolved:

binfmt_misc: don't leak the user namespace when the mount fails

bmgettree() takes a reference to the user namespace and hands it to gettreekeyed() as the sget key. sgetfc() moves that reference into sb->sfsinfo and clears fc->sfsinfo, so from that point on the superblock owns it and bmfree() doesn't see it anymore.

The superblock drops it in ->putsuper(). But genericshutdownsuper() only calls ->putsuper() from inside the if (sb->sroot) branch, so nothing releases it when bmfill_super() fails:

  • The kzallocobj() failure leaves sroot NULL and the whole branch is skipped.

  • A simplefillsuper() failure in the file loop leaves sroot set, but sop still points at simplesuperoperations, which has no ->putsuper(). bmfillsuper() installs sops only once simplefillsuper() returned success, and installing it earlier wouldn't help either because simplefillsuper() overwrites s_op.

Either way vfsgetsuper() calls deactivatelockedsuper() and the reference is gone for good. binfmtmisc mounts are available in a user namespace and both the inode and the dentry cache are SLABACCOUNT, so an unprivileged caller under a tight memory cgroup can fail simplefillsuper() on demand and leak one user namespace per attempt.

Drop the reference in ->killsb() instead, which runs unconditionally, the same way nfsd and rpcpipefs release their keyed sfsinfo.

That also stops ->putsuper() from clearing sfsinfo while the superblock is still on @fssupers. genericshutdownsuper() leaves it there on purpose so that sgetfc() keeps finding it until killsb() has run, but a NULL sfsinfo makes testkeyedsuper() miss it, so a concurrent mount for the same user namespace skips the grab_super() wait and creates a second superblock for a namespace that is still being torn down.

Database specific
{
    "cna_assigner": "Linux",
    "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/74xxx/CVE-2026-74483.json"
}
References

Affected packages

Git / git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git

Affected ranges

Type
GIT
Repo
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Events
Introduced
21ca59b365c091d583f36ac753eaa8baf947be6f
Fixed
87a4eb9bbb3497f749bbac612af22ddaa62d7b0d
Fixed
b8206f516fe7cbe785cf44bf09c17c438d7c3cad

Database specific

source
"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-74483.json"

Linux / Kernel

Package

Name
Kernel

Affected ranges

Type
ECOSYSTEM
Events
Introduced
6.7.0
Fixed
7.1.8

Database specific

source
"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-74483.json"