🔍 CVE-2026-99019

0.0
CVSS Score
UNKNOWN
2026-10-23
2026-10-23 13:17
✅ 완료

🇰🇷 한글 설명

Linux 커널의 SCSI changer(ch) 드라이버가 데이터 전송 요소 장치의 scsi_device 참조를 해제하지 않아 메모리/참조 누수가 발생합니다. 장치를 제거해도 참조가 남아 새 장치 등록이 거부되고 모듈 언로드가 불가능해지며, 재부팅으로만 복구됩니다. 패치는 이름 출력 직후 참조를 해제하고 미사용 dt[] 배열을 제거합니다.

💡 쉬운 설명

테이프 라이브러리의 드라이브를 제거해도 커널이 그 드라이브를 계속 붙잡고 있어 같은 자리에 새 장치를 꽂아도 인식되지 않습니다. 시스템을 재부팅해야만 문제가 해결됩니다.

🇺🇸 원문 (English)

In the Linux kernel, the following vulnerability has been resolved: scsi: ch: Do not keep references to data transfer element devices ch_readconfig() looks up the scsi_device of every data transfer element whose SCSI id the changer reports in READ ELEMENT STATUS, and stores it in ch->dt[]. scsi_device_lookup() takes a reference, and nothing ever drops it: ch_destroy() frees the array with kfree(). ch->dt[] is read nowhere else - it only supplies the vendor, model and revision printed in the same loop. Once such a drive is removed, its scsi_device can never be released. It stays on the host's device list at its address, so a new device there is refused by anything that walks the list - target_core_pscsi reports "scsi_device_get() failed for H:C:T:L" - and the low-level driver's module can no longer be unloaded. Only a reboot recovers. It shows with any changer that reports its drives' ids; with the mhvtl virtual library (IBM 3573-TL personality), each create and remove of a library with four drives leaves four references behind, counted by the module's use count in lsmod. With ch not bound the count is unchanged, and with this patch applied it is unchanged too. Drop the reference as soon as the name has been printed, and remove the now unused dt[] array. That also removes the array leaked when ch_probe() fails after ch_readconfig(). The same leak was reported with an RFC patch in 2022, which was not merged.

📍 영향받는 시스템

SCSI changer(ch) 드라이버를 사용하는 Linux 커널 (수정 이전 버전, 패치 적용 전 커널 전반)

⚔️ 공격 벡터

외부 공격자의 직접 악용 경로는 확인되지 않으며, 장치 추가/제거를 반복하는 권한 있는 사용자나 장애 상황에서 자원 누수와 서비스 영향이 발생할 수 있습니다.

🛡️ 대응 방법

커널 소스의 최신 안정 버전 또는 해당 수정이 포함된 배포판 커널 업데이트를 적용하고 재부팅합니다.

🔧 검증 코드

커널 버전을 배포판 보안 공지에서 수정이 포함된 버전과 비교하고, ch 모듈이 로드되어 있지 않다면 이 취약점의 영향을 받지 않습니다.

Shell / Script
uname -r && lsmod | grep -E '^ch '

💻 영향받는 소프트웨어

Linux Kernel