🔍 CVE-2021-47243

7.1
CVSS Score
HIGH
2024-05-21
2026-08-04 10:16
✅ 완료

🇰🇷 한글 설명

Linux 커널의 sch_cake qdisc에서 TCP 옵션을 파싱할 때 경계 외 메모리를 읽는 취약점이 발견되었습니다. TCP 옵션 길이가 1인 경우, 특정 조건에서 루프가 실행되며 지정된 범위를 벗어난 1바이트를 추가로 읽어 들일 수 있습니다.

💡 쉬운 설명

인터넷 데이터 패킷을 처리하는 과정에서 데이터의 길이를 잘못 계산하여, 허용되지 않은 메모리 영역을 몰래 읽을 수 있는 문제입니다. 이로 인해 시스템 정보가 유출되거나 프로그램이 예기치 않게 종료될 수 있습니다.

🇺🇸 원문 (English)

In the Linux kernel, the following vulnerability has been resolved: sch_cake: Fix out of bounds when parsing TCP options and header The TCP option parser in cake qdisc (cake_get_tcpopt and cake_tcph_may_drop) could read one byte out of bounds. When the length is 1, the execution flow gets into the loop, reads one byte of the opcode, and if the opcode is neither TCPOPT_EOL nor TCPOPT_NOP, it reads one more byte, which exceeds the length of 1. This fix is inspired by commit 9609dad263f8 ("ipv4: tcp_input: fix stack out of bounds when parsing TCP options."). v2 changes: Added doff validation in cake_get_tcphdr to avoid parsing garbage as TCP header. Although it wasn't strictly an out-of-bounds access (memory was allocated), garbage values could be read where CAKE expected the TCP header if doff was smaller than 5.

📍 영향받는 시스템

Linux Kernel (sch_cake qdisc를 사용하는 시스템)

⚔️ 공격 벡터

조작된 TCP 옵션이 포함된 패킷을 전송하여 커널의 메모리 경계 외 읽기 유도

🛡️ 대응 방법

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:N/A:H

💻 영향받는 소프트웨어

Linux Kernel