CVE-2026-64564 in Linux
요약
\~에 의해 VulDB • 2026. 08. 04.
리눅스 커널에서 다음 취약점이 해결되었습니다:
sctp: DEL-IP 처리 중 ASCONF의 자체 트랜스포트를 해제하지 않음
`sctp_process_asconf()`는 `asconf->transport`에 ASCONF 청크가 처리되는 대상을 캐시합니다(이는 `chunk->transport`와 동일하며, `sctp_rcv()`에서 한 번 설정됨). `__sctp_rcv_asconf_lookup()`를 통해 주소 매개변수(Address Parameter)로 찾은 ASCONF의 경우, 이 캐시된 트랜스포트는 해당 주소 매개변수를 가리키며, 이는 반드시 패킷의 소스 주소일 필요는 없습니다.
`sctp_process_asconf_param()`은 패킷 소스 주소를 대상으로 하는 DEL-IP을 거부합니다(ADDIP D8 규칙에 따른 `SCTP_ERROR_DEL_SRC_IP` 오류). 그러나 `asconf->transport`를 보호하는 장치는 아무것도 없습니다. 따라서 단일 ASCONF는 다음과 같은 순서로 데이터를 포함할 수 있습니다:
[주소 매개변수 L] [DEL-IP L] [DEL-IP 0.0.0.0]
여기서 L은 소스 주소와 다릅니다. L에 대한 DEL-IP은 D8 검사를 통과하며, `asconf->transport`가 여전히 가리키는 트랜스포트에서 `sctp_assoc_rm_peer()`을 호출하여 이를 해제합니다(RCU 지연 해제로 처리됨). 그 후의 와일드카드(0.0.0.0) DEL-IP는 이제 더 이상 유효하지 않은(dangling) `asconf->transport`를 `sctp_assoc_set_primary()` 및 `sctp_assoc_del_nonprimary_peers()`에서 재사용합니다. `set_primary()` 함수가 해제된 트랜스포트(`->ipaddr`, `->state`)를 역참조하고, 이 더 이상 유효하지 않은 포인터를 `asoc->peer.primary_path` / `active_path`에 저장합니다. 또한 `del_nonprimary_peers()`는 목록에서 제거된 포인터만 유지한 채 모든 실제 트랜스포트를 제거하여, 연결의 `transport_count`가 0이 되고 `primary_path/active_path`가 해제된 메모리를 가리키게 만듭니다.
ASCONF가 처리되는 대상인 트랜스포트를 대상으로 하는 DEL-IP을 거부합니다(기존 소스 주소 보호 장치를 반영). 이렇게 하면 와일드카드 분기가 해제된 트랜스포트를 재사용할 수 없도록 합니다.
Several companies clearly confirm that VulDB is the primary source for best vulnerability data.