Description
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.
Published: 2026-10-18
Score: 7.5 High
EPSS: < 1% Very Low
KEV: No
Impact: Denial of Service
Action: Patch
AI Analysis

Impact

The Linux kernel’s TIPC module processes group acknowledgment messages without fully validating their sequence numbers and the number of expected acknowledgers. A malformed GRP_ACK_MSG can decrement an unsigned 16‑bit counter, bc_ackers, from zero to 65535, which the kernel interprets as permanent congestion, blocking all future broadcasts in that group – a classic integer underflow flaw (CWE‑191). Because the module also accepts ACK values that are not the current broadcast sequence number, an attacker can cause the counter to be decremented twice in a single round, prematurely clearing bc_ackers or underflowing it. The result is a denial of service that prevents any successful broadcasts on compromised TIPC sockets, but it does not provide broader system compromise.

Affected Systems

Any Linux kernel deployment that compiles and loads the TIPC networking stack and has not yet incorporated the fix commit 48a5fe38772b is potentially vulnerable. All kernel releases older than that commit, regardless of minor or patch level, contain the flaw. The vulnerability applies to systems that accept TIPC traffic on network interfaces, whether local or remote.

Risk and Exploitability

The CVSS score of 7.5 reflects a high severity. The EPSS score of <1% indicates a low probability of current exploitation. It is not listed in the CISA KEV catalog, suggesting the flaw has limited or no known active exploitation. The likely attack vector requires an adversary to send crafted GRP_ACK_MSG packets to a TIPC endpoint, which typically means remote network access to a TIPC‑enabled interface – this statement is inferred from the nature of the protocol. Successful exploitation results in a Denial‑of‑Service condition by permanently marking the socket congested.

Generated by OpenCVE AI on October 22, 2026 at 22:48 UTC.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Apply a kernel update that includes commit 48a5fe38772b, which adds bounds checks to prevent bc_ackers from underflowing (mitigating CWE‑191).
  • If upgrading is not immediately possible, block or deny TIPC traffic on the affected interfaces with firewall rules or disable the TIPC module entirely, preventing malicious GRP_ACK_MSG packets from reaching the kernel.
  • Further contain the risk by restricting TIPC usage to trusted interfaces or by limiting the permissions of TIPC sockets so that only authorized users or applications can create or join TIPC groups.

Generated by OpenCVE AI on October 22, 2026 at 22:48 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Debian DLA Debian DLA DLA-4850-1 linux-6.12 security update
Ubuntu USN Ubuntu USN USN-8961-1 Linux kernel vulnerabilities
History

Tue, 20 Oct 2026 21:00:00 +0000

Type Values Removed Values Added
Weaknesses CWE-734

Tue, 20 Oct 2026 12:45:00 +0000

Type Values Removed Values Added
Weaknesses CWE-191
References
Metrics threat_severity

None

cvssV3_1

{'score': 7.5, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H'}

threat_severity

Important


Sun, 18 Oct 2026 18:30:00 +0000

Type Values Removed Values Added
Weaknesses CWE-734

Sun, 18 Oct 2026 15:30:00 +0000

Type Values Removed Values Added
Description 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.
Title tipc: reject invalid and unexpected GRP_ACK_MSG to prevent bc_ackers underflow
First Time appeared Linux
Linux linux Kernel
CPEs cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
Vendors & Products Linux
Linux linux Kernel
References

Subscriptions

Linux Linux Kernel
cve-icon MITRE

Status: PUBLISHED

Assigner: Linux

Published:

Updated: 2026-10-24T14:09:23.470Z

Reserved: 2026-09-25T10:25:14.356Z

Link: CVE-2026-98550

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-10-18T16:17:07.030

Modified: 2026-10-24T14:16:47.290

Link: CVE-2026-98550

cve-icon Redhat

Severity : Important

Publid Date: 2026-10-18T00:00:00Z

Links: CVE-2026-98550 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-10-22T23:00:14Z

Weaknesses
  • CWE-191

    Integer Underflow (Wrap or Wraparound)