Как Replit пережил Dirty Pipe без потерь

В 2022 году в ядре Linux нашли уязвимость Dirty Pipe (CVE-2022-0847): любой пользователь мог временно перезаписать любой файл в системе без прав на запись. Изменения касались только кэша страниц в памяти — при нехватке RAM они исчезали, но этого хватало, чтобы, например, подменить setuid-бинарник и получить root-шелл.
Команда Replit сразу прогнала proof-of-concept и обнаружила, что эксплойт не сработал. Причина — недавно включённый флаг no_new_privs, который отключает эффект setuid. Вместо root-шелла пользователь получал обычный. Плюс контейнеры Replit работают с урезанным набором capabilities, так что даже теоретический root давал бы ограниченные возможности.
История показывает: базовые меры — no_new_privs, минимизация capabilities, изоляция — реально снижают риски. Если деплоите что-то в контейнерах или на shared-платформах, имеет смысл проверить, что у вас включено.
Источник: Escaping Dirty Pipe (a.k.a. CVE-2022-0847), mostly unscathed — Replit Blog