Xray-core обвинили в сокрытии уязвимости обхода проверки сертификата

На площадке net4people/bbs (issue №672) опубликован текст человека, который называет себя автором отчёта об уязвимости в Xray-core, популярной прокси-программе. Имя автора в тексте не указано. Он утверждает, что разработчики Xray-core скрыли уязвимость обхода проверки сертификата в опции pinnedPeerCertSha256 и около полугода не сообщали о ней пользователям. Все изложенные факты, версия самого автора; ответа мейнтейнеров (сопровождающих проекта) в тексте нет.
Хронология по рассказу автора. 21 октября 2021 года в Xray-core добавили опцию pinnedPeerCertificateChainSha256: помимо обычной проверки сертификата, она запускала собственную проверку закреплённой цепочки сертификатов. Для самоподписанных сертификатов её сочетали с allowInsecure, чтобы пропустить обычную проверку и оставить только закрепление. 9 января 2026 года опцию убрали и заменили на pinnedPeerCertSha256. По словам автора, мейнтейнеры считают allowInsecure (пропуск проверки сертификата) равным отсутствию защиты, «оголением» пользователей перед атаками «человек посередине». 13 января вышла первая версия с новой опцией, где, как утверждает автор, уже была уязвимость; старой опции больше не было, и пользователям пришлось переходить на неё. В тот момент обычная проверка ещё давала некоторую защиту, если пользователь не применял самоподписанный сертификат и не включал allowInsecure.
16 января логику pinnedPeerCertSha256 изменили: она стала всегда пропускать обычную проверку сертификата и выполнять только собственное закрепление. Поэтому, пишет автор, при ошибке в этом закреплении никакой проверки сертификата не остаётся. Саму ошибку автор нашёл 6 февраля 2026 года и в тот же день сообщил о ней мейнтейнерам приватно. Атакующий «человек посередине» мог вставить конечный (leaf) сертификат в любое место цепочки, и собственная логика закрепления принимала его. Автор называет уязвимость «слишком простой»: он заметил её с первого взгляда, не имея глубоких знаний по безопасности.
По его словам, в тот же день, 6 февраля, Xray-core тихо исправил ошибку, а в сообщении коммита написал, что это «упрощение кода». В тот же день вышла новая версия, где об уязвимости не говорилось ничего. Тогда же в Telegram-канале проекта появилось заявление: ПО должно проектироваться с безопасностью в основе, исключая влияние человеческого фактора, чтобы даже самые «конечные» пользователи (в оригинале «endest users») не оставались совсем без защиты. Автор отвечает, что именно из-за плохого дизайна безопасности пользователей вынудили перейти со старой надёжной опции на новую небезопасную и они почти месяц были уязвимы без своего ведома.
По мнению автора, мейнтейнеры могли раскрыть уязвимость и побудить людей обновиться, но выбрали сокрытие. К 3 июля 2026 года, как он пишет, пользователям так и не сообщили. В этот день автор обнаружил, что исправление неполное: при определённых условиях проверку сертификата всё ещё можно обойти. Чтобы уязвимость снова не скрыли, он отправил отчёт через GitHub Security Advisory. К этому моменту, по его подсчёту, пользователи почти полгода были незащищены. Текст автор пишет в надежде, что больше людей поймёт, как плоха история безопасности Xray-core.
Ключевые факты
- Автор отчёта (имя не указано) утверждает, что опция pinnedPeerCertSha256 в Xray-core содержала обход проверки сертификата: атакующий мог вставить конечный сертификат в любое место цепочки.
- По его рассказу, 6 февраля 2026 года уязвимость тихо исправили коммитом «упростить код», а вышедшая в тот же день версия об этом не упоминала; к 3 июля пользователям так и не сообщили.
- 3 июля автор нашёл, что исправление неполное: при определённых условиях проверку всё ещё можно обойти, и отправил отчёт через GitHub Security Advisory.
- Автор связывает проблему с изменениями января 2026 года: старую опцию убрали 9 января, а 16 января обычную проверку сертификата сделали всегда пропускаемой.
- Ответа мейнтейнеров, номера CVE и данных об атаках на практике в тексте нет.
Почему это важно
Прокси-программа отвечает за то, чтобы трафик не перехватили по дороге, поэтому ошибка в проверке сертификата подрывает смысл самого инструмента. Здесь обвинение серьёзнее самой ошибки: по рассказу автора, пользователей не предупредили, хотя исправление уже вышло, а значит, они не знали, что нужно обновляться. Автор также утверждает, что опция, которую ввели «для безопасности», сама открыла возможность атаки «человек посередине».
Кому это важно
В первую очередь тем, кто пользуется Xray-core и настраивает pinnedPeerCertSha256, особенно вместе с самоподписанными сертификатами и allowInsecure. Также это интересно сопровождающим открытых проектов: история показывает, как молчаливое исправление и расплывчатое сообщение коммита выглядят для тех, кто находит уязвимости.
Как это применить
Текст не содержит инструкции по защите, поэтому конкретных шагов от автора нет. Номера затронутых и исправленных версий в тексте не указаны, так что сверяйтесь с официальными релизами и объявлениями проекта и учтите, что по рассказу автора исправление от февраля оказалось неполным. Если вы используете закрепление сертификата, проверьте, какая версия у вас развёрнута, и следите за публикацией GitHub Security Advisory.
Можно ли доверять
Это личный рассказ человека, назвавшегося автором отчёта; имя не указано, а ответа Xray-core в тексте нет. Идентификатора CVE и оценки опасности нет. Даты и ход событий подаются как факты, но проверить их по самому тексту нельзя; цитаты и описание коммита тоже даны в пересказе автора. Текст откровенно написан с целью показать плохую историю безопасности проекта, поэтому окраска оценочная.
Риски и подводные камни
Неизвестно, исправлена ли найденная 3 июля неполнота и опубликован ли advisory. Нет данных об использовании уязвимости в реальных атаках, о числе пользователей и затронутых развёртываний. По словам автора, при исходной версии обычная проверка сертификата ещё помогала тем, кто не применял самоподписанные сертификаты и allowInsecure, так что степень риска зависела от конфигурации. Не стоит принимать оценки автора («полгода без защиты») без независимого подтверждения.
«Это написано в надежде, что больше людей осознают, насколько плоха история безопасности Xray-core.»
— автор отчёта, issue №672 на net4people/bbs