Создатели игры NationStates подтвердили утечку данных после RCE на сервере

Создатели игры NationStates подтвердили утечку данных после RCE на сервере

Создатели игры NationStates подтвердили утечку данных после RCE на сервере

Разработчики браузерной игры NationStates подтвердили утечку данных пользователей после того, как на этой неделе им пришлось временно отключить сайт для расследования киберинцидента. Выяснилось, что неаутентифицированный пользователь получил доступ к боевому серверу проекта и скопировал часть пользовательских данных.

NationStates — это многопользовательская онлайн-игра в жанре симулятора государства, созданная писателем Максом Барри по мотивам его романа Jennifer Government. Инцидент произошёл вечером 27 января 2026 года.

В этот день команда получила сообщение от одного из игроков о критической уязвимости в коде приложения. Однако в процессе «проверки» бага игрок вышел далеко за рамки допустимого и добился удалённого выполнения кода (RCE) на основном продакшн-сервере.

По словам Барри, этот пользователь с 2021 года неоднократно сообщал об уязвимостях и даже получал внутриигровой статус «баг-хантер», но никогда не имел разрешения на доступ к серверам или привилегированные действия. Тем не менее он сумел скопировать исходный код приложения и пользовательские данные на свою систему. Позже игрок извинился и заявил, что удалил полученные данные, но подтвердить это невозможно — поэтому команда считает и сервер, и данные скомпрометированными.

Причиной инцидента стала уязвимость в функции Dispatch Search, появившейся в сентябре 2025 года. По данным NationStates, атакующий объединил недостаточную очистку пользовательского ввода с ошибкой двойного парсинга, что и привело к удалённому выполнению кода. Для проекта это первый подобный случай за всю историю.

После обнаружения взлома сайт был отключён, а сервер решено полностью пересобрать «с нуля» на новом оборудовании. Разработчики также начали проверку того, какие именно данные были затронуты. По их оценке, восстановление работы займёт от двух до пяти дней. На момент публикации сайт открывался лишь эпизодически и показывал уведомление об утечке.

В числе скомпрометированных данных — адреса электронной почты (включая ранее использовавшиеся), MD5-хэши паролей, IP-адреса входа и строки User-Agent браузеров. В NationStates подчёркивают, что не собирают реальные имена, физические адреса, номера телефонов или данные банковских карт. После восстановления работы пользователи смогут посмотреть, какие данные хранились по их аккаунту, на специальной странице.

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

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

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

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

 

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

 

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

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

 

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

 

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

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