Skip to main content

Linux Kernel CVE-2026-63819

| EUVDEUVD-2026-45485 HIGH
2026-07-19 Linux GHSA-x28c-5hrw-xmh5
7.8
CVSS 3.1 · Vendor: Linux
Share

Severity by source

Vendor (Linux) PRIMARY
7.8 HIGH
AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
vuln.today AI
5.5 MEDIUM

Local attacker must mount a crafted f2fs image (AV:L, PR:L); deterministic corrupted-metadata trigger (AC:L); impact is a kernel BUG_ON panic, so A:H with C/I:N as data disclosure is not demonstrated.

3.1 AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
4.0 AV:L/AC:L/AT:N/PR:L/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
SUSE
5.5 MEDIUM
AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H

Primary rating from Vendor (Linux).

CVSS VectorVendor: Linux

Attack Vector
Local
Attack Complexity
Low
Privileges Required
Low
User Interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
High
Availability
High

Lifecycle Timeline

5
Analysis Generated
Jul 20, 2026 - 15:43 vuln.today
CVSS changed
Jul 20, 2026 - 15:22 NVD
7.8 (HIGH)
Patch available
Jul 19, 2026 - 14:17 EUVD
CVE Published
Jul 19, 2026 - 12:02 cve.org
HIGH 7.8
CVE Published
Jul 19, 2026 - 12:02 cve.org
UNKNOWN (no severity yet)

DescriptionCVE.org

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

f2fs: fix to do sanity check on f2fs_get_node_folio_ra()

kernel BUG at fs/f2fs/file.c:845! Oops: invalid opcode: 0000 [#1] SMP KASAN NOPTI CPU: 0 UID: 0 PID: 5336 Comm: syz.0.0 Not tainted syzkaller #0 PREEMPT(full) Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-debian-1.16.3-2 04/01/2014 RIP: 0010:f2fs_do_truncate_blocks+0x1115/0x1140 fs/f2fs/file.c:845 Code: fc fc 90 0f 0b e8 8b 9d 9a fd 90 0f 0b e8 83 9d 9a fd 48 89 df 48 c7 c6 60 d1 1a 8c e8 54 f1 fc fc 90 0f 0b e8 6c 9d 9a fd 90 <0f> 0b e8 64 9d 9a fd 90 0f 0b 90 e9 93 fd ff ff e8 56 9d 9a fd 90 RSP: 0018:ffffc9000e4474c0 EFLAGS: 00010283 RAX: ffffffff842b1d34 RBX: 0000000000000003 RCX: 0000000000100000 RDX: ffffc9000f03a000 RSI: 0000000000035503 RDI: 0000000000035504 RBP: ffffc9000e447608 R08: ffff8880123b0000 R09: 0000000000000002 R10: 00000000fffffffe R11: 0000000000000002 R12: 0000000000000001 R13: 0000000000000000 R14: 1ffff92001c88ea0 R15: 00000000ffff039c FS: 00007f7e02ee36c0(0000) GS:ffff88808c887000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 00007ff0305c4000 CR3: 0000000012d4c000 CR4: 0000000000352ef0 Call Trace: <TASK> f2fs_truncate_blocks+0x10a/0x300 fs/f2fs/file.c:882 f2fs_truncate+0x471/0x7c0 fs/f2fs/file.c:940 f2fs_evict_inode+0xa3f/0x1ac0 fs/f2fs/inode.c:907 evict+0x61e/0xb10 fs/inode.c:841 f2fs_fill_super+0x5f43/0x78f0 fs/f2fs/super.c:5224 get_tree_bdev_flags+0x431/0x4f0 fs/super.c:1694 vfs_get_tree+0x92/0x2a0 fs/super.c:1754 fc_mount fs/namespace.c:1193 [inline] do_new_mount_fc fs/namespace.c:3758 [inline] do_new_mount+0x341/0xd30 fs/namespace.c:3834 do_mount fs/namespace.c:4167 [inline] __do_sys_mount fs/namespace.c:4383 [inline] __se_sys_mount+0x31d/0x420 fs/namespace.c:4360 do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline] do_syscall_64+0x15f/0xf80 arch/x86/entry/syscall_64.c:94 entry_SYSCALL_64_after_hwframe+0x77/0x7f

count = ADDRS_PER_PAGE(dn.node_folio, inode);

count -= dn.ofs_in_node; f2fs_bug_on(sbi, count < 0);

The fuzz test will trigger above bug_on in f2fs.

The root cause should be: in the corrupted inode, there is a direct node which has the same ino and nid in its footer, so in f2fs_do_truncate_blocks(), after f2fs_get_dnode_of_data() finds such dnode:

  1. ADDRS_PER_PAGE(dn.node_folio, inode) will return 923
  2. once dn.ofs_in_node points to addr[923, 1017]

Then it will trigger the system panic.

Let's introduce NODE_TYPE_NON_IXNODE to indicate current node should not be an inode or xattr node, and then use it in below path to detect inconsistent node chain in inode mapping table:

  • f2fs_do_truncate_blocks
  • f2fs_get_dnode_of_data
  • f2fs_get_node_folio_ra
  • __get_node_folio
  • f2fs_sanity_check_node_footer
  • case NODE_TYPE_NON_IXNODE -> check whether it is inode|xnode

AnalysisAI

Local denial-of-service in the Linux kernel's f2fs filesystem lets an attacker who can mount a crafted f2fs image trigger a kernel panic (BUG_ON at fs/f2fs/file.c:845) during inode truncation. A corrupted inode containing a direct node whose footer reuses the inode's own ino/nid causes ADDRS_PER_PAGE to return an inode-sized address count (923), driving ofs_in_node into the out-of-bounds addr[923..1017] range and crashing the host. Discovered via syzkaller fuzzing; no public exploit identified at time of analysis and EPSS exploitation probability is low (0.15%, 5th percentile).

Technical ContextAI

f2fs (Flash-Friendly File System) is a log-structured filesystem in the Linux kernel optimized for NAND flash, widely used on Android and embedded/flash-based devices. The bug lives in the node-mapping/truncation path: f2fs_do_truncate_blocks() calls f2fs_get_dnode_of_data() → f2fs_get_node_folio_ra() → __get_node_folio(), which historically did not verify that a fetched direct/dnode block was not actually an inode or xattr node. ADDRS_PER_PAGE() returns a different address count for inode blocks (DEF_ADDRS_PER_INODE ≈ 923) versus regular direct-node blocks (1018), so when a direct node's footer fraudulently claims the same ino/nid as the inode, the count/offset arithmetic (count = ADDRS_PER_PAGE - dn.ofs_in_node) goes negative or out of range and hits f2fs_bug_on(). The root cause class is improper validation of untrusted on-disk metadata (CWE-20 / effectively an out-of-bounds read, CWE-125), even though the NVD record lists CWE as N/A. The fix adds NODE_TYPE_NON_IXNODE and extends f2fs_sanity_check_node_footer() to reject nodes that unexpectedly appear to be inode or xattr nodes, detecting the inconsistent node chain before the bad arithmetic.

RemediationAI

Vendor-released patch: upgrade to Linux 6.18.39 or 7.1.3 (or mainline 7.2-rc1 and later), or apply your distribution's backport of the fix commits from https://git.kernel.org/stable/c/406c28af75123432d38cf9bbaa6f1476f7b14770 and companions (0cc21c1ffe15..., 8712353ed80f...). Where immediate patching is not possible, the practical compensating control is to prevent mounting of untrusted f2fs images: disable or restrict automatic mounting of removable media (e.g., lock down udisks/autofs policies), require CAP_SYS_ADMIN for mount operations, and avoid mounting user-supplied filesystem images on multi-tenant hosts - the trade-off is reduced convenience for USB/removable-media workflows. If f2fs is not required on a given system, not building or blacklisting the f2fs module (modprobe blacklist f2fs) removes the attack surface entirely, at the cost of losing f2fs support. Verify fixes against your vendor's kernel advisory before deployment.

Vendor StatusVendor

SUSE

Severity: Moderate
Product Status
SUSE Linux Enterprise Desktop 15 SP7 Affected
SUSE Linux Enterprise Desktop 15 SP7 Affected
SUSE Linux Enterprise High Availability Extension 15 SP7 Affected
SUSE Linux Enterprise High Availability Extension 15 SP7 Affected
SUSE Linux Enterprise High Availability Extension 16.0 Affected

Share

CVE-2026-63819 vulnerability details – vuln.today

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy