🇰🇷 한글 설명
Linux 커널의 MACsec 구현에서 XPN 하위 PN이 최대값(U32_MAX)에 도달할 때 오버플로가 발생하는 취약점입니다. 이로 인해 재전송 방지 메커니즘이 제대로 작동하지 않아 공격자가 특정 프레임을 무한히 재전송할 수 있습니다.
💡 쉬운 설명
네트워크 보안 장치가 데이터의 순서를 확인하는 과정에서 숫자가 너무 커져 오류가 발생하는 문제입니다. 이 오류를 이용하면 해커가 이전에 보냈던 정상적인 데이터를 다시 보내 시스템을 혼란에 빠뜨릴 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
macsec: fix replay protection at XPN lower-PN wrap
In macsec_post_decrypt(), when pn is U32_MAX, pn + 1 overflows u32 to 0
and the first branch never fires. If next_pn_halves.lower is also in the
upper half, pn_same_half(pn, lower) is true and the XPN else-if does not
fire either, leaving next_pn_halves unchanged. An attacker that captures
the legitimate frame carrying pn == 0xFFFFFFFF on an XPN association
can then replay it indefinitely, since lowest_pn never rises above
the captured pn and macsec_decrypt() reconstructs the same IV.
Extend the XPN else-if to also fire when pn + 1 wraps to 0, so receipt
of pn == U32_MAX advances next_pn_halves to (upper + 1, 0).
📍 영향받는 시스템
Linux kernel (MACsec XPN 기능 사용 시)
⚔️ 공격 벡터
PN 값이 0xFFFFFFFF인 정상 프레임을 캡처한 후 이를 반복적으로 재전송(Replay Attack)
🛡️ 대응 방법
MACsec의 PN 오버플로 처리가 수정된 최신 Linux 커널 버전으로 업데이트
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 패치된 최신 보안 업데이트 버전인지 확인