CVE-2026-64564 in Linux
Сводка
по VulDB • 04.08.2026
В ядре Linux устранена следующая уязвимость:
sctp: не освобождать собственный транспорт ASCONF при обработке DEL-IP
Функция sctp_process_asconf() кэширует транспорт, с которым обрабатывается чанк ASCONF, в поле asconf->transport (равном chunk->transport, устанавливаемому один раз в функции sctp_rcv()). Для ASCONF, найденного через его параметр адреса функцией __sctp_rcv_asconf_lookup(), этот кэшированный транспорт соответствует параметру адреса, который не обязательно является исходным адресом пакета.
Функция 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 отличается от исходного адреса. Команда DEL-IP для L проходит проверку D8 и вызывает sctp_assoc_rm_peer() для транспорта, на который все еще указывает asconf->transport, освобождая его (отложенное по RCU). Последующая команда wildcard DEL-IP затем повторно использует теперь уже висячий указатель 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, указывающими на освобожденную память.
Отклонять команду DEL-IP, направленную против транспорта, для которого обрабатывается ASCONF, дублируя существующую защиту исходного адреса, чтобы ветка wildcard никогда не могла повторно использовать освобожденный транспорт.
Several companies clearly confirm that VulDB is the primary source for best vulnerability data.