🇰🇷 한글 설명
Phproject 프로젝트 관리 시스템의 프로젝트 생성 페이지에서 Planned Hours 필드에 사용자 입력이 HTML 인코딩 없이 반영되는 저장형 XSS 취약점입니다. 공격자는 <script>alert(1)</script> 같은 악성 스크립트를 planned_hours 매개변수에 포함시켜 브라우저에서 실행하도록 유도할 수 있습니다. 1.8.3 버전에서 수정됨.
💡 쉬운 설명
프로젝트 생성 시 시간 입력 필드에 코드를 입력하면 그 코드가 그대로 실행되는 문제입니다. 공격자가 이를 이용해 다른 사용자의 계정을 탈취하거나 악의적인 작업을 수행할 수 있습니다.
🇺🇸 원문 (English)
Phproject is a high performance full-featured project management system. From 1.8.0 to before 1.8.3, a Stored Cross-Site Scripting (XSS) vulnerability exists in the Planned Hours field when creating a new project. When sending a POST request to /issues/new/, the value provided in the Planned Hours field is included in the server response without any HTML encoding or sanitization. Because of this, an attacker can craft a malicious payload such as <script>alert(1)</script> and include it in the planned_hours parameter. The server reflects the input directly in the HTML of the project creation page, causing the browser to interpret and execute it. This vulnerability is fixed in 1.8.3.
📍 영향받는 시스템
Phproject 1.8.0 ~ 1.8.2
⚔️ 공격 벡터
/issues/new/ 엔드포인트의 planned_hours 매개변수에 HTML/JavaScript 페이로드를 주입하여 저장형 XSS 공격 실행
🛡️ 대응 방법
Phproject를 1.8.3 이상 버전으로 즉시 업그레이드
🔧 검증 코드
composer.json의 버전 정보에서 1.8.3 미만이면 취약, 1.8.3 이상이면 패치됨
grep -i '"version"' /opt/phproject/composer.json 2>/dev/null | head -1