🔍 CVE-2024-44951

7.8
CVSS Score
HIGH
2024-09-04
2026-10-30 13:17
✅ 완료

🇰🇷 한글 설명

Linux 커널의 sc16is7xx 시리얼 드라이버에서 TX FIFO 데이터가 손상되는 취약점이 발견되었습니다. 채널별 잠금 방식 변경으로 인해 채널 A의 수신 데이터가 채널 B의 송신 버퍼를 오염시키는 현상이 발생합니다.

💡 쉬운 설명

시리얼 통신 장치에서 데이터를 주고받을 때, 한쪽에서 받는 데이터가 다른 쪽에서 보내는 데이터와 섞여버리는 오류가 있습니다. 이로 인해 잘못된 정보가 전송될 수 있습니다.

🇺🇸 원문 (English)

In the Linux kernel, the following vulnerability has been resolved: serial: sc16is7xx: fix TX fifo corruption Sometimes, when a packet is received on channel A at almost the same time as a packet is about to be transmitted on channel B, we observe with a logic analyzer that the received packet on channel A is transmitted on channel B. In other words, the Tx buffer data on channel B is corrupted with data from channel A. The problem appeared since commit 4409df5866b7 ("serial: sc16is7xx: change EFR lock to operate on each channels"), which changed the EFR locking to operate on each channel instead of chip-wise. This commit has introduced a regression, because the EFR lock is used not only to protect the EFR registers access, but also, in a very obscure and undocumented way, to protect access to the data buffer, which is shared by the Tx and Rx handlers, but also by each channel of the IC. Fix this regression first by switching to kfifo_out_linear_ptr() in sc16is7xx_handle_tx() to eliminate the need for a shared Rx/Tx buffer. Secondly, replace the chip-wise Rx buffer with a separate Rx buffer for each channel.

📍 영향받는 시스템

sc16is7xx 드라이버를 사용하는 Linux 커널 시스템

⚔️ 공격 벡터

특정 타이밍에 수신과 송신이 동시에 발생하도록 유도하여 데이터 오염 유발

🛡️ 대응 방법

Linux 커널을 최신 패치가 적용된 버전으로 업데이트

🔧 검증 코드

현재 실행 중인 커널 버전을 확인하여 취약점이 해결된 패치 버전인지 확인합니다.

Shell / Script
uname -r

📊 CVSS Vector String

CVSS Vector
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H

💻 영향받는 소프트웨어

Linux Kernel