무슨 일이 있었나
NextChat의 서버 측 LLM 프록시는 적절한 호스트명 검증이 아닌 부분 문자열 매칭으로 인해 스푸핑된 베이스 URL 헤더를 수락했으며, 인증되지 않은 원격 공격자가 프록시의 아웃바운드 요청과 이를 전달하는 API 키를 자신이 제어하는 서버로 리디렉션할 수 있도록 했습니다.
왜 중요한가
인증되지 않은 공격자의 단 하나의 제작된 HTTP 요청으로 배포의 OpenAI 청구 자격 증명을 완전히 유출하여, 계정 탈취, 재정 남용 및 이후에 공격자의 엔드포인트를 통해 프록시된 모든 프롬프트의 데이터 노출을 가능하게 합니다.
공격 경로
프록시 엔드포인트는 호스트명 구문 분석이 아닌 부분 문자열 매칭을 사용하여 x-base-url 헤더를 검증하므로, 인증되지 않은 공격자는 'api.openai.com'을 포함하지만 실제로는 공격자 제어 호스트로 확인되는 제작된 x-base-url을 제출할 수 있으며, 서버의 Authorization 헤더(OpenAI API 키를 전달)가 해당 호스트로 전송되도록 합니다.
영향받는 시스템
ChatGPTNextWeb NextChat 버전 2.15.8~2.16.1
완화 방안
NextChat을 2.16.1 이후로 업그레이드하거나(또는 호스트명 정확 일치 검증 적용), 노출된 OPENAI_API_KEY를 회전하고, 프록시 경로를 제한/비활성화하며, 이그레스 허용 목록을 사용하세요.