Kestrel
대시보드로 돌아가기
CVE-2026-98550UNKNOWNMITRENVD대응게시일: 2026. 10. 18.수정일: 2026. 10. 19.CNA: 416baaa9-dc9f-4396-8d5f-8c081fb06d67Received

In the Linux kernel, the following vulnerability has been resolved: tipc: reject invalid and unexpected GRP_ACK_MSG to prevent bc_ackers un

위협 신호 · CVSS · EPSS · KEV

정기 패치· 높은 악용 신호 없음
CVSS
—unknown

이론적 심각도 점수

EPSS
—

예측 데이터 없음

KEV
미등재

실측 악용 기록 없음

권장 대응 기한60일 이내CISA SSVC 기준

계획된 패치 주기 내 조치(60일 이내)

외부 노출· KEV 미등재 · 자동화 어려움 · 부분 영향 · 외부 노출

CVSS 벡터 · 메트릭

CVSS 벡터 정보 없음

상세 설명

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.

AI 심층 분석

공격 시나리오 · 재현 가능한 PoC 페이로드 · 즉시 적용 가능한 차단 패치를 한 번에 받아 보세요. 보안 운영팀이 그대로 점검·티켓팅에 쓸 수 있는 형태로 정리해 드립니다.