🇰🇷 한글 설명
Linux 커널의 netdevsim 모듈에서 nsim_dev->fa_cookie 메모리가 적절히 해제되지 않는 메모리 누수 취약점이 발견되었습니다. nsim_dev_trap_fa_cookie_write 함수에서 할당된 메모리가 nsim_drv_remove 호출 시 해제되지 않아 발생합니다.
💡 쉬운 설명
프로그램이 사용한 메모리를 다 쓰고 나서 돌려주지 않고 계속 쌓아두는 문제가 있습니다. 이 문제가 지속되면 시스템의 메모리가 부족해져 성능이 떨어지거나 시스템이 멈출 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
netdevsim: Fix memory leak of nsim_dev->fa_cookie
kmemleak reports this issue:
unreferenced object 0xffff8881bac872d0 (size 8):
comm "sh", pid 58603, jiffies 4481524462 (age 68.065s)
hex dump (first 8 bytes):
04 00 00 00 de ad be ef ........
backtrace:
[<00000000c80b8577>] __kmalloc+0x49/0x150
[<000000005292b8c6>] nsim_dev_trap_fa_cookie_write+0xc1/0x210 [netdevsim]
[<0000000093d78e77>] full_proxy_write+0xf3/0x180
[<000000005a662c16>] vfs_write+0x1c5/0xaf0
[<000000007aabf84a>] ksys_write+0xed/0x1c0
[<000000005f1d2e47>] do_syscall_64+0x3b/0x90
[<000000006001c6ec>] entry_SYSCALL_64_after_hwframe+0x63/0xcd
The issue occurs in the following scenarios:
nsim_dev_trap_fa_cookie_write()
kmalloc() fa_cookie
nsim_dev->fa_cookie = fa_cookie
..
nsim_drv_remove()
The fa_cookie allocked in nsim_dev_trap_fa_cookie_write() is not freed. To
fix, add kfree(nsim_dev->fa_cookie) to nsim_drv_remove().
📍 영향받는 시스템
Linux Kernel (netdevsim 모듈을 사용하는 버전)
⚔️ 공격 벡터
로컬 사용자가 netdevsim 모듈의 특정 기능을 반복적으로 호출하여 메모리 누수를 유도
🛡️ 대응 방법
커널 패치를 적용하여 nsim_drv_remove() 함수에 kfree(nsim_dev->fa_cookie)를 추가
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 수정된 패치 버전인지 확인