원문 캡처 · trustboundarystudio.com
원문 캡처 · trustboundarystudio.com

2023년 3월 20일 일부 ChatGPT 사용자가 다른 이용자의 대화 제목을 볼 수 있었고, ChatGPT Plus 구독자 일부의 결제 정보도 노출됐을 가능성이 있다. OpenAI는 공격이 아니라 자체 서버 변경으로 촉발된 redis-py 라이브러리 버그가 원인이었다고 밝혔다.

오전 1시부터 10시까지 9시간 동안 ChatGPT Plus를 이용한 구독자의 1.2%는 이름, 이메일 주소, 결제 주소, 카드 종류, 카드 번호 끝 네 자리와 만료일이 다른 사용자에게 보였을 수 있다. 전체 카드 번호는 노출되지 않았다. 일부 사용자는 다른 사람의 대화 제목과 새 대화의 첫 메시지를 볼 가능성도 있었다.

OpenAI는 Redis 캐시를 이용해 사용자 정보를 저장했고, 서버와 Redis 클러스터 사이의 연결을 공유하는 파이썬 라이브러리 redis-py를 사용했다. 요청이 전송된 뒤 응답을 읽기 전에 취소되면 응답이 공유 연결에 남을 수 있었다. 다음 요청이 그 응답을 받으면 다른 사용자의 데이터가 반환될 가능성이 생겼다. 대부분은 서버 오류를 일으켰지만, 일부 응답은 요청한 데이터와 형식이 맞아 정상적인 결과처럼 보일 수 있었다.

OpenAI는 3월 20일 태평양 시간 오전 1시에 서버 변경을 적용한 뒤 Redis 요청 취소가 급증했다고 설명했다. 회사는 ChatGPT를 일시적으로 오프라인으로 전환하고 버그를 수정한 뒤 서비스를 재개했으며, 일부 시간대의 대화 기록을 제외하고 채팅 기록을 복구했다. OpenAI는 어떤 서버 변경이 원인이었는지는 밝히지 않았다.

redis-py의 취소 요청 문제는 사고 사흘 전인 3월 17일 공개 이슈로 보고됐다. 관리자는 3월 22일 수정 사항을 병합해 4.5.3을 배포했지만, 제보자는 수정이 일부에 그쳤고 문제가 남아 있다고 지적했다. 이후 더 폭넓은 수정이 4.5.4에 포함됐으나, 해당 변경은 다시 되돌려져 4.5.5에 반영됐다. 관련 버그는 CVE-2023-28858과 CVE-2023-28859에 기록됐다.

OpenAI는 수정 사항 테스트, 캐시에서 반환된 데이터가 요청한 사용자와 일치하는지 확인하는 중복 검사, 로그 점검과 피해 이용자 파악·통지, 로깅 개선, 더 견고한 Redis 클러스터 구축 등 여섯 가지 조치를 제시했다. 회사는 2023년 3월 30일 이탈리아 개인정보 보호 당국의 임시 처리 제한 명령을 받았다. 당국은 2024년 12월 1,500만 유로의 과징금을 발표하며 데이터 유출을 통지하지 않은 점을 언급했지만, 로마 법원은 2026년 3월 해당 결정에 대한 OpenAI의 이의 제기를 받아들였다.