CVE-2026-52906
9p: fix access mode flags being ORed instead of replaced
Description
In the Linux kernel, the following vulnerability has been resolved: 9p: fix access mode flags being ORed instead of replaced Since commit 1f3e4142c0eb ("9p: convert to the new mount API"), v9fs_apply_options() applies parsed mount flags with |= onto flags already set by v9fs_session_init(). For 9P2000.L, session_init sets V9FS_ACCESS_CLIENT as the default, so when the user mounts with "access=user", both bits end up set. Access mode checks compare against exact values, so having both bits set matches neither mode. This causes v9fs_fid_lookup() to fall through to the default switch case, using INVALID_UID (nobody/65534) instead of current_fsuid() for all fid lookups. Root is then unable to chown or perform other privileged operations. Fix by clearing the access mask before applying the user's choice.
INFO
Published Date :
June 9, 2026, 2:16 p.m.
Last Modified :
July 23, 2026, 8:10 a.m.
Remotely Exploit :
No
Source :
416baaa9-dc9f-4396-8d5f-8c081fb06d67
CVSS Scores
| Score | Version | Severity | Vector | Exploitability Score | Impact Score | Source |
|---|---|---|---|---|---|---|
| CVSS 3.1 | HIGH | 416baaa9-dc9f-4396-8d5f-8c081fb06d67 |
Solution
- Update the Linux kernel to the resolved version.
- Reboot the system after applying updates.
- Verify mount options are correctly applied.
- Test privileged operations for root user.
References to Advisories, Solutions, and Tools
Here, you will find a curated list of external links that provide in-depth
information, practical solutions, and valuable tools related to
CVE-2026-52906.
| URL | Resource |
|---|---|
| https://git.kernel.org/stable/c/b8f037e87a083291190204b959cda417aaf01058 | Patch |
| https://git.kernel.org/stable/c/da2346a48a5a1fed86c3fe3d73c0b60e7b3027c9 | Patch |
CWE - Common Weakness Enumeration
While CVE identifies
specific instances of vulnerabilities, CWE categorizes the common flaws or
weaknesses that can lead to vulnerabilities. CVE-2026-52906 is
associated with the following CWEs:
Common Attack Pattern Enumeration and Classification (CAPEC)
Common Attack Pattern Enumeration and Classification
(CAPEC)
stores attack patterns, which are descriptions of the common attributes and
approaches employed by adversaries to exploit the CVE-2026-52906
weaknesses.
We scan GitHub repositories to detect new proof-of-concept exploits. Following list is a collection of public exploits and proof-of-concepts, which have been published on GitHub (sorted by the most recently updated).
Results are limited to the first 15 repositories due to potential performance issues.
The following list is the news that have been mention
CVE-2026-52906 vulnerability anywhere in the article.
The following table lists the changes that have been made to the
CVE-2026-52906 vulnerability over time.
Vulnerability history details can be useful for understanding the evolution of a vulnerability, and for identifying the most recent changes that may impact the vulnerability's severity, exploitability, or other characteristics.
-
CVE Translated by [email protected]
Jul. 23, 2026
Action Type Old Value New Value Added Translation Title: Linux, Description: En el kernel de Linux, la siguiente vulnerabilidad ha sido resuelta: 9p: corrige que los indicadores de modo de acceso se combinen con OR en lugar de ser reemplazados Desde el commit 1f3e4142c0eb ('9p: convertir a la nueva API de montaje'), v9fs_apply_options() aplica los indicadores de montaje analizados con |= sobre los indicadores ya establecidos por v9fs_session_init(). Para 9P2000.L, session_init establece V9FS_ACCESS_CLIENT como predeterminado, así que cuando el usuario monta con 'access=user', ambos bits terminan establecidos. Las comprobaciones de modo de acceso comparan con valores exactos, así que tener ambos bits establecidos no coincide con ninguno de los modos. Esto hace que v9fs_fid_lookup() caiga al caso predeterminado del switch, usando INVALID_UID (nobody/65534) en lugar de current_fsuid() para todas las búsquedas de fid. Root es entonces incapaz de chown o realizar otras operaciones privilegiadas. Se corrige limpiando la máscara de acceso antes de aplicar la elección del usuario. -
Initial Analysis by [email protected]
Jul. 08, 2026
Action Type Old Value New Value Added CWE NVD-CWE-noinfo Added CPE Configuration OR *cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* versions from (including) 6.19 up to (excluding) 7.0.4 Added Reference Type kernel.org: https://git.kernel.org/stable/c/b8f037e87a083291190204b959cda417aaf01058 Types: Patch Added Reference Type kernel.org: https://git.kernel.org/stable/c/da2346a48a5a1fed86c3fe3d73c0b60e7b3027c9 Types: Patch -
CVE Modified by 416baaa9-dc9f-4396-8d5f-8c081fb06d67
Jun. 17, 2026
Action Type Old Value New Value Added Affected [{'repo': 'https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git', 'vendor': 'Linux', 'product': 'Linux', 'versions': [{'status': 'affected', 'version': '1f3e4142c0eb178089ea0cbc97506a061470ad27', 'lessThan': 'b8f037e87a083291190204b959cda417aaf01058', 'versionType': 'git'}, {'status': 'affected', 'version': '1f3e4142c0eb178089ea0cbc97506a061470ad27', 'lessThan': 'da2346a48a5a1fed86c3fe3d73c0b60e7b3027c9', 'versionType': 'git'}], 'programFiles': ['fs/9p/v9fs.c'], 'defaultStatus': 'unaffected'}, {'repo': 'https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git', 'vendor': 'Linux', 'product': 'Linux', 'versions': [{'status': 'affected', 'version': '6.19'}, {'status': 'unaffected', 'version': '0', 'lessThan': '6.19', 'versionType': 'semver'}, {'status': 'unaffected', 'version': '7.0.4', 'versionType': 'semver', 'lessThanOrEqual': '7.0.*'}, {'status': 'unaffected', 'version': '7.1', 'versionType': 'original_commit_for_fix', 'lessThanOrEqual': '*'}], 'programFiles': ['fs/9p/v9fs.c'], 'defaultStatus': 'affected'}] -
CVE Modified by 416baaa9-dc9f-4396-8d5f-8c081fb06d67
Jun. 14, 2026
Action Type Old Value New Value Added CVSS V3.1 AV:L/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N -
New CVE Received by 416baaa9-dc9f-4396-8d5f-8c081fb06d67
Jun. 09, 2026
Action Type Old Value New Value Added Description In the Linux kernel, the following vulnerability has been resolved: 9p: fix access mode flags being ORed instead of replaced Since commit 1f3e4142c0eb ("9p: convert to the new mount API"), v9fs_apply_options() applies parsed mount flags with |= onto flags already set by v9fs_session_init(). For 9P2000.L, session_init sets V9FS_ACCESS_CLIENT as the default, so when the user mounts with "access=user", both bits end up set. Access mode checks compare against exact values, so having both bits set matches neither mode. This causes v9fs_fid_lookup() to fall through to the default switch case, using INVALID_UID (nobody/65534) instead of current_fsuid() for all fid lookups. Root is then unable to chown or perform other privileged operations. Fix by clearing the access mask before applying the user's choice. Added Reference https://git.kernel.org/stable/c/b8f037e87a083291190204b959cda417aaf01058 Added Reference https://git.kernel.org/stable/c/da2346a48a5a1fed86c3fe3d73c0b60e7b3027c9