🇰🇷 한글 설명
SOCFortress CoPilot 0.1.57 이전 버전에서 JWT 서명에 사용되는 비밀키가 소스코드에 하드코딩되어 공개되어 있습니다. JWT_SECRET 환경변수를 설정하지 않으면 알려진 기본값으로 토큰에 서명하게 되어, 인증 없이 관리자 권한의 위조된 JWT를 생성할 수 있습니다.
💡 쉬운 설명
보안 앱의 로그인 암호가 설명서에 적혀있는 것과 같은 상황입니다. 이 암호를 알면 누구나 관리자로 가장하고 전체 시스템을 장악할 수 있습니다.
🇺🇸 원문 (English)
SOCFortress CoPilot focuses on providing a single pane of glass for all your security operations needs. Prior to 0.1.57, SOCFortress CoPilot ships a hardcoded JWT signing secret as a fallback value in backend/app/auth/utils.py:28 and ships it verbatim in .env.example. Any deployment where JWT_SECRET is not explicitly set — including the default Docker Compose setup — signs all authentication tokens with this publicly known value. An unauthenticated attacker can forge arbitrary admin-scoped JWTs and gain full control of the application and every security tool it manages without any credentials. This vulnerability is fixed in 0.1.57.
📍 영향받는 시스템
SOCFortress CoPilot < 0.1.57 (특히 기본 Docker Compose 설정)
⚔️ 공격 벡터
공개된 JWT 비밀키로 관리자 토큰을 위조하여 인증 없이 API 접근
🛡️ 대응 방법
0.1.57 이상으로 업그레이드하고 JWT_SECRET을 강력한 고유 값으로 명시적 설정
🔧 검증 코드
JWT_SECRET이 설정되지 않았거나 기본값(공개된 값)으로 설정되어 있으면 취약함. 수정된 버전에서는 강력한 고유 값으로 설정되어야 함
cat .env 2>/dev/null | grep JWT_SECRET || echo 'JWT_SECRET not set' && grep -r 'hardcoded.*secret\|JWT_SECRET.*=' backend/ 2>/dev/null | head -1