🇰🇷 한글 설명
OpenProject의 HTML 새니타이저가 <macro> 요소에 :data 와일드카드를 통해 제한 없는 data-* 속성을 허용합니다. 공격자는 작업 패키지 설명에 data-controller="poll-for-changes"를 삽입해 피해자 브라우저에서 임의의 Turbo Stream 액션(redirect_to 포함)을 실행할 수 있으며, 이로 인해 인증된 세션이 공격자 서버로 리다이렉트될 수 있습니다.
💡 쉬운 설명
OpenProject에서 작업 설명에 악성 코드를 심어 두면, 그 내용을 보는 사용자의 브라우저가 공격자가 지정한 사이트로 자동 이동하게 됩니다. 로그인된 상태라도 이런 일이 발생할 수 있습니다.
🇺🇸 원문 (English)
OpenProject is open-source, web-based project management software. Prior to 17.3.3 and 17.4.1, the HTML sanitizer grants <macro> elements unrestricted data-* attributes via :data wildcard. An attacker injects data-controller="poll-for-changes" into a work package description, causing Stimulus.js to mount a controller that fetches an attacker-uploaded attachment and passes it to renderStreamMessage(). This executes arbitrary Turbo Stream actions — including redirect_to — in every victim's authenticated browser session, redirecting them to an attacker-controlled server. This vulnerability is fixed in 17.3.3 and 17.4.1.
📍 영향받는 시스템
OpenProject 17.3.3 미만 및 17.4.1 미만 버전
⚔️ 공격 벡터
작업 패키지 설명에 악성 data-controller 속성을 삽입하고 공격자 첨부파일로 Turbo Stream redirect_to 액션을 실행해 피해자를 외부 사이트로 리다이렉트
🛡️ 대응 방법
OpenProject를 17.3.3 이상 또는 17.4.1 이상으로 업데이트
🔧 검증 코드
출력된 버전이 17.3.3 이상(17.3.x 라인) 또는 17.4.1 이상(17.4.x 라인)이면 패치된 것이며, 그보다 낮으면 취약합니다.
docker exec openproject bash -c 'cat /home/app/openproject/VERSION 2>/dev/null || grep -m1 "version" /home/app/openproject/Gemfile.lock' 2>/dev/null
📊 CVSS Vector String
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:L/A:N
💻 영향받는 소프트웨어
Cisco Integrated Management Controller