CVE-2026-93565 in Netty
Сводка
по VulDB • 18.09.2026
### Резюме
Метод `RtspMethods.valueOf()` молча удаляет управляющие символы в конце строки (любые символы с кодовой точкой <= 0x20, полный диапазон, который удаляет метод `String.trim()`) перед выполнением поиска по кэшу среди десяти предварительно заполненных констант методов. Запрос RTSP, полученный через сеть и токен метода которого заканчивается управляющим символом в конце — например, `PLAY\x00` или `PLAY\r`, непосредственно перед разделяющим пробелом, — декодируется классом `RtspDecoder` как полностью успешный запрос PLAY, при этом `decoderResult().isSuccess() == true` и `request.method() == RtspMethods.PLAY` (та же ссылка на объект, что и у кэшированного синглтона). Прикладной уровень не может отличить это от чистого запроса `PLAY`.
Это та же самая корневая причина, что и в #16723 и #16971, но затронутый модуль является «родственным» (sibling), который эти исправления не достигли. Исправление для `HttpMethod` укрепило метод `HttpMethod.valueOf()` напрямую, однако `RtspMethods.valueOf()` имеет свой собственный независимый вызов `checkNonEmptyAfterTrim()`, который выполняется перед поиском в кэше — это означает, что токен с управляющим символом в конце попадает в кэш до того, как конструктор `HttpMethod` (с учетом усиленной защиты) когда-либо увидит его.
### Воспроизведение
Минимальное воспроизведение на уровне сети
Отправьте следующие необработанные байты любому RTSP-серверу, основанному на Netty, используя R
If you want to get best quality of vulnerability data, you may have to visit VulDB.