Взлом OpenAI: переполнение кучи в libheif и брешь в SSO, открывшие путь к внутренним репозиториям
25 июля 2026 года исследователи команды Hacktron — Харш Джайсвал, Мохан Педхапати и Рахул Мани — соединили две критические уязвимости и получили контроль над аккаунтами ChatGPT и Codex сотрудников OpenAI. Через подключённые к Codex сервисы открывался доступ к GitHub, Slack и почте, а значит, и к внутренним репозиториям компании. Чтобы доказать доступ, не читая ни строчки внутреннего кода, они отправили промпт в Codex одного из сотрудников — и тот открыл pull request #1186742 в монорепозитории openai/openai. От первичного обнаружения до этого момента прошло меньше 72 часов. OpenAI заплатила за находку 6500 долларов, а Discourse выпустила патч в течение трёх дней.
Цепочка эксплойта
Вся атака свелась к девяти звеньям:
| Шаг | Компонент | Роль |
|---|---|---|
| 1 | libheif | Декодер изображений — источник переполнения кучи |
| 2 | Debian | Отсутствующий security-бэкпорт в пакете |
| 3 | ImageMagick | Использует libheif для конвертации |
| 4 | Discourse | Принимает загрузку изображений от пользователей |
| 5 | community.openai.com | Форум OpenAI на Discourse |
| 6 | OpenAI SSO | Ошибка в флоу идентификации |
| 7 | ChatGPT / Codex | Захват аккаунтов |
| 8 | GitHub | Подключённая к Codex интеграция |
| 9 | Внутренние репозитории | Финальная цель |
До июля 2026 года любой человек или сотрудник OpenAI, логинившийся на собственный форум компании через «Sign in with OpenAI», рисковал потерять контроль над своим аккаунтом ChatGPT и Codex.
Откуда взялась уязвимость: пропущенный бэкпорт в libheif
Сам Discourse — сложная цель, и исследователи давно смотрели в сторону его зависимостей. 23 июля они начали разбирать конвейер загрузки изображений и обнаружили необычный путь у файлов HEIC и HEIF. Обычные проверки изображений в Discourse выполняет библиотека FastImage, но HEIF она не поддерживает — поэтому такие файлы сразу уходили команде magick из ImageMagick и попадали в парсер libheif, напрямую доступный атакующему.
Дальше в дело пошёл ИИ. Исследователи запустили сессию с Claude Opus 4.8 внутри Docker-образа Discourse и попросили проверить установленный пакет libheif на предмет проблем безопасности. Модель нашла, что часть апстримных исправлений не была бэкпортирована в пакет: код уязвимого места изменили ещё годом ранее, но коммит не пометили как security fix и CVE на него не завели. Вероятно, именно поэтому Debian 12 и Debian 13 не получили своевременные бэкпорты. Docker-образ Discourse собран на Debian 12 и содержал уязвимую версию libheif 1.19.7; Debian 13 к тому моменту всё ещё поставляла версию 1.19.8. Своё security-обновление Debian выпустила только 8 августа 2026 года.
Результат — переполнение кучи (heap buffer overflow) с примитивами чтения и записи за границами буфера при декодировании HEIC-файлов.
Роль Claude: от Opus 4.8 к Opus 5
24 июля Opus 4.8 разработала рабочий эксплойт для ImageMagick и libheif с выключенным ASLR, но несколько параллельных сессий так и не смогли сделать его надёжным против дефолтной конфигурации Discourse с включённым ASLR.
Вечером того же дня Anthropic выпустила Claude Opus 5 — и ситуация изменилась. Новая сессия за три часа собрала рабочий ARM64-эксплойт на локальном Mac, а затем по запросу портировала его на x86-64 и конфигурацию аллокатора jemalloc, которую использует Discourse. К шести утра 25 июля был подтверждён локальный RCE через загрузку изображения.
Затем Claude поместили в автономный цикл /goal против собственного инстанса Discourse Cloud, проксированного через rce.ee/ctf-forum — так, чтобы цель выглядела как учебный стенд CTF: без этого модель отказывалась писать эксплойт для удалённого инстанса. К десяти утра агент получил RCE на Discourse Cloud и продемонстрировал его чтением /etc/hosts. Сгенерированный скрипт сработал и на инстансе OpenAI.
Как брешь в SSO превратила взлом форума во взлом OpenAI
Авторы подчёркивают: сама по себе уязвимость не специфична для Discourse. Форум был лишь способом доказательства — компрометация любого первого или стороннего сервиса, использующего OpenAI SSO, вела бы к тому же результату. Именно дефект в флоу идентификации превратил взлом форума в захват аккаунтов ChatGPT и Codex.
Исследователи перехватили аккаунт сотрудника, чей Codex был подключён к GitHub-организации OpenAI, и отправили промпт с просьбой открыть pull request во внутреннем монорепозитории — не получив доступа ни к одному файлу с кодом. После этого всё тестирование прекратили.
Раскрытие прошло быстро. Утром 25 июля отчёт ушёл в программу OpenAI на Bugcrowd; примерно через 14 часов OpenAI подтвердила исправление на своей стороне. Отчёт для Discourse ушёл через HackerOne в субботу, ответ пришёл в воскресенье, а к понедельнику был готов фикс вместе с песочницей для ImageMagick как эшелонированной защитой. Discourse опубликовала консультативное уведомление GHSA-vhm9-85gw-x335 с инструкциями по патчу и пересборке. В сентябре OpenAI выплатила 6500 долларов, отдельно уточнив: награда — за находку на стороне OpenAI, потому что тестирование hosted-инстанса community.openai.com в программу bug bounty явно не входило.
Экономика ИИ-взлома
Цифры впечатляют. Взлом Discourse и OpenAI занял у агента несколько дней, а у людей — несколько часов. Вся исследовательская кампания HEIF Heist, нацеленная на Slack, Meta, GitHub Enterprise, Ruby on Rails и фреймворки вроде Next.js, Astro и Gatsby, заняла два месяца, обошлась меньше чем в 3000 долларов токенов и велась тремя исследователями. Адаптация эксплойта под каждую новую компанию обычно занимала один-два дня.
Модели уверенно прогрессировали от версии к версии. Opus 4.8 застревала на ASLR; Opus 5 решила ту же задачу в течение часов после релиза. Следующий заметный скачок — от Opus 5 к GPT-5.6 Sol — произошёл, когда эксплойт пришлось писать вслепую: без знания о целевой системе, кроме самого факта уязвимости. Тестирование всегда начиналось с загрузки изображения, после чего модель превращала повреждение памяти в надёжную утечку данных или шелл, обычно не зная ни версии libheif, ни версии libc, ни окружения развёртывания.
Показательно и молчание жертв: кроме Shopify, ни одна компания не обнаружила активность — даже после тысяч отправленных изображений и многократных падений своих обработчиков картинок. Когда исполнение кода попадало в песочницу, модели помогали и с эскалацией привилегий, и с боковым перемещением, и с обходом защит. Это не было полностью автономным взломом — опытное человеческое руководство оставалось важным, но объём работы, доступный маленькой команде, вырос драматически.
Что это меняет
Долгие годы программное обеспечение жило в режиме «безопасности через сложность»: код и даже уязвимость могли быть публичными, но превращение бага в надёжный эксплойт требовало редкой экспертизы, времени и знания целевого окружения. Известные ошибки повреждения памяти было дорого эксплуатировать, а zero-days доставались самым высокоприоритетным целям.
Это никогда не было настоящей границей безопасности — но на практике защищало обычные компании. ИИ убирает эту защиту, превращая дефицитную экспертизу в вычисления: работа, требовавшая хорошо оснащённой команды и месяцев усилий, сжимается в дни. Авторы призывают привести модели угроз в соответствие с реальностью — учитывать современную экономику эксплуатации, а не устаревшие представления о том, кто способен проводить сложные атаки.
Как защититься
Проект HEIF Heist не привязан к одной версии: он охватывает целое семейство релизов libheif (1.19.x, 1.20.x, 1.22.x, 1.23.x). Уязвима любая развёртка без свежих апстримных security-патчей. Рекомендации авторов:
- Обновить апстрим. Установить последние security-версии libheif и libde265 из репозиториев дистрибутива или апстрим-релизов. На 14 сентября 2026 года актуальный релиз — v1.23.4; v1.23.2 уже заменена дальнейшими исправлениями. Пакеты дистрибутивов могут нести бэкпорты под старым номером версии — сверяйтесь с security-уведомлением пакета.
- Пересобрать self-hosted Discourse. Старые Docker-образы могут содержать уязвимый libheif, и обновления через веб-интерфейс может оказаться недостаточно:
cd /var/discourse
git pull
./launcher rebuild app
- Эшелонированная защита. Учитывая сложность формата ISO base media file format и темп обновлений декодеров, новые ошибки памяти почти неизбежны. Отключайте декодирование недоверенных HEIF/AVIF там, где оно не нужно, изолируйте конвейеры обработки изображений в укреплённых эфемерных песочницах, а security policy ImageMagick позволяет ограничить принимаемые форматы и потребление ресурсов.
Ссылки по теме: исследовательский проект HEIF Heist, консультативное уведомление Discourse GHSA-vhm9-85gw-x335, коммит с песочницей ImageMagick, апстримный коммит libheif, оставшийся без CVE, security-обновление Debian и релиз libheif v1.23.4.