🔍 CVE-2022-49256

5.5
CVSS Score
MEDIUM
2025-02-26
2026-11-05 20:17
✅ 완료

🇰🇷 한글 설명

Linux 커널의 watch_queue 서브시스템에서 free_watch() 함수가 watch 객체의 메모리를 실제로 해제하지 않아 메모리 누수가 발생하는 취약점입니다. 누락된 kfree 호출을 추가하여 해결되었습니다. keyctl 시스템 호출을 통해 반복적으로 watch를 생성하면 커널 메모리가 계속 소모될 수 있습니다.

💡 쉬운 설명

컴퓨터 운영체제 안에서 더 이상 쓰지 않는 메모리를 반납하지 않는 버그입니다. 이 상태가 반복되면 시스템의 사용 가능한 메모리가 점점 줄어들 수 있습니다.

🇺🇸 원문 (English)

In the Linux kernel, the following vulnerability has been resolved: watch_queue: Actually free the watch free_watch() does everything barring actually freeing the watch object. Fix this by adding the missing kfree. kmemleak produces a report something like the following. Note that as an address can be seen in the first word, the watch would appear to have gone through call_rcu(). BUG: memory leak unreferenced object 0xffff88810ce4a200 (size 96): comm "syz-executor352", pid 3605, jiffies 4294947473 (age 13.720s) hex dump (first 32 bytes): e0 82 48 0d 81 88 ff ff 00 00 00 00 00 00 00 00 ..H............. 80 a2 e4 0c 81 88 ff ff 00 00 00 00 00 00 00 00 ................ backtrace: [<ffffffff8214e6cc>] kmalloc include/linux/slab.h:581 [inline] [<ffffffff8214e6cc>] kzalloc include/linux/slab.h:714 [inline] [<ffffffff8214e6cc>] keyctl_watch_key+0xec/0x2e0 security/keys/keyctl.c:1800 [<ffffffff8214ec84>] __do_sys_keyctl+0x3c4/0x490 security/keys/keyctl.c:2016 [<ffffffff84493a25>] do_syscall_x64 arch/x86/entry/common.c:50 [inline] [<ffffffff84493a25>] do_syscall_64+0x35/0xb0 arch/x86/entry/common.c:80 [<ffffffff84600068>] entry_SYSCALL_64_after_hwframe+0x44/0xae

📍 영향받는 시스템

메모리 해제 누락 패치 이전의 Linux 커널 버전 (watch_queue 및 keyctl watch 기능 사용 환경)

⚔️ 공격 벡터

로컬 사용자 권한으로 keyctl watch 기능을 반복 호출해 커널 메모리를 고갈시키는 서비스 거부(DoS) 형태

🛡️ 대응 방법

배포판 보안 업데이트를 적용하거나 수정이 포함된 최신 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