🇰🇷 한글 설명
Linux 커널의 RDMA/core 모듈에서 kvmalloc() 호출 시 과도하게 큰 메모리 할당을 요청하면 커널 경고(WARNING)가 발생하는 문제가 수정되었습니다. 수정은 __GFP_NOWARN 플래그를 추가하여 해당 경고를 억제하는 방식입니다. 이는 syzkaller 퍼징 도구가 발견한 사항입니다.
💡 쉬운 설명
리눅스 커널의 RDMA 기능에서 지나치게 큰 메모리를 요청할 때 불필요한 경고 메시지가 출력되던 문제입니다. 시스템 충돌이나 권한 상승 같은 직접적인 피해보다는 경고 로그 노이즈에 가까운 결함입니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
RDMA/core: Silence oversized kvmalloc() warning
syzkaller triggered an oversized kvmalloc() warning.
Silence it by adding __GFP_NOWARN.
syzkaller log:
WARNING: CPU: 7 PID: 518 at mm/util.c:665 __kvmalloc_node_noprof+0x175/0x180
CPU: 7 UID: 0 PID: 518 Comm: c_repro Not tainted 6.11.0-rc6+ #6
Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.13.0-0-gf21b5a4aeb02-prebuilt.qemu.org 04/01/2014
RIP: 0010:__kvmalloc_node_noprof+0x175/0x180
RSP: 0018:ffffc90001e67c10 EFLAGS: 00010246
RAX: 0000000000000100 RBX: 0000000000000400 RCX: ffffffff8149d46b
RDX: 0000000000000000 RSI: ffff8881030fae80 RDI: 0000000000000002
RBP: 000000712c800000 R08: 0000000000000100 R09: 0000000000000000
R10: ffffc90001e67c10 R11: 0030ae0601000000 R12: 0000000000000000
R13: 0000000000000000 R14: 00000000ffffffff R15: 0000000000000000
FS: 00007fde79159740(0000) GS:ffff88813bdc0000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 0000000020000180 CR3: 0000000105eb4005 CR4: 00000000003706b0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
Call Trace:
<TASK>
ib_umem_odp_get+0x1f6/0x390
mlx5_ib_reg_user_mr+0x1e8/0x450
ib_uverbs_reg_mr+0x28b/0x440
ib_uverbs_write+0x7d3/0xa30
vfs_write+0x1ac/0x6c0
ksys_write+0x134/0x170
? __sanitizer_cov_trace_pc+0x1c/0x50
do_syscall_64+0x50/0x110
entry_SYSCALL_64_after_hwframe+0x76/0x7e
📍 영향받는 시스템
패치 이전의 Linux 커널 (RDMA/InfiniBand 서브시스템을 사용하는 환경, 6.11 계열 등)
⚔️ 공격 벡터
로컬 사용자가 RDMA verbs 인터페이스(ib_uverbs)를 통해 매우 큰 메모리 영역 등록을 요청하면 커널 경고가 발생할 수 있습니다.
🛡️ 대응 방법
배포판이 제공하는 최신 리눅스 커널 보안 업데이트를 적용하고 시스템을 재부팅하세요.
🔧 검증 코드
출력된 커널 버전을 배포판의 보안 권고문과 대조하여 패치가 포함된 버전인지 확인하세요. 패치 이전 버전이면 업데이트가 필요합니다.