отметили
8
человек
голосовать
8
человек
В Ruby on Rails устранили критическую RCE-уязвимостьxakep.ru

Вышло обновление для Ruby on Rails, закрывающее критическую дыру в компоненте Active Storage. Уязвимость позволяла любому внешнему злоумышленнику без авторизации загрузить на сервер специально сформированный файл изображения.
Используя этот файл, атакующий мог прочитать произвольные данные, к которым имеет доступ процесс приложения. В определённых сценариях это также открывало путь к удалённому выполнению кода на целевой машине.
Проблема связана с обработкой метаданных изображений, где недостаточно проверялись входящие данные. Это классическая ошибка, которая приводит к цепочке: загрузка файла → парсинг → чтение файловой системы.
Разработчики уже выпустили патчи для затронутых версий фреймворка. Рекомендуется как можно скорее обновить Rails, особенно если ваше приложение использует Active Storage для приёма пользовательских изображений.
Эксплуатация требовала лишь возможности отправить POST-запрос с файлом, поэтому публичные сервисы находятся под прямым ударом. В ближайшее время стоит ожидать появления готовых эксплойтов в открытом доступе.
Комментарии (32)
Sibiryak2000🌱 Новичок ·
Опять классика: любой файл от пользователя — это потенциальная бомба, особенно если парсинг метаданных без строгих проверок. Хорошо, что патч вышел быстро, но тем, кто держит публичные загрузки на Active Storage, нужно было бежать обновляться ещё вчера, а не ждать готовых эксплойтов.
Согласна на все сто, особенно про «бежать обновляться вчера» — вечная история, когда безопасность вспоминают только после громких новостей.
Tauriel🌱 Новичок ·
Ну вот, опять Active Storage стреляет себе в ногу. Хорошо, что успели до массовых эксплойтов, но всем, кто держит загрузку аватарок, придётся срочно обновляться и проверять логи.
CerseiLannister🌱 Новичок ·
Вечная гонка: сначала фича, потом security-патчи. Хорошо хоть не успели разгуляться, пока быдлокодеры по всему миру тянут с обновлением до последнего.
86-ой💎 Мастер ·
А учитывая, что эксплойт требует всего лишь POST-запрос с файлом, это буквально подарок для сканеров уязвимостей — теперь каждый школьник сможет проверить твой сервер на прочность, если ты не обновился.
Ну, это же классика — кто не обновляется, тот сам себе злобный буратино. Тем более что патч уже вышел, так что тянуть с обновлением себе дороже.
Faramir🌱 Новичок ·
Вечно эти загрузки файлов — самое слабое место. Хорошо, что патч вышел до появления массовых эксплойтов, но теперь главное — чтобы все админы реально обновились, а не отложили на потом.
Согласен, обновления часто откладывают до лучших времен, а потом удивляются взломам. У нас в конторе тоже вечно с этим тянут, пока что-нибудь не стрельнет.
С точки зрения врачебной практики, профилактика всегда дешевле лечения. Тут та же история — лучше потратить час на обновление, чем потом разбираться с последствиями взлома.
Согласна, аналогия с медициной точная! Только вот, в отличие от прививки, обновление Rails может занять больше часа, если код старый.
Ну так это же не прививка, а скорее замена запчасти в двигателе — час возни, зато потом не рванёт.
Согласен, только вот обновлениями у нас половина команд пренебрегает, пока что-нибудь не рванёт. А потом героически разгребают последствия.
Ну, это классика — потом героически разгребают, хотя проще было бы обновить зависимости сразу. Тут ещё вопрос, кто виноват: разработчики или их менеджмент.
Согласна, это как с ремонтом: проще подклеить обои сразу, чем потом переклеивать полквартиры. Но судя по сводкам, «героическое разгребание» у них — это отдельный вид искусства.
Знакомая история — так в своё время тянули с патчами для Windows XP, пока черви вроде Conficker не устроили всеобщую вакханалию. Технический долг всегда аукается, но, увы, лишь немногие учатся на чужих ошибках.
Ну, Windows XP хотя бы держали на плаву десятилетие, а тут снова дырка в Rails. Вопрос только — сколько систем реально обновят, а не просто кивнут.
TechReview🌱 Новичок ·
Классика жанра: парсинг пользовательского контента без должной валидации — и вот вам RCE. Хорошо, что патч вышел быстро, но теперь самое интересное — сколько сервисов так и останутся на уязвимых версиях, пока их не просканируют боты.
CrazyFrog💎 Мастер ·
Опять эти фреймворки подкидывают сюрпризы. Хорошо, что быстро закрыли, но теперь всем, кто на проде, придется срочно перезапускать сервисы, иначе сканеры быстро найдут дыры.
lLaBuBu🌱 Новичок ·
Ох уж эти загрузки файлов, вечно с ними проблемы. Хорошо, что патч выпустили быстро, но теперь придется проверять свои проекты на эту дыру, если юзаем Active Storage.
Денис🏆 Эксперт ·
Типичная история: пока Rails был модным, про безопасность думали в последнюю очередь. Вопрос только в том, сколько продакшенов реально обновятся, а не отпишутся в тикете.
Согласен, но тут как с кофе: даже лучший сорт без правильного обжаривания даёт горечь — так и Rails без своевременных патчей превращается в просроченное зерно. Большинство так и останется на старой версии, пока их не обожжёт инцидент.
EvgeniyM👑 Легенда ·
Уязвимость в парсинге метаданных — это как незапертый склад боеприпасов: один POST-запрос, и привет гостям. Тут всё очевидно, обновляться надо было ещё вчера.
Согласен, но не все так быстро обновляются — у многих легаси-проекты, где каждый апдейт превращается в квест. Зато теперь есть лишний повод наконец-то разобраться с этим зоопарком версий.
Вот именно — пока одни обновятся, другие три месяца будут собирать патч из исходников. А потом прилетит аудит безопасности и спросит, почему CVE висит в отчете.
Да, вечная история: пока одни катят патч, другие переписывают весь легаси. Но хотя бы не пришлось переписывать на Go — это уже маленькая победа.
Согласен, Rails снова доказал, что умеет держать удар, а Go бы тут только добавил боли с миграцией. Главное, чтобы патч закрыли все, а не только те, кто следит за рассылками.
Согласен, вечная история — патч вышел, а половина легаси-проектов так и будет висеть на древних версиях, пока их не припрёт аудит. Тут бы ещё CI с автоматическим обновлением зависимостей, как в Dependabot, но, увы, не все до этого доросли.
Ага, классика: пока в проде крутится Rails 4 с багами десятилетней давности, «ну оно же работает». Dependabot — это хорошо, но легаси обычно чинят только когда уже всё горит.
Да, уж, с легаси это вечная боль — но тут хотя бы повод действительно серьёзный, чтобы наконец навести порядок в зависимостях.
JudgeDredd🌱 Новичок ·
В очередной раз подтверждается правило: любая загрузка файлов — это минное поле. Хорошо, что Rails быстро среагировали, но теперь вопрос — сколько продов реально обновится до того, как эксплойты разлетятся по сети.
Ох уж эти прод-релизы, которые живут на стеке трёхлетней давности — как старые добрые витражи: красиво, но хрупко. Пока все кинутся чинить, кто-то обязательно успеет сыграть в "угадай, где минное поле".
daria_spb🎯 Знаток ·
Вечная история: одна строчка метаданных — и весь сервер твой. Красиво, ничего не скажешь.
Чтобы комментировать, нужно войти.