CVE-2026-74653 in Linuxthông tin

Tóm tắt

Bởi VulDB • 22/08/2026

Trong kernel Linux, các lỗ hổng sau đây đã được khắc phục:

serial: 8250_of: xóa trạng thái treo của ngắt thời gian chờ nhận (RX-timeout) khi FIFO trống trên LPC32xx

Bộ UART NXP LPC32xx (PORT_LPC3220) có thể khóa một ngắt báo hiệu thời gian chờ ký tự RX trong khi FIFO RX đang rỗng: IIR báo cáo UART_IIR_RX_TIMEOUT (0x0c) nhưng LSR.DR lại không được đặt. Một lần hết hạn ký tự chỉ được xóa bằng cách đọc thanh ghi RHR, tuy nhiên hàm serial8250_rx_chars() chỉ đọc RHR khi LSR.DR đã được đặt, do đó điều kiện này không bao giờ bị xóa. Ngắt có mức kích hoạt (level-triggered) và sẽ bắn lại ngay lập tức, dẫn đến việc trên một CPU ARM926 đơn nhân, cơn bão ngắt gây ra tình trạng livelock cho CPU.

Vấn đề này có thể tái hiện khi người dùng mở cổng mặt trước (ttyS1) liên tục ở không gian người dùng: serial8250_do_set_termios() kích hoạt lại các ngắt sau khi khóa được giải phóng và trình xử lý sau đó sẽ quay vòng vô hạn với iir=0xcc, lsr=0x60, ier=0x05, khiến bộ phát hiện soft-lockup trong serial8250_handle_irq_locked() bị kích hoạt.

LPC32xx không có driver glue 8250 chuyên dụng; nó được điều khiển bởi driver generic 8250_of. Hãy thêm một trình xử lý ngắt (handle_irq) đặc thù cho phần cứng đối với PORT_LPC3220, được kết nối trong of_platform_serial_setup() tương tự như cách fsl8250_handle_irq được cài đặt. Trình xử lý này tuân theo mô hình của dw8250_handle_irq(): khi xảy ra thời gian chờ RX với FIFO trống (LSR.DR và LSR.BI đều không được đặt), nó thực hiện một lần đọc RHR để loại bỏ điều kiện lỗi, sau đó gọi serial8250_handle_irq_locked(). Không có dữ liệu nhận thực sự nào bị vứt bỏ, và đây là thao tác vô nghĩa (no-op) trên các UART hoạt động bình thường vốn không bao giờ báo cáo thời gian chờ trong khi DR được đặt.

Đây cùng loại lỗ hổng đã được xử lý tạm thời trong các driver 8250 khác; xem commit 424d79183af0 ("serial: 8250_dw: Tránh "quá nhiều công việc" từ ngắt rx timeout giả mạo") báo cáo iir=0xcc/lsr=0x60 giống hệt. Xem thêm UART_RX_TIMEOUT_QUIRK trong 8250_omap và ghi chú trong 8250_bcm7271.

If you want to get best quality of vulnerability data, you may have to visit VulDB.

chịu trách nhiệm

Linux

Đặt trước

15/08/2026

Tiết lộ

22/08/2026

Kiểm duyệt

được chấp nhận

EPSS

0.00000

KEV

không

Các hoạt động

rất thấp

Nguồn

Do you need the next level of professionalism?

Upgrade your account now!