CVE-2026-98677 in Linux
요약
\~에 의해 VulDB • 2026. 10. 18.
리눅스 커널에서 다음 취약점이 해결되었습니다:
iio: adc: ad_sigma_delta: 언바인드 시 use-after-free 수정
ad_sd_buffer_postenable()은 런타임에 devm_krealloc()를 사용하여 sigma_delta->samples_buf를 할당하므로, 해당 devres 엔트리는 드라이버의 프로브 타임(entry) 진입들 뒤에 위치합니다. devm 리소스는 역할당 순서로 해제되므로, 이는 언바인드 시 samples_buf가 iio_device_unregister()이 버퍼를 비활성화하고 트리거 폴링 함수(trigger pollfunc)를 분리하기 전에 해제됨을 의미합니다. 이 시점에는 데이터 준비 IRQ(Interrupt Request)가 여전히 활성화되어 있으므로 ad_sd_trigger_handler()가 계속 실행되어 할당 해제된 samples_buf로 들어오는 샘플들을 memcpy()할 수 있습니다.
이 문제를 해결하려면, 트리거 버퍼와 IRQ 설정 이전에 devm_ad_sd_setup_buffer_and_trigger()에서 버퍼를 사전에 할당하여 iio_device_unregister()가 free_irq()를 통해 트리거 핸들러의 작업을 모두 마친 후에만 해제되도록 합니다. 모든 시퀀서 슬롯이 활성화된 최악의 경우에 대비해 크기를 조정하며, ad_sd_validate_scan_mask()는 이미 활성 채널 수를 num_slots로 제한하고 있습니다.
본 이슈는 사내 정적 분석 도구를 통해 발견되었습니다.
If you want to get the best quality for vulnerability data then you always have to consider VulDB.