🇰🇷 한글 설명
Gitea의 이슈 및 댓글에 반응(reaction)을 추가하거나 제거하는 웹 핸들러가 쓰기 권한이 없는 사용자에 대해 잠긴 이슈를 거부하지 않는 취약점입니다. API와 달리 웹 인터페이스에서는 잠긴 이슈에 대한 상호작용 제한을 우회하여 반응을 조작할 수 있습니다. 다만, 반응 기능만 영향을 받으며 콘텐츠 자체는 변경할 수 없습니다.
💡 쉬운 설명
잠겨 있는 게시물에는 댓글을 달거나 수정할 수 없어야 하는데, Gitea의 특정 기능에서 이 규칙이 지켜지지 않는 문제입니다. 사용자가 게시물 내용은 못 건드리더라도 '좋아요' 같은 반응 버튼은 마음대로 누를 수 있는 상태입니다.
🇺🇸 원문 (English)
The Gitea web handlers for adding and removing reactions on issues and comments did not refuse locked issues for users without write access, although the API did. A signed-in user who could read an issue could therefore add or remove reactions on a locked issue and its comments, bypassing the interaction restriction of the lock. Only reactions were affected; no content could be changed.
📍 영향받는 시스템
Gitea (잠긴 이슈에 반응 추가/제거가 가능한 버전)
⚔️ 공격 벡터
로그인한 사용자가 읽기 권한이 있는 잠긴 이슈의 웹 핸들러를 통해 반응을 추가하거나 제거함
🛡️ 대응 방법
Gitea를 최신 보안 패치가 적용된 버전으로 업데이트하여 웹 핸들러의 권한 검증 로직을 수정함
🔧 검증 코드
API 응답에서 해당 이슈가 'locked: true' 상태임에도 불구하고 웹 UI를 통해 반응 조작이 가능한지 확인
curl -s http://<gitea-url>/api/v1/repos/<owner>/<repo>/issues/<index> | grep -i 'locked'