HIGH Introduced in 5.5
tipc GCMNonce Reuse
CVE-2026-98805
CVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N
01Description
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.
02KernelScan AI Analysis
Risk summary
TIPC clusters using per-node encryption mode are vulnerable to nonce reuse when a peer changes its receive key. An attacker on the same cluster network can observe encrypted traffic, wait for a key change event, and exploit the resulting GCM nonce reuse to recover the authentication key, decrypt captured messages, and forge valid packets. This affects confidentiality and integrity of all encrypted TIPC communication.
Vulnerability analysis
TIPC's per-node encryption mode uses AES-GCM with a nonce composed of a per-key salt combined with the peer address and a 64-bit counter. The counter was stored per peer and reset to zero whenever that peer announced a change in its receive key. However, the sender's transmit key and salt remained unchanged, so after the reset new packets reused nonces previously used with the same key. Nonce reuse in GCM is catastrophic: it exposes the authentication key and allows an attacker to decrypt captured ciphertexts and forge valid tags for modified messages. The fix replaces the per-peer counter with the transmit key's global sequence counter, which is shared across all peers using that key and is never reset by peer key changes. This guarantees nonce uniqueness for the lifetime of the transmit key. An attacker needs only network access to the TIPC cluster (typically a private LAN) to observe traffic and wait for a key rotation; no local privileges or user interaction are required.
Lifecycle
03Fix Versions
| Branch | Introduced | Fixed in | Patch commit |
|---|---|---|---|
| 6.12 | 5.5 | 6.12.113 | 5c8ce13c792e |
| 6.18 | 5.5 | 6.18.56 | f74f100e4958 |
| 6.6 | 5.5 | 6.6.160 | a85a3dce4b6c |
| 7.2 | 5.5 | 7.2.10 | 60e0c2aeaa60 |
| mainline | 5.5 | 7.3 | 512ccd3d0e91 |
04CIP Kernels
State of the newest release of each Civil Infrastructure Platform SLTS tree, from CIP's own fix records.
| CIP tree | State |
|---|---|
| cip/6.12 | Affected — no CIP fix yet (latest 6.12.112-cip33) |
| cip/6.1 | Affected — no CIP fix yet (latest 6.1.189-cip61) |
| cip/6.1-rt | Affected — no CIP fix yet (latest 6.1.189-cip61-rt32) |
| cip/5.10 | Affected — no CIP fix yet (latest 5.10.271-cip78) |
| cip/5.10-rt | Affected — no CIP fix yet (latest 5.10.268-cip77-rt34) |