CVE-2026-72020 in Linux
요약
\~에 의해 VulDB • 2026. 08. 15.
리눅스 커널에서 다음 취약점이 해결되었습니다:
ipvs: ip_vs_conn_new()에서 전체 ip_vs_seq 구조체를 초기화함
커밋 9a05475cebdd("ipvs: ip_vs_conn_new에서 kmem_cache_zalloc 피하기")는 ip_vs_conn_new() 함수가 kmem_cache_alloc()을 사용하여 ip_vs_conn 객체를 할당하도록 변경했습니다. 이 함수는 이후 여러 필드를 명시적으로 초기화하지만, 두 개의 struct ip_vs_seq 멤버 중 in_seq.delta와 out_seq.delta만 재설정합니다.
그 결과 init_seq 및 previous_delta가 초기화되지 않은 상태로 남습니다. 이는 일반적으로 IP_VS_CONN_F_IN_SEQ 또는 IP_VS_CONN_F_OUT_SEQ 플래그가 설정되어 있지 않으면 무해하게 동작합니다. 그러나 동기화 메시지로부터 학습된 연결의 경우, ip_vs_proc_conn()은 해당 플래그를 IP_VS_CONN_F_BACKUP_MASK에서 보존하고, 메시지에 IPVS_OPT_SEQ_DATA가 누락되면 opt=NULL을 전달합니다. 이 경우 새 연결이 SEQ 플래그는 설정된 상태로 해시되지만 in_seq/out_seq의 나머지 부분은 여전히 슬랩(slab) 메모리의 이전 데이터를 포함하게 됩니다.
나중에 이러한 연결에 대한 패킷이 IPVS 애플리케이션 헬퍼에서 처리될 때, vs_fix_seq() 및 vs_fix_ack_seq() 함수는 previous_delta와 init_seq를 사용하여 TCP 시퀀스 번호를 다시 작성합니다. 따라서 잘못된 형식의 동기화 메시지는 전달된 패킷의 TCP seq/ack 번호에 슬랩 메모리의 이전 데이터를 포함시키거나, 전달되는 TCP 흐름을 손상시킬 수 있습니다.
연결이 게시되기 전에 struct ip_vs_seq 멤버 전체를 완전히 재설정하십시오. 이는 기존 "struct ip_vs_seq 초기화" 주석과 일치하며, 유효한 시퀀스 데이터가 나중에 설치될 때까지 시퀀스 조정 게이트를 비활성 상태로 유지합니다.
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.