Уязвимость Squidbleed существовала в коде Squid 29 лет

Уязвимость Squidbleed существовала в коде Squid 29 лет

Хакер #326. Router from Hell

Подписка на «Хакер» -60%

ИБ-специалисты обнаружили уязвимость в Squid, популярном кеширующем прокси-сервере с открытым исходным кодом. Проблема присутствовала в коде с 1997 года и позволяла похищать незашифрованные HTTP-запросы других пользователей, включая заголовки авторизации, сессионные токены и ключи API.

Как пишут исследователи Calif.io, нашедшие проблему с помощью Claude Mythos Preview, уязвимость получила идентификатор CVE-2026-47729 и набрала 6,5 балла по шкале CVSS. Специалисты дали багу название Squidbleed из-за его сходства с нашумевшей уязвимостью Heartbleed , так как в обоих случаях ошибка приводит к чтению данных за границами буфера и утечке содержимого памяти.

Исследователи рассказали, что проблема скрывалась в парсере списков директорий FTP. Еще в 1997 году разработчики добавили код для обработки листингов старых серверов NetWare, которые дополняли строки лишними пробелами. Однако цикл, пропускавший пробельные символы, не останавливался на завершающем нулевом байте.

В итоге атакующий мог настроить подконтрольный ему FTP-сервер таким образом, чтобы строка листинга обрывалась сразу после временной метки и не содержала имени файла. Из-за этого указатель выходил за границы буфера, а Squid воспринимал найденные там данные как имя файла, копировал их и возвращал клиенту.

По словам специалистов, если ранее такой буфер содержал HTTP-запрос другого пользователя, короткий ответ FTP-сервера перезапишет лишь его начало, а остальные данные попадут атакующему. Исследователи продемонстрировали , что таким способом можно извлечь заголовок Authorization. Если он содержит нужные данные, атакующий получает возможность выдавать себя за другого пользователя.

Подчеркивается, что для эксплуатации Squidbleed злоумышленник должен иметь доступ к прокси, а также должен вынудить его подключиться к подконтрольному FTP-серверу через порт 21. Поэтому разработчики Squid классифицируют эту уязвимость как угрозу со стороны доверенного клиента, хотя поддержка FTP в Squid включена по умолчанию.

При этом обычный HTTPS-трафик атака не затрагивает, так как при использовании CONNECT-туннеля Squid не имеет доступа к его содержимому. Однако уязвимость может раскрыть незашифрованные HTTP-запросы, а также HTTPS-трафик в конфигурациях, где Squid расшифровывает его для инспекции.

Публичный PoC-эксплоит для уязвимости Squidbleed уже доступен на GitHub .

С исправлением проблемы возникла путаница: сначала разработчики сообщили, что устранили CVE-2026-47729 в версии Squid 7.6, а затем заявили, что патч вошел в версию версию 7.7 . При этом специалисты Debian пишут , что патч, вероятно, все же входит в состав версии 7.6. Из-за этого администраторам рекомендуют проверить наличие исправления в FtpGateway.cc или уточнить статус бэкпорта для своего дистрибутива. Самым надежным вариантом защиты специалисты называют полное отключение FTP, если он не используется.

← Cybersecurity