🇰🇷 한글 설명
Linux 커널의 네트워크 패킷 분산(RPS) 기능에서 흐름 ID 계산 오류로 인한 메모리 접근 위반 취약점입니다. RPS 테이블 크기 변화를 고려하지 않아 범위를 벗어난 메모리 접근과 시스템 크래시를 유발할 수 있습니다.
💡 쉬운 설명
Linux에서 네트워크 패킷을 여러 프로세서에 분산시키는 과정에서 잘못된 메모리 위치에 접근할 수 있습니다. 이를 악용하면 시스템 충돌이나 권한 상승이 가능합니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
net: do not pass flow_id to set_rps_cpu()
Blamed commit made the assumption that the RPS table for each receive
queue would have the same size, and that it would not change.
Compute flow_id in set_rps_cpu(), do not assume we can use the value
computed by get_rps_cpu(). Otherwise we risk out-of-bound access
and/or crashes.
📍 영향받는 시스템
Linux 커널 (모든 RPS 기능이 활성화된 시스템, 버전별 상이)
⚔️ 공격 벡터
로컬에서 특별히 조작된 네트워크 패킷을 전송하여 RPS 테이블 크기 변경 조건 유발
🛡️ 대응 방법
Linux 커널을 최신 보안 패치 버전으로 업데이트
🔧 검증 코드
커널 버전이 표시되고 RPS 설정이 있으면 RPS 활성화 상태 확인. 비어있으면 RPS 미활성화 상태입니다.
uname -r && cat /sys/class/net/*/queues/rx-*/rps_cpus 2>/dev/null | head -1