🇰🇷 한글 설명
Scoold 플랫폼의 1.69.0 미만 버전에서 개인 API 토큰을 가진 사용자가 접근 권한이 없는 비공개 공간의 답변을 조회할 수 있는 취약점이 발견되었습니다. ApiController.java의 getPostReplies() 메서드가 공간 접근 권한을 확인하지 않아 발생하며, 이를 통해 팀이나 프로젝트의 기밀 논의 내용이 노출될 수 있습니다.
💡 쉬운 설명
권한이 없는 사용자가 API를 이용해 몰래 비공개 게시물의 답변 내용을 훔쳐볼 수 있는 보안 결함입니다. 개인용 인증 키만 있으면 접근이 금지된 비밀 대화 내용까지 읽을 수 있습니다.
🇺🇸 원문 (English)
Scoold is a Q&A and a knowledge sharing platform for teams. Prior to 1.69.0, users with personal API tokens can retrieve replies from questions in private spaces they cannot access because src/main/java/com/erudika/scoold/api/ApiController.java in ApiController.getPostReplies() does not apply canAccessSpace before returning data from GET /api/posts/{id}/answers. The issue is reachable when scoold.api_user_access_enabled and scoold.api_enabled are true and a token holder knows or enumerates a private question identifier. Under those conditions, the question endpoint can deny access while the answers endpoint returns the private reply bodies, exposing confidential team or project discussions. This issue is fixed in version 1.69.0.
📍 영향받는 시스템
Scoold 1.69.0 미만 버전 (scoold.api_user_access_enabled 및 scoold.api_enabled가 활성화된 경우)
⚔️ 공격 벡터
API 토큰을 보유한 공격자가 비공개 질문의 ID를 추측하거나 열거하여 GET /api/posts/{id}/answers 엔드포인트로 요청을 보냄
🛡️ 대응 방법
Scoold를 최신 보안 패치가 적용된 1.69.0 버전 이상으로 업데이트하십시오.
🔧 검증 코드
명령어 실행 결과로 1.69.0 이상의 버전 번호가 출력되면 취약점이 해결된 상태입니다.
curl -s http://<target-host>/api/version | grep -E '1.69.0'