flawopen.com/Incidents/openai-community-forum-heif-sso-chain-september-2026
Цепочка от форума OpenAI к SSO: CVE-2026-32882
Hacktron сообщила о цепочке, в которой выход за границы при чтении альфа-плоскости libheif через обработку изображений Discourse сочетался с отдельной ошибкой SSO OpenAI. CVE-2026-32882 исправлена в libheif 1.22.0; исследователи утверждают, что прекратили тестирование после безвредного pull request, подтверждавшего доступ.[4], [1], [2]
Представьте две прозрачные плёнки: на одной широкая строка цветных клеток, на другой — более узкая строка значений прозрачности. Декодер использовал длину строки цветной плёнки, чтобы найти следующее значение прозрачности. С каждой строкой чтение уходило всё дальше за край меньшей плёнки. Исправление использует длину строки самой альфа-плоскости.[1]
Ключевые понятия и термины
HEIF / HEIC- Формат-контейнер изображений. Файл HEIF может содержать производные изображения, наложения и отдельные цветовую и альфа-плоскости, которые декодер должен обрабатывать в собственных границах.[1]
libheif- Нативная библиотека для декодирования и кодирования изображений HEIF и AVIF. В уведомлении Discourse путь обработки загрузок изображений связан с
CVE-2026-32882.[1], [2] Stride- Число байтов между началом одной строки плоскости изображения и следующей. Разная глубина цвета может задавать разные stride для цветовой и альфа-плоскостей.[1]
CWE-125- Чтение за границами буфера: программа читает за пределами выделенной области памяти. Здесь адрес альфа-плоскости вычислялся с использованием stride цветовой плоскости.[1]
Граница доверия SSO- Связь идентичности между службой входа и приложением. По сообщению Hacktron, связь SSO форума OpenAI увеличила последствия отдельной компрометации форума; в публичном отчёте не раскрыты точная ошибка SSO и её исправление.[4]
Связи со стандартами
- Ссылка CWE для слабого места, описанного в этом руководстве: CWE-125
Хронология инцидента
Сопровождающий libheif публикует GHSA-hg7q-rjr2-8x46, присваивает идентификатор CVE-2026-32882 и указывает libheif 1.22.0 как исправленную версию.[1]
Hacktron утверждает, что исследователи достигли форума OpenAI через путь обработки изображений Discourse, сообщили об ошибке SSO со стороны OpenAI и прекратили тесты после безвредного pull request, подтверждавшего доступ.[4]
Discourse публикует GHSA-vhm9-85gw-x335, перечисляет исправленные версии и рекомендует пересобрать самостоятельно размещённые установки.[2]
Hacktron публикует отчёт о координированном раскрытии. В нём сказано, что OpenAI подтвердила исправление SSO; вознаграждение относилось к находке в системе OpenAI, а не к тестированию размещённого Discourse форума.[4]
Пошаговый сценарий атаки
Для альфа-плоскости используется разметка цветовой
В HeifPixelImage::overlay() уязвимый код сдвигает alpha_p на y * in_stride, хотя для этой плоскости получено значение alpha_stride. При разной глубине цвета размеры строк различаются, и чтение может выйти за выделенную память альфа-плоскости. В upstream-уведомлении ошибка классифицирована как CWE-125.[1]
Последствия зависят от пути обработки на стороне сервиса
Уведомление libheif описывает сбой или возможное раскрытие данных через декодированные пиксели. Отдельное уведомление Discourse говорит об удалённом выполнении кода через путь загрузки и оценивает проблему Discourse в CVSS 8.8. Не подменяйте эту оценку продукта значением CVSS 7.1 и чтением за границами буфера в самой CVE.[1], [2]
Отдельная ошибка SSO расширила описанную цепочку
Hacktron утверждает, что компрометация форума позволила получить доступ к аккаунтам ChatGPT/Codex сотрудников через проблему SSO OpenAI, а безвредный pull request подтвердил доступ к подключённому репозиторию. Публичные источники не раскрывают дефект кода SSO, точные права аккаунта или применимое к другим системам исправление.[4]
Ограничивайте доказательства и формулировки
Hacktron сообщает, что прекратила тестирование после pull request, подтверждавшего доступ. В отчёте описано контролируемое исследование, а не вредоносный инцидент или доказанное получение данных клиентов. Исследователи также уточняют: вознаграждение OpenAI относилось к находке SSO и не покрывало тесты размещённого Discourse форума.[4]
Исходный код: Уязвимый vs Защищённый вариант
Это узкий фрагмент, а не самостоятельный декодер и не дословный полный патч. В уведомлении сопровождающего указано уязвимое выражение и подтверждено исправление в libheif 1.22.0. Индексирование каждой плоскости должно использовать её собственный stride; повторное использование stride цвета смещает чтение альфа-данных слишком далеко при разной глубине цвета. В принимающем приложении также обновляйте декодеры и изолируйте преобразование недоверенных загрузок.[1], [3]
// Упрощенный фрагмент описанного шаблона доступа.
// alpha_stride был доступен, но использовался stride цветового плана.
uint8_t alpha_value = alpha_p[in_x0 + y * in_stride + x];// Используйте разметку строк самого альфа-плана.
// Исправление внесено в upstream-версию libheif 1.22.0.
uint8_t alpha_value = alpha_p[in_x0 + y * alpha_stride + x];Чек-лист по защите системы для инженеров
- ✓В самостоятельно размещённом Discourse обновитесь до исправленной версии из GHSA-vhm9-85gw-x335 и пересоберите образ приложения; обновление только через веб-интерфейс не подтверждает замену нативного пакета libheif.[2], [4]
- ✓Проверьте фактическую версию libheif в каждом контейнере обработки изображений и статус исправлений дистрибутива; номер upstream-версии сам по себе может не отражать состояние пакета дистрибутива.[6], [4]
- ✓При индексировании плоскости изображения используйте её stride и размеры. Добавьте регрессионные тесты для альфа- и цветовых плоскостей с разной глубиной цвета и разным stride строк.[1], [3]
- ✓Запускайте преобразование недоверенных загрузок HEIF/AVIF в ограниченном временном worker-процессе с минимальным доступом к файловой системе, без унаследованных учётных данных и с лимитами CPU и памяти.[2]
- ✓Проверяйте связи доверия SSO отдельно от исправления парсера: проверяйте issuer, audience, URI перенаправления, привязку аккаунта и сессии; отзывайте сессии, если граница идентичности могла быть нарушена.[4]
- ✓Не утверждайте, что реализация SSO OpenAI или точный патч известны: публичный отчёт содержит описание исследователей, но не дефект кода и не его исправление.[4]