PoC-эксплойт для RCE в спулере печати Windows по недомыслию слили в Сеть

PoC-эксплойт для RCE в спулере печати Windows по недомыслию слили в Сеть

PoC-эксплойт для RCE в спулере печати Windows по недомыслию слили в Сеть

Одна из команд, обнаруживших очередную уязвимость в диспетчере очереди печати Windows, выложила подробное описание и свой PoC-код на GitHub. Через пару часов исследователи одумались и сняли публикацию, но несколько пользователей успели скопировать опасную разработку.

Уязвимость CVE-2021-1675, связанную с работой службы SpoolSv, в Microsoft вначале классифицировали как локальное повышение привилегий, но впоследствии отнесли к категории «удаленное исполнение кода» (RCE). Проблема признана критичной для всех версий Windows; патчи доступны в составе июньских обновлений.

О новой уязвимости в спулере печати разработчику сообщили эксперты Tencent Security, AFINE и NSFOCUS. Технические детали никто из них пока не разглашал, в бюллетене Microsoft такая информация тоже отсутствует.

На прошлой неделе китайская ИБ-компания QI-ANXIN опубликовала невнятное GIF-изображение некого эксплойта CVE-2021-1675, но от подробного описания воздержалась. Этот шаг оказался провокационным — на раскрытие своей находки отважились исследователи из Sangfor Technologies. Они самостоятельно обнаружили тот же баг и решили приберечь его для показа на ближайшем конкурсе Tianfu Cup, но пример соотечественников из QI-ANXIN оказался, видимо, слишком заразительным.

К публикации Sangfor подготовилась обстоятельно: на GitHub появились подробное изложение проблемы, которую в компании нарекли PrintNightmare, и полнофункциональный PoC-эксплойт. Чуть позже баг-хантеры осознали, что преждевременное раскрытие деталей сведет на нет весь эффект от доклада, который они собирались сделать в начале августа на конференции Black Hat USA 2021.

Специально созданный репозиторий на GitHub быстро удалили, но коллеги Sangfor успели скопировать расшаренный PoC-код несколько раз. Утечка пока ограничена закрытыми ИБ-сообществами; не исключено, что вскоре этот рабочий эксплойт сольют обратно в паблик. Пользователям Windows стоит поторопиться с установкой патча, если они еще этого не сделали.

Заметим, Print Spooler появился в Windows еще в 90-е, поэтому уязвимости в этой подсистеме затрагивают и Vista, и XP. А проблемы с безопасностью этого почтенного сервиса возникают с завидной регулярностью — в памяти еще свежи PrintDemon, CVE-2020-1337,  Evil Printer (CVE-2016-3238), не говоря уже о 0-day, которая использовалась в атаках Stuxnet (CVE-2010-2729).

Зачем Яндекс Go создал отдельный язык для расчёта стоимости поездок

Цена поездки в Яндекс Go — это не расстояние, умноженное на минуты и километры. В расчёт вмешиваются геозоны, спрос, скидки, платные дороги, дополнительные остановки и требования вроде перевозки кота, велосипеда или лыж. Чтобы управлять этим хозяйством без бесконечных деплоев, разработчики вынесли алгоритм ценообразования из кода сервиса в собственный язык.

Как объяснили разработчики в статье на Хабре, прайсинг работает не только при заказе машины.

Он пересчитывает стоимость при смене маршрута или способа оплаты, завершении поездки, обращении в поддержку и проверке данных аналитиками. Цена при этом может быть фиксированной, интервальной или считаться по таксометру.

 

Сначала сервисы параллельно собирают параметры поездки: тарифную категорию, геозоны, скидки, повышенный спрос и дополнительные услуги. Зависимости между источниками выстраиваются в граф, а запросы выполняются асинхронно на базе userver. Если некритичный источник не ответил, весь расчёт не падает.

 

Сам алгоритм раньше можно было бы держать в C++, но он меняется в среднем дважды в неделю. Выкатка сервиса на 50 подов занимает около 40 минут, а лес динамических конфигов быстро превратил бы код в музей условных операторов.

Поэтому Яндекс разработал собственный DSL. В нём есть условия, функции, неизменяемые значения и fold вместо циклов. Правила собираются в последовательную цепочку: каждое преобразование получает текущую цену и параметры, а возвращает новый результат с метаданными. Грамматику описали через ANTLR 4, а верификатор Z3 проверяет, что программа не выдаст некорректную цену.

 

Теперь изменение алгоритма не требует пересборки сервиса, ошибочную версию можно быстро откатить, а каждый расчёт — воспроизвести по входным данным и промежуточным результатам.

 

В итоге прайсинг превратился в отдельную платформу, которой уже пользуются Такси, Доставка и сервис зарядки электромобилей.

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