23-летний кодер изгнал призраков, вселившихся в Firefox более 20 лет назад

23-летний кодер изгнал призраков, вселившихся в Firefox более 20 лет назад

23-летний кодер изгнал призраков, вселившихся в Firefox более 20 лет назад

В начале прошлого месяца в код Firefox, отвечающий за всплывающие подсказки ссылки, были внесены изменения с целью устранения бага, известного с 2002 года. Фикс включен в сборку 119 браузера, выпуск которой намечен на 24 октября.

Проблему, которой был присвоен ID 148624, зарегистрировал в Bugzilla пользователь Juneappal (Adam Price), владелец macOS-компьютера с установленным браузером Mozilla. Прайсу надоели tooltip-подсказки, появлявшиеся при наведении курсора на закладку и подвисавшие при переходе в окно другого приложения.

 

Избавиться от них можно было, лишь сдвинув курсор и вернувшись в браузер. Впоследствии этот же баг пытались зарегистрировать и другие пользователи Firefox; иногда он проявлялся также на Windows- и Linux-платформах.

Поскольку фантомные подсказки не нарушали работу Firefox, а только вызывали раздражение, решение проблемы каждый раз откладывалось. Когда с ней столкнулся 23-летний выпускник Стэнфорда И Фань Чжу (Yifan Zhu), оказалось, что они почти ровесники.

Молодой человек был заинтригован и решил попробовать исправить ситуацию, благо лето и впереди куча свободного времени. Программированию Чжу был обучен, но никогда не имел дело с такими сложными проектами, как Firefox.

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

В соцсетях по этому поводу появились восторженные отзывы. Некоторые начали отпускать шутки вроде «а Bugzilla-то постарше бага будет, ей в августе стукнуло 25» и «фикс отнял добычу у ботов, собравшихся удалить неисправленный баг за давностью». Один комментатор описал жизненный путь борца за чистоту кода следующим образом:

«Наверно, он столкнулся с багом, еще когда был ребенком. Это задело его за живое, он пошел в университет, чтобы научиться программированию, окончил его, создал аккаунт и все пофиксил. Цель жизни исчерпана».

Новая атака на кеш Nginx позволяет красть данные и ломать сайты

Исследователь YesWeHack Алекс Брумен описал вектор кибератаки Cache Key Injection. В случае её эксплуатации последствия для потенциальной жертвы опасные: обход контроля доступа, раскрытие закрытых страниц, отказ в обслуживании и при определённых условиях.

Как объясняет исследователь YesWeHack, проблема возникает не в Nginx по умолчанию, а в конфигурациях, где администраторы просто склеивают несколько значений переменной длины без разделителей. Например:

$scheme$host$request_uri$http_accept

Разных запроса два, а итоговая строка может получиться одна. Так, запрос к /h с заголовком Accept: ome*/* создаёт тот же ключ, что и обычное обращение к /home с Accept: */*.

Если атакующий успеет первым положить в кеш ответ 404, пользователи вместо главной страницы будут получать ошибку до очистки записи. Получается CPDoS — отказ в обслуживании с доставкой прямо из кеша.

 

Ещё веселее становится с закрытыми разделами. В лабораторном примере страница /admin была доступна только с localhost, но злоумышленник мог обратиться к /ad и перенести оставшуюся часть имени в соседний компонент ключа. Nginx видел разрешённый путь, однако доставал из кеша содержимое админ-панели.

При совпадении нескольких условий техника позволяет столкнуть HTTP- и HTTPS-запросы и записать в кеш страницу со ссылкой на атакующий JavaScript, превратив ошибку конфигурации в stored XSS. Даже Cloudflare не всегда спасёт: заголовок Authorization может провести запрос мимо его кеша прямо к уязвимому кешу Nginx.

 

Защита выглядит до смешного просто: не склеивать значения вслепую. Между элементами ключа нужны разделители или структурное кодирование, например:

$scheme|$host|$request_uri|$http_accept

Также следует проверять Host, перенаправлять HTTP на HTTPS и не кешировать аутентифицированные запросы.

RSS: Новости на портале Anti-Malware.ru