🇰🇷 한글 설명
Linux 커널의 mvpp2 네트워크 드라이버에서 TCAM 및 SRAM 메모리 보호가 미흡하여 발생하는 메모리 오염 취약점입니다. 여러 CPU에서 동시에 mvpp2_set_rx_mode() 함수를 호출할 경우, 인덱스 레지스터 설정 과정에서 원자성이 보장되지 않아 데이터가 손상될 수 있습니다. 이로 인해 분류기 유닛이 유니캐스트 패킷을 모두 드롭하는 네트워크 장애가 발생할 수 있습니다.
💡 쉬운 설명
여러 개의 CPU가 동시에 네트워크 설정을 변경하려고 할 때, 메모리 기록 순서가 꼬이면서 데이터가 망가지는 문제입니다. 이로 인해 네트워크 장비가 정상적인 데이터를 통과시키지 못하고 모두 버리는 현상이 발생할 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
net: mvpp2: Prevent parser TCAM memory corruption
Protect the parser TCAM/SRAM memory, and the cached (shadow) SRAM
information, from concurrent modifications.
Both the TCAM and SRAM tables are indirectly accessed by configuring
an index register that selects the row to read or write to. This means
that operations must be atomic in order to, e.g., avoid spreading
writes across multiple rows. Since the shadow SRAM array is used to
find free rows in the hardware table, it must also be protected in
order to avoid TOCTOU errors where multiple cores allocate the same
row.
This issue was detected in a situation where `mvpp2_set_rx_mode()` ran
concurrently on two CPUs. In this particular case the
MVPP2_PE_MAC_UC_PROMISCUOUS entry was corrupted, causing the
classifier unit to drop all incoming unicast - indicated by the
`rx_classifier_drops` counter.
📍 영향받는 시스템
Linux kernel (mvpp2 driver 사용 환경)
⚔️ 공격 벡터
로컬 환경에서 다중 코어를 이용한 동시 네트워크 모드 설정 시도 (Race Condition)
🛡️ 대응 방법
Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트하십시오.
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 수정된 패치 버전 이후인지 확인하십시오.