🇰🇷 한글 설명
Linux 커널의 TIPC 프로토콜에서 피어의 키 변경 시 AES-GCM 논스(nonce)가 재사용되는 취약점이 발견되었습니다. 이로 인해 암호화의 기밀성이 깨지고 인증 키가 노출되어 공격자가 암호문을 변조하거나 위조된 패킷을 생성할 수 있습니다. 이를 해결하기 위해 피어별 카운터 대신 TX 키 자체의 일관된 시퀀스 번호를 사용하도록 수정되었습니다.
💡 쉬운 설명
통신 암호화에 사용하는 일회용 번호가 중복되어 사용되는 보안 결함입니다. 이 결함을 이용하면 해커가 암호화된 데이터를 몰래 바꾸거나 가짜 데이터를 진짜처럼 속여 보낼 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
tipc: prevent GCM nonce reuse on peer key changes
TIPC can encrypt traffic between nodes using a different transmit key
for each node. In this mode, the AES-GCM nonce for a packet sent to a
known peer consists of a 32-bit prefix (a per-key salt XOR the peer's
address) followed by a 64-bit counter. That counter is stored in the
peer's RX crypto object. When the peer reports a change in which key
it uses to receive packets, TIPC resets this counter. The sender can
still be using the same TX key and salt, so subsequent packets reuse
earlier nonces. This nonce reuse breaks confidentiality and exposes
GCM's authentication key. This makes forgeries trivial: an attacker
can exploit CTR malleability to alter captured ciphertexts and use the
recovered authentication key to compute a valid tag for the modified
ciphertext, under the same key and nonce.
Use the TX key's existing aead->seqno counter instead. All encryptions
using that key object share the same atomic counter, so concurrent
encryptions get distinct nonce counter values. The counter survives
key activation and peer reconnection, and peer key-status reports
cannot reset it. This prevents those transitions from causing nonce
reuse while the same TX key remains installed.
The nonce format is unchanged, and receivers do not require consecutive
counter values, so sharing the counter across peers remains compatible
with existing receivers. A pre-existing check still invokes key
revocation in the unlikely event that the counter wraps to zero.
📍 영향받는 시스템
Linux kernel (TIPC 프로토콜을 사용하는 시스템)
⚔️ 공격 벡터
피어의 키 변경 과정을 이용해 동일한 키와 논스를 재사용하게 유도하여 암호화된 패킷을 변조 및 위조
🛡️ 대응 방법
TIPC 논스 생성 시 피어별 카운터 대신 TX 키의 원자적 시퀀스 번호(aead->seqno)를 사용하도록 커널 업데이트
🔧 검증 코드
현재 실행 중인 커널 버전을 확인하여 해당 취약점이 패치된 최신 보안 업데이트 버전인지 확인합니다.