🇰🇷 한글 설명
Linux 커널의 SCSI 장치 핸들러(scsi_dh_alua) 모듈에서 alua_activate() 함수의 오류 처리 경로 중 alua_rtpg_queue() 실패 시 'qdata' 메모리가 해제되지 않아 메모리 누수가 발생하는 문제입니다. 오류 경로에서 'qdata'를 해제하도록 수정되었습니다.
💡 쉬운 설명
컴퓨터의 리눅스 커널이 저장 장치 경로 전환 작업 중 오류가 나면 사용하던 메모리를 반환하지 않습니다. 이 작은 메모리 누수가 누적되면 시스템 메모리가 점점 줄어들 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
scsi: scsi_dh_alua: Fix memleak for 'qdata' in alua_activate()
If alua_rtpg_queue() failed from alua_activate(), then 'qdata' is not
freed, which will cause following memleak:
unreferenced object 0xffff88810b2c6980 (size 32):
comm "kworker/u16:2", pid 635322, jiffies 4355801099 (age 1216426.076s)
hex dump (first 32 bytes):
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
40 39 24 c1 ff ff ff ff 00 f8 ea 0a 81 88 ff ff @9$.............
backtrace:
[<0000000098f3a26d>] alua_activate+0xb0/0x320
[<000000003b529641>] scsi_dh_activate+0xb2/0x140
[<000000007b296db3>] activate_path_work+0xc6/0xe0 [dm_multipath]
[<000000007adc9ace>] process_one_work+0x3c5/0x730
[<00000000c457a985>] worker_thread+0x93/0x650
[<00000000cb80e628>] kthread+0x1ba/0x210
[<00000000a1e61077>] ret_from_fork+0x22/0x30
Fix the problem by freeing 'qdata' in error path.
📍 영향받는 시스템
메모리 누수 수정이 포함되기 이전의 Linux 커널 (ALUA 기반 SCSI 다중 경로 장치를 사용하는 시스템)
⚔️ 공격 벡터
원격 공격 경로가 명확하지 않으며, 주로 장애 상황에서 메모리가 누적되어 서비스 안정성이나 가용성에 영향을 줄 수 있는 결함입니다.
🛡️ 대응 방법
배포판에서 제공하는 해당 수정이 포함된 최신 리눅스 커널 패키지로 업데이트하고 시스템을 재부팅하세요.
🔧 검증 코드
출력된 커널 버전을 배포판의 보안 권고나 패치 목록과 대조하여 수정이 포함되었는지 확인하고, CONFIG_SCSI_DH_ALUA=m 또는 =y가 나오면 해당 모듈이 빌드되어 있어 영향을 받을 수 있음을 의미합니다.
uname -r && (grep -E 'CONFIG_SCSI_DH_ALUA' /boot/config-$(uname -r) 2>/dev/null || echo 'config not found')