Linux 커널에서는 다음 취약점이 해결되었습니다. tcp: ISN 예측을 가능하게 하는 오래된 CPU당 tcp_tw_isn 누수 수정 비난 커밋으로 인해 TIME_WAIT 파생 ISN이 skb 컨트롤에서 이동되었습니다. 값이 항상 소비된다고 가정하여 CPU별 변수를 차단합니다. 그것을 쓴 동일한 패킷에 대해 tcp_conn_request()에 의해. 그 가정 생산자 간의 여러 드롭 경로로 인해 위반됩니다. (__this_cpu_write(tcp_tw_isn, is) in tcp_v{4,6}_rcv()) 및 소비자 (tcp_conn_request()): -
Linux 커널에서는 다음 취약점이 해결되었습니다.
tcp: ISN 예측을 가능하게 하는 오래된 CPU당 tcp_tw_isn 누수 수정
비난 커밋으로 인해 TIME_WAIT 파생 ISN이 skb 컨트롤에서 이동되었습니다. 값이 항상 소비된다고 가정하여 CPU별 변수를 차단합니다. 그것을 쓴 동일한 패킷에 대해 tcp_conn_request()에 의해. 그 가정 생산자 간의 여러 드롭 경로로 인해 위반됩니다. (__this_cpu_write(tcp_tw_isn, is) in tcp_v{4,6}_rcv()) 및 소비자 (tcp_conn_request()):
패킷이 이러한 경로 중 하나에서 삭제되면 tcp_tw_isn은 설정된 상태로 유지됩니다.
동일한 CPU에서 처리된 다음 SYN은 0이 아닌 값을 사용합니다. tcp_conn_request(), 잠재적으로 예측 가능한 ISN을 수신합니다.
이 패치는 tcp_tw_isn을 skb->cb[]로 다시 이동하여 CPU별 오류를 제거합니다. 변수.
tcp_v{4,6}_fill_cb()에서는 이를 설정하지 마세요.
전체 코드 크기/복잡성에 미치는 영향은 거의 없습니다.
$ 스크립트/bloat-o-meter -t vmlinux.old vmlinux.new 추가/제거: 0/0 증가/축소: 2/1 증가/감소: 8/-15 (-7) 기능 이전 새 델타 tcp_v6_rcv 3038 3042 +4 tcp_v4_rcv 3035 3039 +4 tcp_conn_request 2938 2923 -15 합계: 이전=24436060, 이후=24436053, chg -0.00%
왜 이 VPI인가 (설명가능 · 실험적)
VPI 산정 기준
| 영향도 | 94.00 |
| 악용 신호(추가 악용신호 없음) | ×1.00 |
| VPI | 94.00 |
VPI 공식 vpi-v1 기준