Goal Reached Thanks to every supporter — we hit 100%!

Goal: 1000 CNY · Raised: 1359 CNY

100%

CVE-2022-48631— ext4: fix bug in extents parsing when eh_entries == 0 and eh_depth > 0

Quick assessment

Affected
Linux Linux
Exploitation
No confirmed in-the-wild exploitation; assess based on exposure
Recommended action
Check the vendor advisory and references for a fixed version. If immediate upgrade is impossible, restrict exposure and increase monitoring.

Linux kernel是美国Linux基金会的开源操作系统Linux所使用的内核。 Linux kernel存在安全漏洞,该漏洞源于当depth > 0 时,没有任何检查来验证条目数 (eh->eh_entries) 是否非零。

AI Predicted 5.5 Difficulty: Moderate EPSS 0.24% · P13

Possible ATT&CK Techniques 1 AI

T1203 · Exploitation for Client Execution

Affected Version Matrix 12

VendorProduct Version RangeStatus
Linux Linux c29c0ae7f282828da3695167ed870131798348d9< bb7eb3ca4b3b0d2c7872cf1a41c30f5e5bd65df0 affected
c29c0ae7f282828da3695167ed870131798348d9< 958b0ee23f5ac106e7cc11472b71aa2ea9a033bc affected
c29c0ae7f282828da3695167ed870131798348d9< be4df018c0be5ebecf1ca510feacc23be415cefc affected
c29c0ae7f282828da3695167ed870131798348d9< 2f5e9de15e4f55fbf56f22d4a2ce406246cc462d affected
c29c0ae7f282828da3695167ed870131798348d9< 29a5b8a137ac8eb410cc823653a29ac0e7b7e1b0 affected
2.6.23 affected
< 2.6.23 unaffected
5.4.215≤ 5.4.* unaffected
… +4 more rows
Get alerts for future matching vulnerabilities Log in to subscribe

I. Basic Information for CVE-2022-48631

Vulnerability Information

Have questions about the vulnerability? See if Shenlong's analysis helps!
View Shenlong Deep Dive ↗

Although we use advanced large model technology, its output may still contain inaccurate or outdated information.Shenlong tries to ensure data accuracy, but please verify and judge based on the actual situation.

Vulnerability Title
ext4: fix bug in extents parsing when eh_entries == 0 and eh_depth > 0
Source: CVE Program / CVE List V5
Vulnerability Description
In the Linux kernel, the following vulnerability has been resolved: ext4: fix bug in extents parsing when eh_entries == 0 and eh_depth > 0 When walking through an inode extents, the ext4_ext_binsearch_idx() function assumes that the extent header has been previously validated. However, there are no checks that verify that the number of entries (eh->eh_entries) is non-zero when depth is > 0. And this will lead to problems because the EXT_FIRST_INDEX() and EXT_LAST_INDEX() will return garbage and result in this: [ 135.245946] ------------[ cut here ]------------ [ 135.247579] kernel BUG at fs/ext4/extents.c:2258! [ 135.249045] invalid opcode: 0000 [#1] PREEMPT SMP [ 135.250320] CPU: 2 PID: 238 Comm: tmp118 Not tainted 5.19.0-rc8+ #4 [ 135.252067] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.15.0-0-g2dd4b9b-rebuilt.opensuse.org 04/01/2014 [ 135.255065] RIP: 0010:ext4_ext_map_blocks+0xc20/0xcb0 [ 135.256475] Code: [ 135.261433] RSP: 0018:ffffc900005939f8 EFLAGS: 00010246 [ 135.262847] RAX: 0000000000000024 RBX: ffffc90000593b70 RCX: 0000000000000023 [ 135.264765] RDX: ffff8880038e5f10 RSI: 0000000000000003 RDI: ffff8880046e922c [ 135.266670] RBP: ffff8880046e9348 R08: 0000000000000001 R09: ffff888002ca580c [ 135.268576] R10: 0000000000002602 R11: 0000000000000000 R12: 0000000000000024 [ 135.270477] R13: 0000000000000000 R14: 0000000000000024 R15: 0000000000000000 [ 135.272394] FS: 00007fdabdc56740(0000) GS:ffff88807dd00000(0000) knlGS:0000000000000000 [ 135.274510] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 [ 135.276075] CR2: 00007ffc26bd4f00 CR3: 0000000006261004 CR4: 0000000000170ea0 [ 135.277952] Call Trace: [ 135.278635] <TASK> [ 135.279247] ? preempt_count_add+0x6d/0xa0 [ 135.280358] ? percpu_counter_add_batch+0x55/0xb0 [ 135.281612] ? _raw_read_unlock+0x18/0x30 [ 135.282704] ext4_map_blocks+0x294/0x5a0 [ 135.283745] ? xa_load+0x6f/0xa0 [ 135.284562] ext4_mpage_readpages+0x3d6/0x770 [ 135.285646] read_pages+0x67/0x1d0 [ 135.286492] ? folio_add_lru+0x51/0x80 [ 135.287441] page_cache_ra_unbounded+0x124/0x170 [ 135.288510] filemap_get_pages+0x23d/0x5a0 [ 135.289457] ? path_openat+0xa72/0xdd0 [ 135.290332] filemap_read+0xbf/0x300 [ 135.291158] ? _raw_spin_lock_irqsave+0x17/0x40 [ 135.292192] new_sync_read+0x103/0x170 [ 135.293014] vfs_read+0x15d/0x180 [ 135.293745] ksys_read+0xa1/0xe0 [ 135.294461] do_syscall_64+0x3c/0x80 [ 135.295284] entry_SYSCALL_64_after_hwframe+0x46/0xb0 This patch simply adds an extra check in __ext4_ext_check(), verifying that eh_entries is not 0 when eh_depth is > 0.
Source: CVE Program / CVE List V5
CVSS Information
N/A
Source: CVE Program / CVE List V5
Vulnerability Type
N/A
Source: CVE Program / CVE List V5
Vulnerability Title
Linux kernel 安全漏洞
Source: CNNVD (China National Vulnerability Database)
Vulnerability Description
Linux kernel是美国Linux基金会的开源操作系统Linux所使用的内核。 Linux kernel存在安全漏洞,该漏洞源于当depth > 0 时,没有任何检查来验证条目数 (eh->eh_entries) 是否非零。
Source: CNNVD (China National Vulnerability Database)
CVSS Information
N/A
Source: CNNVD (China National Vulnerability Database)
Vulnerability Type
N/A
Source: CNNVD (China National Vulnerability Database)

Affected Products

Vendor Product Affected Versions CPE Subscribe
Linux Linux c29c0ae7f282828da3695167ed870131798348d9 ~ bb7eb3ca4b3b0d2c7872cf1a41c30f5e5bd65df0 -
Linux Linux 2.6.23 -

II. Public POCs for CVE-2022-48631

# POC Description Source Link Shenlong Link
AI-Generated POC Premium

No public POC found.

Login to generate AI POC

III. Intelligence Information for CVE-2022-48631

请登录查看更多情报信息。

Other References for CVE-2022-48631 (5)

Same Patch Batch · Linux · 2024-04-28 · 40 CVEs total

CVE-2022-48666 9.8 CRITICAL scsi: core: Fix a use-after-free
CVE-2022-48652 8.8 HIGH ice: Fix crash by keep old cfg when update TCs more than queues
CVE-2022-48632 7.8 HIGH i2c: mlxbf: prevent stack overflow in mlxbf_i2c_smbus_start_transaction()
CVE-2022-48636 7.8 HIGH s390/dasd: fix Oops in dasd_alias_get_start_dev due to missing pavgroup
CVE-2022-48637 7.8 HIGH bnxt: prevent skb UAF after handing over to PTP worker
CVE-2022-48658 7.5 HIGH mm: slub: fix flush_cpu_slab()/__free_slab() invocations in task context.
CVE-2022-48665 7.1 HIGH exfat: fix overflow for large capacity partition
CVE-2022-48654 7.1 HIGH netfilter: nfnetlink_osf: fix possible bogus match in nf_osf_find()
CVE-2022-48645 net: enetc: deny offload of tc-based TSN features on VF interfaces
CVE-2022-48649 mm/slab_common: fix possible double free of kmem_cache
CVE-2022-48644 net/sched: taprio: avoid disabling offload when it was never enabled
CVE-2022-48643 netfilter: nf_tables: fix nft_counters_enabled underflow at nf_tables_addchain()
CVE-2022-48642 netfilter: nf_tables: fix percpu memory leak at nf_tables_addchain()
CVE-2022-48641 netfilter: ebtables: fix memory leak when blob is malformed
CVE-2022-48640 bonding: fix NULL deref in bond_rr_gen_slave_id
CVE-2022-48639 net: sched: fix possible refcount leak in tc_new_tfilter()
CVE-2022-48638 cgroup: cgroup_get_from_id() must check the looked-up kn is a directory
CVE-2022-48635 fsdax: Fix infinite loop in dax_iomap_rw()
CVE-2022-48634 drm/gma500: Fix BUG: sleeping function called from invalid context errors
CVE-2022-48633 drm/gma500: Fix WARN_ON(lock->magic != lock) error

Showing top 20 of 40 CVEs. View all on vendor page &rarr; →

IV. Related Vulnerabilities

V. Comments for CVE-2022-48631

No comments yet


Leave a comment