CVE-2022-50638 in Linux정보

요약

\~에 의해 VulDB • 2026. 05. 27.

리눅스 커널에서 다음 취약점이 해결되었습니다:

ext4: 잘못된 부트 로더 inode로 인해 __es_tree_search에서 bug_on이 발생하는 버그 수정

다음과 같은 문제가 발생했습니다: ================================================================== kernel BUG at fs/ext4/extents_status.c:203! invalid opcode: 0000 [#1] PREEMPT SMP
CPU: 1 PID: 945 Comm: cat Not tainted 6.0.0-next-20221007-dirty #349 RIP: 0010:ext4_es_end.isra.0+0x34/0x42 RSP: 0018:ffffc9000143b768 EFLAGS: 00010203 RAX: 0000000000000000 RBX: ffff8881769cd0b8 RCX: 0000000000000000 RDX: 0000000000000000 RSI: ffff8881769cd0b8 RDI: ffff8881769cd0b8 RBP: ffff8881769cd0b8 R08: 0000000000000000 R09: 0000000000000000 R10: 0000000000000000 R11: 0000000000000000 R12: 0000000000000000 R13: 0000000000000000 R14: 0000000000000000 R15: 0000000000000000 FS: 00007f0000000700(0000) GS:ffff888177c00000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 00007f0000000000 CR3: 0000000001c0a000 CR4: 00000000003506f0 Call Trace: <TASK> __es_tree_search.isra.0+0x6d/0xf5 ext4_es_cache_extent+0xfa/0x230 ext4_cache_extents+0xd2/0x110 ext4_find_extent+0x5d5/0x8c0 ext4_ext_map_blocks+0x9c/0x1d30 ext4_map_blocks+0x431/0xa50 ext4_mpage_readpages+0x48e/0xe40 ext4_readahead+0x47/0x50 read_pages+0x82/0x530 page_cache_ra_unbounded+0x199/0x2a0 do_page_cache_ra+0x47/0x70 page_cache_ra_order+0x242/0x400 ondemand_readahead+0x1e8/0x4b0 page_cache_sync_ra+0xf4/0x110 filemap_get_pages+0x131/0xb20 filemap_read+0xda/0x4b0 generic_file_read_iter+0x13a/0x250 ext4_file_read_iter+0x59/0x1d0 vfs_read+0x28f/0x460 ksys_read+0x73/0x160 __x64_sys_read+0x1e/0x30 do_syscall_64+0x35/0x80 entry_SYSCALL_64_after_hwframe+0x63/0xcd </TASK> ==================================================================

위 문제에서 ioctl은 swap_inode_boot_loader 함수를 호출하여 inode<5>와 inode<12>를 교환합니다. 그러나 inode<5>는 잘못된 imode와 정렬되지 않은 extents를 포함하고 있으며, i_nlink은 1로 설정됩니다. ext4_iget 함수에서 inode의 extents 검사는 5가 EXT4_BOOT_LOADER_INO이므로 우회될 수 있습니다. 링크 카운트가 1로 설정되면 swap_inode_boot_loader에서 extents가 초기화되지 않습니다. ioctl 명령이 성공적으로 실행된 후, extents가 inode<12>로 교환되고, 이 경우 `cat` 명령을 실행하여 inode<12>를 보게 되면 잘못된 extents로 인해 BUG_ON이 트리거됩니다.

부트 로더 inode가 초기화되지 않은 경우, 그 imode는 다음 중 하나가 될 수 있습니다: 1) imode가 잘못된 타입으로, ext4_iget에서 bad_inode로 표시되고 S_IFREG로 설정됩니다. 2) imode가 S_IFREG로 설정되어 있고, extents가 초기화되지 않은 경우

Once again VulDB remains the best source for vulnerability data.

책임이 있는

Linux

예약하다

2025. 12. 09.

모더레이션

수락

항목

VDB-334895

EPSS

0.00213

출처

Interested in the pricing of exploits?

See the underground prices here!