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

In the Linux kernel, the following vulnerability has been resolved: SUNRPC: harden gss_krb5_unwrap_v2 against short tokens gss_krb5_unwrap

위협 신호 · CVSS · EPSS · KEV

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

이론적 심각도 점수

EPSS

예측 데이터 없음

KEV
미등재

실측 악용 기록 없음

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

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

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

CVSS 벡터 · 메트릭

CVSS 벡터 정보 없음

상세 설명

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

SUNRPC: harden gss_krb5_unwrap_v2 against short tokens

gss_krb5_unwrap_v2() reads the EC and RRC header fields at ptr+4 and
ptr+6 before validating that the token is at least GSS_KRB5_TOK_HDR_LEN
(16) bytes long, and its rotate_left() helper passes buf->len - base
to xdr_buf_subsegment() without verifying that base <= buf->len. When
a caller hands in a sub-16-byte token, or a token whose declared len
leaves base past the end of the buffer, three distinct failures follow:

text
1gss_krb5_unwrap_v2(offset, len, buf)
2 ptr = buf->head[0].iov_base + offset
3 ec = *(ptr + 4) /* OOB read on short head */
4 rrc = *(ptr + 6) /* OOB read on short head */
5 rotate_left(offset + 16, buf, rrc)
6 xdr_buf_subsegment(buf, &subbuf,
7 base, buf->len - base) /* u32 wrap when base > len */
8 _rotate_left(&subbuf, shift)
9 shift %= buf->len /* divide-by-zero when base == len */

After decryption, the cleanup arithmetic has the same shape:

text
1movelen = min_t(unsigned int, buf->head[0].iov_len, len);
2movelen -= offset + GSS_KRB5_TOK_HDR_LEN + headskip;
3BUG_ON(offset + GSS_KRB5_TOK_HDR_LEN + headskip + movelen >
4 buf->head[0].iov_len);

The BUG_ON re-adds the value just subtracted, so it reduces to
min(A, B) > A and is permanently false; it cannot catch the unsigned
underflow of movelen, which then drives a ~UINT_MAX-byte memmove().

Add four defense-in-depth guards inside the unwrap core so it is safe
regardless of what its callers validate:

  • reject tokens with len - offset < GSS_KRB5_TOK_HDR_LEN before
    touching ptr+4/ptr+6;
  • bail from rotate_left() when buf->len <= base, covering both the
    underflow and zero-length cases;
  • return early from _rotate_left() when buf->len is zero, so the
    shift %= buf->len modulo cannot fault;
  • replace the dead BUG_ON with a live check that returns
    GSS_S_DEFECTIVE_TOKEN before the movelen subtraction.

AI 심층 분석

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