🇰🇷 한글 설명
OpenProject 17.3.2 미만 및 17.4.0 미만 버전에서 문서 업데이트 엔드포인트가 권한 검사 이전에 공격자가 제어하는 속성을 저장된 레코드에 적용합니다. 이로 인해 :manage_documents 권한이 없는 사용자도 단일 PATCH 요청에서 project_id를 설정해 다른 프로젝트의 문서를 이동하거나 수정할 수 있습니다.
💡 쉬운 설명
프로젝트 관리 도구 OpenProject에서 권한이 없는 사용자가 다른 팀의 문서를 옮기거나 고칠 수 있는 결함입니다. 공격자가 요청 한 번으로 이 동작을 수행할 수 있습니다.
🇺🇸 원문 (English)
OpenProject is open-source, web-based project management software. Prior to 17.3.2 and 17.4.0, OpenProject exposes a document update endpoint used to modify existing documents. The target document is loaded with visibility checks and then updated. During update, attacker-controlled attributes are applied to the persisted record before authorization is enforced. As a result, a user without :manage_documents in the source project can move and modify foreign project documents by setting project_id in a single PATCH request. This vulnerability is fixed in 17.3.2 and 17.4.0.
📍 영향받는 시스템
OpenProject 17.3.2 미만, 17.4.0 미만 버전
⚔️ 공격 벡터
인증된 사용자가 문서 업데이트 PATCH 요청에 project_id를 포함시켜 권한 검사 없이 타 프로젝트 문서를 이동·수정
🛡️ 대응 방법
OpenProject를 17.3.2 이상 또는 17.4.0 이상으로 업데이트
🔧 검증 코드
출력된 버전이 17.3.2 이상 또는 17.4.0 이상이면 패치 적용된 것이며, 그보다 낮으면 취약합니다.
docker exec $(docker ps -qf ancestor=openproject/openproject) cat /app/VERSION 2>/dev/null || grep -rh 'version' /opt/openproject/VERSION 2>/dev/null