🇰🇷 한글 설명
ClipBucket v5는 오픈 소스 비디오 공유 플랫폼입니다. 5.5.3 - #40 이전 버전에서는 Time-of-Check to Time-of-Use (TOCTOU) 경쟁 조건 취약점이 ClipBucket의 아바타 및 배경 이미지 업로드 기능에 존재합니다. 이 취약점은 업로드된 파일을 웹에서 접근 가능한 위치로 이동한 후에 파일을 검증하여 공격자가 임의의 PHP 코드를 실행할 수 있는 시간 창을 생성합니다.
💡 쉬운 설명
ClipBucket의 아바타 및 배경 이미지 업로드 기능에 취약점이 존재하여 공격자가 임의의 PHP 코드를 실행할 수 있습니다. 이 취약점은 ClipBucket 5.5.3 - #40 버전에서 수정되었습니다. 사용자는 최신 버전으로 업데이트하여 취약점을 방지할 수 있습니다.
🇺🇸 원문 (English)
ClipBucket v5 is an open source video sharing platform. Prior to 5.5.3 - #40, a Time-of-Check to Time-of-Use (TOCTOU) race condition vulnerability exists in ClipBucket's avatar and background image upload functionality. The application moves uploaded files to a web-accessible location before validating them, creating a window where an attacker can execute arbitrary PHP code before the file is deleted. The uploaded file was moved to a web-accessible path via move_uploaded_file(), then validated via ValidateImage(). If validation failed, the file was deleted via @unlink(). This vulnerability is fixed in 5.5.3 - #40.
📍 영향받는 시스템
ClipBucket v5 (5.5.3 - #40 이전 버전)
⚔️ 공격 벡터
공격자는 업로드된 파일을 웹에서 접근 가능한 위치로 이동한 후에 파일을 검증하기 전에 임의의 PHP 코드를 실행할 수 있습니다.
🛡️ 대응 방법
ClipBucket을 5.5.3 - #40 버전 이상으로 업데이트하여 취약점을 방지합니다.
🔧 검증 코드
로컬 Linux PC에서 Python을 설치하고, ClipBucket이 설치된 서버의 버전을 확인하는 코드입니다. 코드를 실행하기 위해서는 Python이 설치되어 있어야 하며, ClipBucket이 설치된 서버의 URL을 'https://example.com/clipbucket/version'으로 대체해야 합니다. 코드를 실행하면 ClipBucket의 버전을 확인하고, 취약점 여부를 판단하여 JSON 형식으로 결과를 출력합니다.
python -c "import requests; response = requests.get('https://example.com/clipbucket/version'); if '5.5.3' in response.text: print('{"result": "양호", "reason": "ClipBucket 버전이 5.5.3 이상"}'); else: print('{"result": "취약", "reason": "ClipBucket 버전이 5.5.3 미만"}')"