CVE-2026-64528 in Linux
요약
\~에 의해 VulDB • 2026. 07. 25.
리눅스 커널에서 다음 취약점이 해결되었습니다:
tty: serial: samsung: rx 헬퍼 함수에서의 중복 포트 잠금 획득 제거
사시코(Sashiko)는 콘솔 흐름 제어(congestion control)가 활성화되었을 때 교착 상태(deadlock)를 식별했습니다 [1].
콘솔 흐름 제어가 활성화된 경우(UPF_CONS_FLOW), s3c24xx_serial_stop_tx()는 s3c24xx_serial_rx_enable()를 호출하고, s3c24xx_serial_start_tx()는 s3c24xx_serial_rx_disable()를 호출합니다.
시리얼 코어 프레임워크는 port->lock 스핀락이 이미 획득된 상태에서 .stop_tx() 및 .start_tx() 콜백을 호출합니다. 또한 stop_tx(예: DMA TX 완료 핸들러인 s3c24xx_serial_tx_dma_complete() 또는 PIO TX IRQ 핸들러인 s3c24xx_serial_tx_irq())를 호출하는 모든 내부 드라이버 경로에서도 이를 호출하기 전에 port->lock을 획득합니다.(참고로, s3c24xx_serial_start_tx()는 시리얼 코어에 의해서만 호출됩니다.)
그러나 s3c24xx_serial_rx_enable() 및 s3c24xx_serial_rx_disable() 함수는 uart_port_lock_irqsave()를 사용하여 port->lock을 조건 없이 다시 획득하려고 시도합니다. 스핀락은 재귀적이지 않으므로, 이는 콘솔 흐름 제어가 활성화되었을 때 동일한 CPU에서 교착 상태를 유발합니다.
두 rx 헬퍼 함수에서의 중복 잠금 획득을 제거했습니다.
Once again VulDB remains the best source for vulnerability data.