-

CVE-2026-98550

tipc: reject invalid and unexpected GRP_ACK_MSG to prevent bc_ackers underflow

In the Linux kernel, the following vulnerability has been resolved:

tipc: reject invalid and unexpected GRP_ACK_MSG to prevent bc_ackers underflow

Commit 48a5fe38772b ("tipc: fix bc_ackers underflow on duplicate
GRP_ACK_MSG") rejected duplicate/stale ACKs in tipc_group_proto_rcv()
by returning early when less_eq(acked, m->bc_acked).

However, that check remains incomplete in two ways:

1. When grp->bc_ackers is zero (e.g. on a quiet group, when replicast
   ACKs were not requested, or after all expected members have already
   acknowledged), an unexpected GRP_ACK_MSG with acked > m->bc_acked
   passes less_eq() and unconditionally decrements grp->bc_ackers.
   Because bc_ackers is a u16, this wraps to 65535, causing
   tipc_group_bc_cong() to permanently report congestion and blocking
   all future group broadcasts on the socket.

2. During an active broadcast round (grp->bc_ackers > 0), the sender
   transmits packet S and advances grp->bc_snd_nxt to S + 1. Receivers
   increment their expected counter to S + 1 upon consuming packet S,
   so the only valid ACK value for the current round is strictly
   acked == grp->bc_snd_nxt.

   However, tipc_group_update_bc_members() initializes each member's
   m->bc_acked to prev = grp->bc_snd_nxt - 1 (S - 1 before increment).
   This leaves a 2-sequence gap (S - 1 to S + 1) in sequence space.
   An incoming ACK is therefore neither rejected as duplicate nor
   prevented from decrementing grp->bc_ackers if an unexpected or stale
   value (such as S) is received. A member sending acked = S followed
   by acked = S + 1 could decrement grp->bc_ackers twice in the same
   round, prematurely clearing bc_ackers or underflowing it.

Fix this by:
- Dropping GRP_ACK_MSG immediately if grp->bc_ackers is zero.
- Requiring acked == grp->bc_snd_nxt and rejecting duplicates where
  m->bc_acked == acked. Because replicast broadcast rounds are strictly
  sequential, only grp->bc_snd_nxt can be acknowledged, and each member
  can acknowledge at most once per round.

Note that a related pre-existing issue in tipc_group_delete_member()
(where grp->bc_ackers decrementing to zero upon member departure does
not restore *grp->open or trigger a socket wakeup) will be addressed
in a separate patch.
Daten sind bereitgestellt durch das CVE Programm von einer CVE Numbering Authority (CNA) (Unstrukturiert).
HerstellerLinux
≫
Produkt Linux
Default Statusunaffected
Version 2f487712b89376fce267223bbb0db93d393d4b09
Version < edc6593c442278fceff0120e8cc58bc592168c35
Status affected
Version 2f487712b89376fce267223bbb0db93d393d4b09
Version < 9b94a90651e1fa573c6ac6a5a6b269d5874df2c0
Status affected
Version 2f487712b89376fce267223bbb0db93d393d4b09
Version < 507a27435b2bb1f22e3a3674f6a6553eb815021b
Status affected
Version 2f487712b89376fce267223bbb0db93d393d4b09
Version < 80a9ccfc24d3776ef6753a57315e726475fac7d7
Status affected
Version 2f487712b89376fce267223bbb0db93d393d4b09
Version < 478fb08d0c2a53002a721d22b8d6681ec971d90f
Status affected
Version 2f487712b89376fce267223bbb0db93d393d4b09
Version < 12cc3a1eac5a2a06b67a7b85f0f48ff241a94d1b
Status affected
Version 2f487712b89376fce267223bbb0db93d393d4b09
Version < b0e517961f09b9f60d338d1ea4e17aacdbf206f0
Status affected
Version 2f487712b89376fce267223bbb0db93d393d4b09
Version < 99cc2a62e07a44a22254d7beca9ef1f8ad886d0d
Status affected
HerstellerLinux
≫
Produkt Linux
Default Statusaffected
Version 4.15
Status affected
Version 0
Version < 4.15
Status unaffected
Version <= 5.10.*
Version 5.10.271
Status unaffected
Version <= 5.15.*
Version 5.15.222
Status unaffected
Version <= 6.1.*
Version 6.1.189
Status unaffected
Version <= 6.6.*
Version 6.6.158
Status unaffected
Version <= 6.12.*
Version 6.12.112
Status unaffected
Version <= 6.18.*
Version 6.18.55
Status unaffected
Version <= 7.2.*
Version 7.2.9
Status unaffected
Version <= *
Version 7.3
Status unaffected
VulnDex Vulnerability Enrichment
Diese Information steht angemeldeten Benutzern zur Verfügung. Login Login
Zu dieser CVE wurde keine Warnung gefunden.
EPSS Metriken
Typ Quelle Score Percentile
EPSS FIRST.org 0.21% 0.106
CVSS Metriken
Quelle Base Score Exploit Score Impact Score Vector String
Es wurden noch keine Informationen zu CWE veröffentlicht.
https://git.kernel.org/stable/c/edc6593c442278fceff0120e8cc58bc592168c35
https://git.kernel.org/stable/c/9b94a90651e1fa573c6ac6a5a6b269d5874df2c0
https://git.kernel.org/stable/c/507a27435b2bb1f22e3a3674f6a6553eb815021b
https://git.kernel.org/stable/c/80a9ccfc24d3776ef6753a57315e726475fac7d7
https://git.kernel.org/stable/c/478fb08d0c2a53002a721d22b8d6681ec971d90f
https://git.kernel.org/stable/c/12cc3a1eac5a2a06b67a7b85f0f48ff241a94d1b
https://git.kernel.org/stable/c/b0e517961f09b9f60d338d1ea4e17aacdbf206f0
https://git.kernel.org/stable/c/99cc2a62e07a44a22254d7beca9ef1f8ad886d0d