🇰🇷 한글 설명
Forem 오픈소스 소프트웨어의 특정 버전에서 피드백 메시지 입력값에 대한 검증 미흡으로 인해 발생하는 저장형 XSS 취약점입니다. 공격자가 악성 스크립트를 포함한 메시지를 제출하면 관리자가 이를 조회할 때 브라우저에서 임의의 자바스크립트가 실행될 수 있습니다. 이를 통해 관리자의 세션 탈취, CSRF 토큰 노출 또는 관리자 권한을 이용한 임의 작업 수행이 가능합니다.
💡 쉬운 설명
악성 코드가 담긴 메시지를 보내 관리자가 그 메시지를 읽게 만드는 공격 방식입니다. 관리자가 메시지를 확인하는 순간, 공격자가 원하는 명령이 관리자의 브라우저에서 몰래 실행될 수 있습니다.
🇺🇸 원문 (English)
Forem is open source software for building communities. In versions before commit 92eacd16a82cf9007ba8e16a2258b42e3b53ca9c, a malicious value submitted through feedback_message[message] is stored without sanitization and rendered in app/views/admin/feedback_messages/_feedback_message.html.erb through raw(feedback_message.message) when offender_id is present. Viewing the abuse report executes arbitrary JavaScript in an administrator's browser and may expose sensitive in-page data, abuse CSRF tokens, or perform administrative actions in the victim's session. The public FeedbackMessagesController accepts the report without authorization and previously permitted a submitted offender_id, making the vulnerable rendering path reachable by an unauthenticated attacker. This issue is fixed in commit 92eacd16a82cf9007ba8e16a2258b42e3b53ca9c
📍 영향받는 시스템
Forem (commit 92eacd16a82cf9007ba8e16a2258b42e3b53ca9c 이전 버전)
⚔️ 공격 벡터
인증되지 않은 공격자가 피드백 메시지 컨트롤러를 통해 악성 스크립트가 포함된 데이터를 전송하여 관리자 페이지에서 실행 유도
🛡️ 대응 방법
커밋 92eacd16a82cf9007ba8e16a2258b42e3b53ca9c가 적용된 최신 버전으로 업데이트
🔧 검증 코드
출력된 커밋 해시값이 92eacd16a82cf9007ba8e16a2258b42e3b53ca9c와 같거나 그 이후 버전인지 확인