# Ошибка в redis-py показала пользователям ChatGPT чужие чаты и платёжные данные

> 20 марта 2023 года из-за ошибки в открытой библиотеке redis-py часть пользователей ChatGPT видела заголовки чужих диалогов, а у 1,2% активных подписчиков ChatGPT Plus могли раскрываться частичные платёжные данные. OpenAI временно отключила сервис, исправила ошибку и уведомила затронутых пользователей.

- Канонический HTML: [/incidents/chatgpt-redis-bug-chat-history-leak](https://ai-first.tech/incidents/chatgpt-redis-bug-chat-history-leak)
- Язык: русский
- Редакционный принцип: защитный контекст без вредоносных полезных нагрузок и инструкций обхода.

- Дата: 2023-03-24
- Категория: Уязвимость платформы
- Затронуто: OpenAI ChatGPT, подписчики ChatGPT Plus
- Критичность: Высокий

## Что произошло

20 марта 2023 года пользователи ChatGPT сообщили, что видят в своей истории заголовки чужих диалогов, и OpenAI отключила сервис. Расследование показало, что изменение на серверах OpenAI резко увеличило число отменённых запросов к Redis и спровоцировало редкую ошибку в клиентской библиотеке redis-py. В течение примерно девяти часов часть пользователей могла видеть заголовки чужих чатов, а в ряде случаев и первое сообщение нового диалога. У 1,2% подписчиков ChatGPT Plus, активных в этот период, другим пользователям могли быть показаны имя, адрес электронной почты, платёжный адрес, тип карты, последние четыре цифры и срок действия карты. 24 марта 2023 года OpenAI опубликовала отчёт об инциденте.

## Где нарушилась защита

Сервис кэшировал данные пользователей в Redis через общий пул соединений. Если запрос отменялся в определённый момент, соединение оставалось в некорректном состоянии и следующий запрос другого пользователя получал чужой ответ. Граница изоляции между пользователями держалась только на корректности сторонней библиотеки, без дополнительной проверки, что данные из кэша принадлежат запрашивающему.

## Последствия

- Заголовки чужих диалогов и в ряде случаев первые сообщения были видны другим пользователям
- У 1,2% подписчиков ChatGPT Plus, активных в течение девятичасового окна, могли раскрываться частичные платёжные данные; полные номера карт не раскрывались
- Затронутые пользователи получили уведомления от OpenAI

## Реакция

OpenAI исправила ошибку в redis-py, добавила проверку соответствия кэшированных данных запрашивающему пользователю, усилила устойчивость кластера Redis и уведомила затронутых подписчиков.

## Уроки для бизнеса

- Классические ошибки инфраструктуры в AI-сервисах так же опасны, как атаки на модель, потому что в истории чатов накапливаются чувствительные данные
- Изоляция данных пользователей не должна зависеть от корректности одной сторонней библиотеки
- Журналы и история запросов к AI являются полноценным хранилищем чувствительных данных

## Меры защиты

- Проверять принадлежность данных запрашивающему пользователю на каждом уровне, включая кэш
- Тестировать изоляцию данных под нагрузкой и при массовых отменах запросов
- Оценивать вендоров AI по их практикам изоляции данных и реагирования на инциденты
- Ограничить передачу в публичные AI-сервисы данных, раскрытие которых недопустимо

Связанные карточки угроз: A11, A10, A47

## Первоисточники

- [OpenAI: A Redis bug caused a recent ChatGPT data exposure incident](https://securityaffairs.com/144057/data-breach/openai-chatgpt-redis-bug-data-leak.html) — Security Affairs
- [A bug revealed ChatGPT users' chat history, personal and billing data](https://www.helpnetsecurity.com/2023/03/27/chatgpt-data-leak/) — Help Net Security
