🔍 CVE-2022-50434

5.5
CVSS Score
MEDIUM
2025-10-01
2026-11-05 21:16
✅ 완료

🇰🇷 한글 설명

Linux 커널의 blk-mq 서브시스템에서 blk_mq_register_hctx 함수가 중간에 실패할 때 이미 등록된 kobject 객체들을 정리(fallback)하지 않아 메모리 누수가 발생하는 문제가 수정되었습니다. 결함 주입 테스트에서 이 문제가 확인되었으며, 실패 시 일부 등록된 객체를 해제하도록 보완되었습니다.

💡 쉬운 설명

리눅스 커널이 저장장치 큐를 등록하다가 중간에 실패하면, 이미 만든 일부 메모리를 정리하지 않고 남겨두는 버그입니다. 이로 인해 시간이 지나면서 시스템 메모리가 조금씩 낭비될 수 있습니다.

🇺🇸 원문 (English)

In the Linux kernel, the following vulnerability has been resolved: blk-mq: fix possible memleak when register 'hctx' failed There's issue as follows when do fault injection test: unreferenced object 0xffff888132a9f400 (size 512): comm "insmod", pid 308021, jiffies 4324277909 (age 509.733s) hex dump (first 32 bytes): 00 00 00 00 00 00 00 00 08 f4 a9 32 81 88 ff ff ...........2.... 08 f4 a9 32 81 88 ff ff 00 00 00 00 00 00 00 00 ...2............ backtrace: [<00000000e8952bb4>] kmalloc_node_trace+0x22/0xa0 [<00000000f9980e0f>] blk_mq_alloc_and_init_hctx+0x3f1/0x7e0 [<000000002e719efa>] blk_mq_realloc_hw_ctxs+0x1e6/0x230 [<000000004f1fda40>] blk_mq_init_allocated_queue+0x27e/0x910 [<00000000287123ec>] __blk_mq_alloc_disk+0x67/0xf0 [<00000000a2a34657>] 0xffffffffa2ad310f [<00000000b173f718>] 0xffffffffa2af824a [<0000000095a1dabb>] do_one_initcall+0x87/0x2a0 [<00000000f32fdf93>] do_init_module+0xdf/0x320 [<00000000cbe8541e>] load_module+0x3006/0x3390 [<0000000069ed1bdb>] __do_sys_finit_module+0x113/0x1b0 [<00000000a1a29ae8>] do_syscall_64+0x35/0x80 [<000000009cd878b0>] entry_SYSCALL_64_after_hwframe+0x46/0xb0 Fault injection context as follows: kobject_add blk_mq_register_hctx blk_mq_sysfs_register blk_register_queue device_add_disk null_add_dev.part.0 [null_blk] As 'blk_mq_register_hctx' may already add some objects when failed halfway, but there isn't do fallback, caller don't know which objects add failed. To solve above issue just do fallback when add objects failed halfway in 'blk_mq_register_hctx'.

📍 영향받는 시스템

패치 이전 버전의 Linux 커널 (blk-mq 기반 블록 장치 드라이버를 사용하는 시스템)

⚔️ 공격 벡터

로컬 사용자 또는 권한이 있는 공격자가 장치 등록 실패를 유도하면 메모리 누수가 누적되어 서비스 거부(메모리 고갈) 상태를 만들 수 있습니다.

🛡️ 대응 방법

배포판 제공 최신 커널로 업데이트하거나, 수정 커밋이 포함된 Linux 커널 버전으로 재빌드 및 재부팅합니다.

🔧 검증 코드

출력된 커널 버전을 배포판 보안 공지 또는 Linux 커널 스테이블 패치 목록과 대조하여, 해당 수정이 포함된 버전인지 확인합니다.

Shell / Script
uname -r

📊 CVSS Vector String

CVSS Vector
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H

💻 영향받는 소프트웨어

Linux Kernel