🔍 CVE-2026-25763

0.0
CVSS Score
UNKNOWN
2026-02-06
2026-02-06 22:16
✅ 완료

🇰🇷 한글 설명

OpenProject는 오픈 소스, 웹 기반 프로젝트 관리 소프트웨어입니다. 버전 16.6.7 및 17.0.3 이전의 버전에서 OpenProject의 리포지토리 변경 엔드포인트(/projects/:project_id/repository/changes)에 임의의 파일 쓰기 취약점이 존재합니다. 이 취약점은 git log를 통해 "최신 변경" 보기 렌더링 시 발생하며, 공격자는 특별히 제작된 rev 값을 제공하여 git log 명령줄 옵션을 주입할 수 있습니다. OpenProject가 SCM 명령을 실행하면 Git이 공격자가 제어하는 rev를 옵션으로 해석하여 공격자가 선택한 경로에 출력을 씁니다. 따라서 프로젝트에 대한 :browse_repository 권한이 있는 모든 사용자는 OpenProject 프로세스 사용자가 쓸 수 있는 임의의 파일을 생성하거나 덮어쓸 수 있습니다. 작성된 내용은 git log 출력으로 구성되지만, 사용자 정의 커밋을 제작하여 공격자는 여전히 유효한 셸 스크립트를 업로드할 수 있으며, 이는 최종적으로 원격 코드 실행(RCE)에 이어집니다. RCE를 통해 공격자는 대상 호스트에 대한 역방향 셸을 생성하고 OpenProject 외부의 기밀 파일(예: /etc/passwd)을 볼 수 있습니다. 이 문제는 버전 16.6.7 및 17.0.3에서 패치되었습니다.

💡 쉬운 설명

OpenProject의 리포지토리 변경 기능에서 임의의 파일 쓰기 취약점이 발견되었습니다. 공격자는 이 취약점을 이용하여 임의의 파일을 생성하거나 덮어쓸 수 있으며, 이는 원격 코드 실행으로 이어질 수 있습니다. 사용자는 버전 16.6.7 또는 17.0.3로 업데이트하여 이 취약점을 방지할 수 있습니다.

🇺🇸 원문 (English)

OpenProject is an open-source, web-based project management software. Prior to versions 16.6.7 and 17.0.3, an arbitrary file write vulnerability exists in OpenProject’s repository changes endpoint (/projects/:project_id/repository/changes) when rendering the “latest changes” view via git log. By supplying a specially crafted rev value (for example, rev=--output=/tmp/poc.txt), an attacker can inject git log 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 log output, but by crafting custom commits the attacker can still upload valid shell scripts, ultimately leading to RCE. The RCE lets the attacker create a reverse shell to the target host and view confidential files outside of OpenProject, such as /etc/passwd. This issue has been patched in versions 16.6.7 and 17.0.3.

📍 영향받는 시스템

OpenProject 버전 16.6.7 및 17.0.3 이전의 버전

⚔️ 공격 벡터

공격자는 OpenProject의 리포지토리 변경 엔드포인트에 특별히 제작된 rev 값을 제공하여 git log 명령줄 옵션을 주입할 수 있습니다.

🛡️ 대응 방법

버전 16.6.7 또는 17.0.3로 업데이트하여 이 취약점을 방지할 수 있습니다.

🔧 검증 코드

로컬에서 Python을 사용하여 OpenProject 인스턴스에 요청을 보내 취약점 여부를 확인합니다. 이 코드를 실행하기 전에 OpenProject 인스턴스의 URL과 프로젝트 이름을 rempl에 따라 수정해야 합니다. 또한, 이 코드는 OpenProject 인스턴스에 대한 읽기 권한이 필요합니다.

Shell / Script
python -c "import requests; response = requests.get('https://your-openproject-instance.com/projects/your-project/repository/changes', params={'rev': '--output=/tmp/poc.txt'}); if response.status_code == 200: print('{"result": "취약", "reason": "git log 명령줄 옵션 주입 성공"}'); else: print('{"result": "양호", "reason": "git log 명령줄 옵션 주입 실패"}')"

💻 영향받는 소프트웨어

Git