Coturn — это бесплатная реализация TURN и STUN Server с открытым исходным кодом. До версии 4.15.0 злоумышленник на пути мог добавлять атрибуты после MESSAGE-INTEGRITY к аутентифицированному запросу STUN по простому UDP или TCP, корректировать длину заголовка STUN и пересчитывать неключевой FINGERPRINT, в то время как исходный HMAC остается действительным, поскольку он охватывает только префикс сообщения. Синтаксический анализ на стороне сервера в src/server/ns_turn_server.c продолжается после MESSAGE-INTEGRITY через handle_turn_allocate(), handle_turn_create_permission(), handle_turn_refresh() и handle_turn_command(), позволяя завершающим атрибутам LIFETIME, XOR-PEER-ADDRESS или ORIGIN переопределить время существования выделения, внедрить разрешение или обойти проверку происхождения.
Развертывания TLS и DTLS предотвращают эту модификацию при передаче. Эта проблема исправлена в версии 4.15.0.
Показать оригинальное описание (EN)
Coturn is a free open source implementation of TURN and STUN Server. Prior to 4.15.0, an on-path attacker can append attributes after MESSAGE-INTEGRITY to an authenticated STUN request on plain UDP or TCP, adjust the STUN header length, and recompute the unkeyed FINGERPRINT while the original HMAC remains valid because it covers only the message prefix. Server-side parsing in src/server/ns_turn_server.c continues past MESSAGE-INTEGRITY through handle_turn_allocate(), handle_turn_create_permission(), handle_turn_refresh(), and handle_turn_command(), allowing trailing LIFETIME, XOR-PEER-ADDRESS, or ORIGIN attributes to override allocation lifetime, inject a permission, or bypass the origin check. TLS and DTLS deployments prevent this in-transit modification. This issue is fixed in version 4.15.0.
Характеристики атаки
Последствия
Строка CVSS v4.0