CVE-2026-74653 in Linux정보

요약

\~에 의해 VulDB • 2026. 08. 23.

리눅스 커널에서 다음 취약점이 해결되었습니다:

serial: 8250_of - LPC32xx의 고정된 빈 RX FIFO에 대한 RX 타임아웃 해제

NXP LPC32xx UART(PORT_LPC3220)는 RX FIFO가 비어 있는 동안에도 RX 문자 시간 초과 인터럽트를 래치(latch)할 수 있습니다. 즉, IIR은 UART_IIR_RX_TIMEOUT(0x0c)를 보고하지만 LSR.DR은 클리어되어 있습니다. 문자 타임아웃은 RHR을 읽음으로써만 해제되지만, serial8250_rx_chars()는 LSR.DR이 설정된 경우에만 RHR을 읽으므로 이 상태가 결코 해제되지 않습니다. 인터럽트는 레벨 트리거 방식이며 즉시 다시 발생하므로, 단일 코어 ARM926 시스템에서는 이로 인한 인터럽트 폭주(interrupt storm)로 인해 CPU가 라이브락(livelock)됩니다.

사용자 공간에서 전면 패널 포트(ttyS1)를 반복적으로 열 때 재현 가능합니다: serial8250_do_set_termios()는 잠금 해제 시 인터럽트를 다시 활성화하며, 핸들러는 iir=0xcc, lsr=0x60, ier=0x05 상태로 영원히 스피닝(spins)하여 serial8250_handle_irq_locked()에서 소프트-락업 감지기를 트리거합니다.

LPC32xx에는 전용 8250 글루 드라이버(glue driver)가 없으며, 범용적인 8250_of에 의해 구동됩니다. PORT_LPC3220을 위한 하드웨어별 handle_irq를 추가하고, fsl8250_handle_irq가 설치되는 방식과 동일한 방법으로 of_platform_serial_setup()에서 연결합니다. 이 핸들러는 dw8250_handle_irq()를 따르며, 빈 FIFO(LSR.DR 및 LSR.BI 클리어) 상태에서 RX 타임아웃이 발생하면 해당 상태를 해제하기 위해 RHR을 한 번 읽은 후 serial8250_handle_irq_locked()를 호출합니다. 실제 수신된 데이터는 결코 버려지지 않으며, DR이 클리어된 타임아웃을 보고하지 않는 정상적인 UART에서는 이 작업이 무작위 연산(no-op)으로 처리됩니다.

이는 다른 8250 드라이버에서 이미 우회(workaround)된 동일한 유형의 버그입니다. commit 424d79183af0("serial: 8250_dw: Avoid 'too much work' from bogus rx timeout interrupt")을 참조하십시오(여기서도 동일한 iir=0xcc/lsr=0x60이 보고됨). 또한 8250_omap의 UART_RX_TIMEOUT_QUIRK 및 8250_bcm7271의 주석도 참고하시기 바랍니다.

Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.

책임이 있는

Linux

예약하다

2026. 08. 15.

모더레이션

수락

항목

VDB-394425

EPSS

0.00000

출처

Want to know what is going to be exploited?

We predict KEV entries!