🇰🇷 한글 설명
GrowthBook의 특정 셀프 호스팅 설정에서 공격자가 새로운 계정을 등록하고 컨테이너 내 임의의 디렉토리에 파일을 업로드할 수 있는 취약점입니다. 공격자가 적절한 위치에 파이썬 스크립트를 업로드할 경우 컨테이너 내에서 임의의 코드를 실행할 수 있습니다.
💡 쉬운 설명
해커가 가짜 계정을 만든 뒤 서버에 몰래 파일을 올려서 컴퓨터를 마음대로 조종할 수 있는 보안 구멍입니다. 특히 보안 설정이 약하게 되어 있는 환경에서 발생할 위험이 큽니다.
🇺🇸 원문 (English)
GrowthBook is an open-source platform for feature flagging and A/B testing. With some self-hosted configurations in versions prior to 2022-08-29, attackers can register new accounts and upload files to arbitrary directories within the container. If the attacker uploads a Python script to the right location, they can execute arbitrary code within the container. To be affected, ALL of the following must be true: Self-hosted deployment (GrowthBook Cloud is unaffected); using local file uploads (as opposed to S3 or Google Cloud Storage); NODE_ENV set to a non-production value and JWT_SECRET set to an easily guessable string like `dev`. This issue is patched in commit 1a5edff8786d141161bf880c2fd9ccbe2850a264 (2022-08-29). As a workaround, set `JWT_SECRET` environment variable to a long random string. This will stop arbitrary file uploads, but the only way to stop attackers from registering accounts is by updating to the latest build.
📍 영향받는 시스템
GrowthBook 셀프 호스팅 버전 (2022-08-29 이전 버전, 로컬 파일 업로드 사용, NODE_ENV가 non-production이며 JWT_SECRET이 취약한 경우)
⚔️ 공격 벡터
계정 등록 후 임의의 디렉토리에 악성 스크립트 파일을 업로드하여 원격 코드 실행(RCE) 수행
🛡️ 대응 방법
GrowthBook을 2022-08-29 패치 버전(커밋 1a5edff) 이상으로 업데이트하고, JWT_SECRET을 길고 복잡한 문자열로 설정하십시오.
🔧 검증 코드
명령어 결과가 'Patched'이면 패치된 버전이며, 'Vulnerable'이면 취약한 버전입니다.
git log -1 --format=%H | grep -q 1a5edff8786d141161bf880c2fd9ccbe2850a264 && echo 'Patched' || echo 'Vulnerable'