CVE-2026-89767
HighCVSS 7.8Exploitation Probability (EPSS)
Low risk6th percentile - higher than 6% of all known CVEs
Summary
In the Linux kernel, ovl_create_real() in overlayfs calls end_creating() twice on the casefold-mismatch error path. This causes the parent directory's i_rwsem to be unlocked twice and the dentry reference to be released twice, leading to a deadlock on subsequent creation operations under that parent. The issue is reachable by an unprivileged user.
Risk Assessment
An unprivileged local user can cause a deadlock that wedges all subsequent file and directory creation under the affected parent in overlayfs, resulting in a denial of service. This affects environments using overlayfs, including containers and layered filesystems.
Recommendation
Update the Linux kernel to a version containing the fix that removes the redundant end_creating() call on the error path. Until patched, restrict the ability for unprivileged users to mount overlayfs.
Related vulnerabilities
- CVE-2026-118477Critical
The ei_git_repo_url parameter in the Git remote configuration endpoint of KaliFast is vulnerable to OS Command Injection. An authenticated attacker can execute arbitrary commands with www-data privileges. Fixed in version 2026061802.
- CVE-2026-114278Critical
The che-machine-exec service constructs a shell command by concatenating user-controlled input (username and namespace fields from /exec/init and /exec/config JSON endpoints) into a double-quoted sh -c invocation without escaping. When authentication is disabled (default), any network-reachable attacker can achieve remote code execution in containers che-machine-exec can access via shell command substitution.
- CVE-2026-112197Critical
The NoviGest Desktop App's Java RMI service lacks authentication in critical functions. An attacker with network access can invoke remote methods without authentication, obtain sensitive credentials, and execute arbitrary SQL queries on PostgreSQL. The elevated privileges of the database account allow these capabilities to be chained to execute operating system commands on the server.
- CVE-2026-103799Critical
Dell PowerProtect Data Domain Management Center contains a Missing Authorization vulnerability. A low-privileged attacker with remote access could exploit it to perform unauthorized system operations on managed systems.
- CVE-2026-103792Critical
Dell PowerProtect Data Domain Management Center contains an SQL Injection vulnerability. A low-privileged attacker with remote access could exploit it to gain unauthorized access to managed systems.
- CVE-2026-103780Critical
Dell PowerProtect Data Domain contains a Stack-based Buffer Overflow vulnerability. An unauthenticated attacker with remote access could exploit it to achieve command execution.
- CVE-2026-86384Critical
Dell PowerProtect Data Domain contains a Use of Hard-coded Cryptographic Key vulnerability. An unauthenticated attacker with remote access could exploit this vulnerability, leading to credential exposure.
- CVE-2026-14571Critical
A Blind SQL Injection vulnerability in Futurum Software's management software is caused by inadequate validation and sanitisation of user-provided inputs in queries to the private area's database, as well as an incorrect WAF configuration. This weakness allows protection mechanisms to be bypassed by sending manipulated HTTP requests.
- CVE-2026-90717Critical
Dell PowerProtect Data Domain Management Center contains an Authentication Bypass by Spoofing vulnerability. A low privileged attacker with remote access could exploit it to elevate privileges, potentially impacting other managed Data Domain systems.
- CVE-2026-86400Critical
Dell PowerProtect Data Domain contains an Improper Authentication vulnerability. An unauthenticated attacker with remote access could exploit it to execute arbitrary commands with root privileges, allowing complete system takeover.
Original NVD description (English source)
In the Linux kernel, the following vulnerability has been resolved: ovl: fix double end_creating() on the casefold-mismatch path ovl_create_real() releases the new dentry twice when the casefold consistency check fails. The S_IFDIR branch calls end_creating() and sets err, then falls through to the common out: label which calls end_creating() on the same dentry again: case S_IFDIR: newdentry = ovl_do_mkdir(ofs, dir, newdentry, attr->mode); err = PTR_ERR_OR_ZERO(newdentry); if (!err && ofs->casefold != ovl_dentry_casefolded(newdentry)) { pr_warn_ratelimited(...); end_creating(newdentry); /* first */ err = -EINVAL; } break; ... if (err) goto out; ... out: if (err) { end_creating(newdentry); /* second, same dentry */ return ERR_PTR(err); } end_creating() is end_dirop(), which does inode_unlock() on the parent and dput() on the dentry, so the parent directory's i_rwsem is unlocked twice and the dentry is put twice. The second unlock releases a lock that is not held, which is what wedges every later creation under that parent, and the second dput() drops a reference that was never taken. The branch was added by commit dfc7da402ccc ("ovl: Check for casefold consistency when creating new dentries") as a bare dput(), which already released the reference twice; commit fe497f0759e0 ("VFS: change vfs_mkdir() to unlock on failure.") converted both sites to end_creating(), adding the double unlock. This is reachable by an unprivileged user. The casefold consistency of the layers is validated at mount time in ovl_parse_layer(), and again on every lookup in ovl_lookup_single(), but ofs->workdir is the internal "work" subdirectory created inside the user-supplied workdir, and that subdirectory is not re-checked. Marking it casefolded after the mount therefore makes every ovl_create_temp() inherit the wrong state - and that path reaches ovl_create_real() through ovl_start_creating_temp(), which uses start_creating() with a generated name and so never runs the lookup-time check. unshare -Urm mount -t tmpfs -o casefold=utf8-12.1.0 tmpfs mnt mkdir -p mnt/lower/d mnt/upper mnt/work mnt/merged mount -t overlay ovl -o lowerdir=mnt/lower,\ upperdir=mnt/upper,workdir=mnt/work mnt/merged chattr +F mnt/work/work mkdir mnt/merged/d/sub # directory copy-up overlayfs: wrong inherited casefold (work/#5) and the next copy-up blocks forever on the parent's i_rwsem: mkdir D start_creating+0x65/0xb0 ovl_start_creating_temp+0xb0/0xe0 [overlay] ovl_create_temp+0xa3/0x1d0 [overlay] ovl_copy_up_one+0x1f1c/0x21c0 [overlay] ovl_copy_up_flags+0xf5/0x140 [overlay] ovl_create_object+0xb7/0x220 [overlay] ovl_mkdir+0x23/0x40 [overlay] Drop the end_creating() from the branch and let out: own the cleanup, which is what every other error path in this function already does.
Vulnerability data from NVD (NIST) · CISA KEV · EPSS

