🔍 CVE-2026-24685

0.0
CVSS Score
UNKNOWN
2026-01-28
2026-01-29 16:31
✅ 완료

🇰🇷 한글 설명

OpenProject는 오픈소스 웹 기반 프로젝트 관리 소프트웨어입니다. 16.6.6 및 17.0.2 버전 이전에는 OpenProject의 저장소.diff 다운로드 엔드포인트에서 임의의 파일 작성 취약점이 존재합니다. 공격자는 특별히 제작된 rev 값을 제공하여 git show 명령줄 옵션을 주입할 수 있습니다. OpenProject가 SCM 명령을 실행할 때 Git이 공격자 제어의 rev를 옵션으로 해석하여 공격자 선택의 경로에 출력을 작성합니다. 결과적으로 프로젝트에 대한 :browse_repository 권한을 가진 모든 사용자는 OpenProject 프로세스 사용자가 작성할 수 있는 임의의 파일을 생성하거나 덮어쓸 수 있습니다.

💡 쉬운 설명

OpenProject의 특정 버전에는 임의의 파일을 작성할 수 있는 취약점이 있습니다. 공격자는 특별히 제작된 값을 제공하여 중요한 파일을 덮어쓸 수 있습니다. 이는 데이터 손실과 서비스 거부로 이어질 수 있습니다.

🇺🇸 원문 (English)

OpenProject is an open-source, web-based project management software. Versions prior to 16.6.6 and 17.0.2 have an arbitrary file write vulnerability in OpenProject’s repository diff download endpoint (`/projects/:project_id/repository/diff.diff`) when rendering a single revision via git show. By supplying a specially crafted rev value (for example, `rev=--output=/tmp/poc.txt)`, an attacker can inject git show command-line options. When OpenProject executes the SCM command, Git interprets the attacker-controlled rev as an option and writes the output to an attacker-chosen path. As a result, any user with the `:browse_repository` permission on the project can create or overwrite arbitrary files that the OpenProject process user is permitted to write. The written contents consist of git show output (commit metadata and patch), but overwriting application or configuration files still leads to data loss and denial of service, impacting integrity and availability. The issue has been fixed in OpenProject 17.0.2 and 16.6.6.

📍 영향받는 시스템

OpenProject 16.6.6 및 17.0.2 버전 이전

⚔️ 공격 벡터

공격자는 특별히 제작된 rev 값을 제공하여 git show 명령줄 옵션을 주입할 수 있습니다.

🛡️ 대응 방법

OpenProject를 17.0.2 또는 16.6.6 버전으로 업데이트하세요.

🔧 검증 코드

로컬에서 Python을 설치하고, OpenProject 인스턴스의 URL을 your-openproject-instance.com으로 대체하여 코드를 실행하세요. 코드는 OpenProject 인스턴스의 취약점 여부를 점검하고 결과를 JSON 형식으로 출력합니다.

Shell / Script
python -c "import requests; response = requests.get('https://your-openproject-instance.com/projects/1/repository/diff.diff?rev=--output=/tmp/poc.txt'); if response.status_code == 200: print({"result": "취약", "reason": "임의의 파일 작성 취약점"}); else: print({"result": "양호", "reason": "취약점 존재하지 않음"})"

💻 영향받는 소프트웨어

Git