🇰🇷 한글 설명
Frappe LMS(Learning Management System)는 콘텐츠 구조화를 돕는 학습 시스템입니다. 2.54.0 이전 버전에서는 퀴즈 제출 기록에 대한 서버 측 권한 검증이 부적절하여, 인증된 학생이 REST 우회를 통해 답안 검증 없이 합격 또는 만점 결과를 기록할 수 있습니다. 또한 다른 사용자 명의로 제출을 생성해 해당 사용자의 응시 횟수를 소진시킬 수 있습니다. 영향은 퀴즈 결과의 무결성과 가용성에 한정되며, 다른 사용자의 데이터 노출이나 권한 상승은 발생하지 않습니다.
💡 쉬운 설명
학생이 실제로 문제를 풀지 않고도 퀴즈를 통과한 것처럼 기록할 수 있는 취약점입니다. 또한 다른 사용자의 퀴즈 응시 기회를 대신 소진시켜 정상적인 제출을 막을 수 있습니다.
🇺🇸 원문 (English)
Frappe Learning Management System (LMS) is a learning system that helps users structure their content. Prior to version 2.54.0, quiz submission records are not adequately authorized on the server. Through a `REST` bypass, an authenticated student can record a passing or perfect quiz result without their answers being verified, unlocking course completion and certificates. The student can also create a submission attributed to another user, exhausting that user's allowed attempts and blocking legitimate submissions. These integrity and availability issues are scoped to quiz results; they do not expose other users' data or grant elevated roles. This issue is fixed in version 2.54.0.
📍 영향받는 시스템
Frappe LMS 2.54.0 미만 버전
⚔️ 공격 벡터
인증된 학생 계정으로 REST API를 우회 호출하여 퀴즈 제출 기록을 직접 생성하거나 다른 사용자 명의로 제출
🛡️ 대응 방법
Frappe LMS를 2.54.0 이상으로 업그레이드
🔧 검증 코드
출력된 버전이 2.54.0 미만이면 취약, 2.54.0 이상이면 패치 적용된 상태입니다. 아무것도 출력되지 않으면 설치 경로를 수동으로 확인해야 합니다.
cd $(dirname $(find / -path '*frappe*' -name 'hooks.py' 2>/dev/null | grep lms | head -1)) 2>/dev/null && grep -m1 '__version__' __init__.py 2>/dev/null || pip show lms 2>/dev/null | grep -i version