In the Linux kernel, the following vulnerability has been resolved: tcp: fix corruption of urgent data on multi-segment retransmit On the
위협 신호 · CVSS · EPSS · KEV
이론적 심각도 점수
예측 데이터 없음
실측 악용 기록 없음
계획된 패치 주기 내 조치(60일 이내)
CVSS 벡터 · 메트릭
CVSS 벡터 정보 없음
상세 설명
In the Linux kernel, the following vulnerability has been resolved:
tcp: fix corruption of urgent data on multi-segment retransmit
On the normal xmit path, while in urgent mode we refuse to build a
multi-segment TSO packet, so every segment gets its own urg_ptr:
1/* tcp_write_xmit() */ 2limit = mss_now; 3if (tso_segs > 1 && !tcp_urg_mode(tp)) 4 limit = tcp_mss_split_point(...);The retransmit path has no such guard. __tcp_retransmit_skb() builds a
segs > 1 skb and hands it to the GSO layer, which only advances th->seq
per segment and copies urg_ptr verbatim:
1/* __tcp_retransmit_skb() */ 2len = cur_mss * segs; /* segs > 1, no urg_mode check */ 3... 4/* tcp_gso_segment(): bumps seq only, urg_ptr is copied */urg_ptr is an offset from the segment's own seq, so a copied value points
at a different place on each segment. The receiver rebuilds the absolute
urgent seq as seg.seq + urg_ptr, so it walks a moving urgent point instead
of the one OOB byte:
1seg1 seq 1 urg_ptr 5001 -> urgent @ 5001 (ok) 2seg2 seq 1001 urg_ptr 5001 -> urgent @ 6001 (wrong, +MSS) 3seg3 seq 2001 urg_ptr 5001 -> urgent @ 7001 (wrong, +2*MSS)The real OOB byte is never pointed at, so the receiver stops splicing it
out and delivers it as normal in-band data, corrupting the stream.
Guard the retransmit length like the xmit path: keep segs = 1 while in
urgent mode.
AI 심층 분석
공격 시나리오 · 재현 가능한 PoC 페이로드 · 즉시 적용 가능한 차단 패치를 한 번에 받아 보세요. 보안 운영팀이 그대로 점검·티켓팅에 쓸 수 있는 형태로 정리해 드립니다.
참고 자료 8
링크 내용 불러오는 중…