From mboxrd@z Thu Jan 1 00:00:00 1970 From: AL-KERNEL To: kernel-cve@kernelcve.org Subject: [CVE-2026-52940][MODERATE 7.0] tun: zero the whole vnet header in tun_put_user() [ Upstream Date: Wed, 24 Jun 2026 05:36:28 -0400 Message-ID: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-AL-KERNEL-CVE: CVE-2026-52940 X-AL-KERNEL-Priority: MODERATE 7.0 X-AL-KERNEL-Severity: MODERATE 7.0 X-AL-KERNEL-Base-Severity: MODERATE X-AL-KERNEL-KPANIC: YES X-AL-KERNEL-ActionableScore: 5 X-AL-KERNEL-ActionableScore-Lower: 4 X-AL-KERNEL-Commit: 5fd1fa5a4254bfdd70571c77f5e3bcb4e43738d5 List-Id: CVE: CVE-2026-52940 Priority: MODERATE 7.0 AL-KERNEL base severity: MODERATE KPANIC flag: YES Patch: tun: zero the whole vnet header in tun_put_user() [ Upstream Commit: 5fd1fa5a4254bfdd70571c77f5e3bcb4e43738d5 Upstream patch: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=5fd1fa5a4254bfdd70571c77f5e3bcb4e43738d5 Original CVE announcement: https://lore.kernel.org/linux-cve-announce/?q=CVE-2026-52940 Analysis date: Wed, 24 Jun 2026 05:36:28 -0400 ActionableScore: 5 ActionableScore lower bound: 4 Actionable bucket: Actionable Moderate at minimum Manual review required: YES Summary: A local TUN user can leak 14 bytes of uninitialized kernel stack data per read because `tun_put_user()` copied a partially initialized virtio vnet header to userspace. ====================================================================== ABOUT THIS REPORT ====================================================================== The original Linux kernel CVE announcement for CVE-2026-52940 is available here: https://lore.kernel.org/linux-cve-announce/?q=CVE-2026-52940 The original announcement does not normally provide a security severity estimate, CVSS assessment, or enough information to determine whether the reported kernel bug represents a practically relevant security issue. This report was generated by AL-KERNEL, an AI-assisted Linux kernel vulnerability analysis system developed by Alexander Larkin. It combines an autonomous classifier with LLM-assisted technical analysis and a separate ActionableScore mechanism. The purpose of this report is to prioritize Linux kernel CVEs before manual review, identify cases that require prompt investigation, and support automatic closure of issues that are unlikely to have meaningful security impact. Published priority for this report: MODERATE 7.0 Manual review required: YES A detailed explanation of the methodology and priority rules is included at the end of this message. ====================================================================== AL-KERNEL CLASSIFICATION RESULT ====================================================================== CVE-2026-52940 MODERATE CHECK Maybe valid. Check manually. Hints by AL-KERNEL: The best (paranoid) CVSS is 'AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N';*CWE-200;CWE-908;*CWE-457;Other CVSS 'AV:L/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N';BEST CVSS score: '5.5';DESCR 'A kernel stack information leak in the tun driver occurs because tun_put_user() used an on-stack virtio_net_hdr_v1_hash_tunnel structure without clearing the whole object. For a non-tunnel skb only the first virtio_net_hdr sized part is initialized, while the remaining num_buffers and hash or tunnel fields can contain stale stack data. A local user that can use a tun file descriptor and set TUNSETVNETHDRSZ to 24 can receive the full header in userspace and leak 14 bytes of kernel stack data per read. For the CVSS the PR:L is used because triggering requires a local user context and access to the tun interface or a passed tun file descriptor, but not full administrator privileges in all deployments. The issue is not network reachable by itself and does not provide a write primitive. Impact is information disclosure only, but repeated kernel stack leaks can assist exploitation of other bugs or bypass address randomization.';YES REQUIRES MANUAL CHECK; ,and ActionableScore result is Actionable Moderate at minimum (with actual score 5) SKIP CVE-2026-52940 SKIP The Fixes patch not applied yet, so unlikely that actual: 288f30435132d2f9e7a29ec9b9745a4f9dc7fd37 YES NO NO unknown MAYBE SIMPLEFIX LEAK NETWORK KPANIC PACKET - - checked ====================================================================== ACTIONABLESCORE ANALYSIS ====================================================================== ActionableScore=5 ActionableScoreLower=4 ## 1. ActionableScore * Conservative score: 4 * Paranoid score: 5 * Final recommended bucket: **Actionable Moderate at minimum**:: ## 2. Signal breakdown * Local unprivileged trigger: +1 A local user with access to a TUN fd can set `TUNSETVNETHDRSZ` to 24 and read packets to receive the uninitialized bytes. * Local high-control kernel data-plane API: +1 TUN is a user-controlled virtual networking interface where userspace can influence packet flow and vnet header behavior. * Confidentiality impact plausible: +1 The bug leaks 14 bytes of kernel stack data per non-tunnel packet read. * Broad or commonly deployed subsystem: +1 TUN/TAP is widely used by virtualization, containers, VPNs, and networking tools. * Paranoid exposure bump: +1 Repeated kernel stack disclosure can be useful for defeating hardening or supporting another exploit chain, even though this patch does not show memory corruption. No generic memory corruption, UAF, OOB write, Dirty-Pipe-like primitive, or direct privilege escalation primitive is shown by the patch. ## 3. Reachability analysis The bug is locally reachable through the TUN read path when vnet header size is set to 24 and a non-tunnel skb is returned to userspace. Creating or configuring a TUN device may require `CAP_NET_ADMIN` in some deployments, but TUN fds are often delegated to less privileged processes by VPNs, containers, emulators, or networking services. Therefore a full `CAP_NET_ADMIN` penalty is not appropriate for the paranoid score. The issue is not remotely network-triggerable by itself because the attacker needs local access to the TUN interface or a passed TUN fd. ## 4. Severity interpretation This behaves like an actionable information disclosure bug, not a memory corruption bug. The realistic impact is kernel stack disclosure to a local user. The theoretical concern is that repeated stack leaks may expose pointers or other sensitive kernel values and assist exploitation of another vulnerability. There is no evidence of a write primitive, object lifetime corruption, or direct LPE path in this patch. ## 5. One-sentence report phrase A local TUN user can leak 14 bytes of uninitialized kernel stack data per read because `tun_put_user()` copied a partially initialized virtio vnet header to userspace. ## 6. Manual review recommendation MANUAL CHECK REQUIRED This should not be auto-closed because it is a repeatable kernel stack information leak in a common networking interface, even though it does not by itself demonstrate memory corruption or direct privilege escalation. ====================================================================== UPSTREAM PATCH SUMMARY ====================================================================== Patch: tun: zero the whole vnet header in tun_put_user() [ Upstream Commit: 5fd1fa5a4254bfdd70571c77f5e3bcb4e43738d5 Upstream URL: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=5fd1fa5a4254bfdd70571c77f5e3bcb4e43738d5 Changed files: drivers/net/tun.c Diff excerpt: Not included in this email. See the upstream URL for the full patch. Full patch: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=5fd1fa5a4254bfdd70571c77f5e3bcb4e43738d5 ====================================================================== DETAILED REPORT METHODOLOGY ====================================================================== The original Linux kernel CVE announcement for CVE-2026-52940 can be found here: https://lore.kernel.org/linux-cve-announce/?q=CVE-2026-52940 The original CVE announcement normally does not include a security-level estimate. In particular, it may not contain a CVSS assessment, an impact level, or enough information to determine whether the reported bug is a practically relevant security issue. One purpose of this parallel CVE list is to provide that missing technical and prioritization information. The original goal of the AL-KERNEL project was to prioritize Linux kernel CVE analysis automatically before manual review. The system can also help identify non-security issues that may be suitable for automatic closure. This report was generated by AL-KERNEL, an AI-assisted Linux kernel vulnerability analysis system developed by Alexander Larkin. The first analysis stage combines an autonomous classifier with additional LLM-based analysis. The autonomous classifier runs locally on a CPU and is based on a backpropagation neural network. Together, these mechanisms produce a technical vulnerability description, identify likely weakness types, estimate CVSS severity, and provide input for ActionableScore. Two CVSS estimates are retained because incomplete kernel vulnerability information often permits more than one defensible interpretation: Conservative CVSS vector: AV:L/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N The Best / paranoid CVSS vector: AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N The Best / paranoid CVSS score: 5.5 The conservative vector represents a lower-impact interpretation. The Best/paranoid vector intentionally represents a plausible upper-bound interpretation and should not automatically be treated as demonstrated real-world impact. CVSS may also need to be adjusted for a particular Linux deployment, because actual reachability, privileges, enabled kernel configuration, hardware, namespaces, exposed device nodes, and other environmental conditions can differ significantly between systems. A separate ActionableScore mechanism evaluates practical remediation urgency. Its analysis may include reachability, attack prerequisites, subsystem exposure, memory-corruption characteristics, denial-of-service reliability, and possible confidentiality, integrity, or privilege-escalation impact. Conservative ActionableScore: 4 Paranoid ActionableScore: 5 The final base severity is taken directly from the second tab-separated field of the AL-KERNEL classification result. ActionableScore does not replace or independently override that final AL-KERNEL decision, and if ActionableScore adjusted impact level of ALKERNEL, then you would see self-readable flags above like INCREASED_TO_HIGH_BASED_ON_ACTIONABLESCOREHIGHEREQTHAN7. For an AL-KERNEL result of MODERATE, this report uses the following additional presentation split: ActionableScore below 5 -> MODERATE REGULAR ActionableScore 5 or more -> MODERATE 7.0 The distinction between MODERATE REGULAR and MODERATE 7.0 makes it possible to identify Moderate issues that should receive manual analysis and fixes before lower-priority MODERATE REGULAR issues. In many cases, MODERATE REGULAR fixes may wait for a later rebase or routine update. There is one override in which MODERATE REGULAR becomes MODERATE 7.0 even when the ActionableScore is below 5. When the AL-KERNEL result contains the KPANIC flag, a MODERATE result is always presented as MODERATE 7.0. The KPANIC flag selected with few regexps without usage of AI at all, so it helps to detect cases when Kernel Crash happens and similar (to filter False-Negative results from the LLM usage). KPANIC indicates that a reliable kernel crash, kernel panic, or similarly serious kernel availability impact was identified by the classification workflow. AL-KERNEL base severity for this report: MODERATE KPANIC detected for this report: YES Published priority for this report (same as in Subject): MODERATE 7.0 These results are intended to support engineering triage. They are machine-generated estimates, and cases marked for manual review should be validated by a human security engineer before final disposition. For more info read docs linked from here: https://kernelcve.org/ (and you can submit you own patch there to generate such a report for non-existant CVE-id yet). Note that in many cases this AI tool selects higher severity, than real is (means you can expect Importants instead of Moderate 7.0 or Moderates 7.0 instead of regular Moderates). If you see such cases, please use reply email interface to add additional manual analyses info to this particular CVE. And please, please, let me know when you see Lows instead of Importants or Important instead of Low (because particular for such cases I need to tune this AI tool to make it better for this one and next similar). My contact email for such notifications is alexanjelausa@gmail.com (and both send reply to CVE record itself too and see "reply" button below for howto reply).