🇰🇷 한글 설명
LearnPress – WordPress LMS 플러그인 4.3.2.2 이하 버전에서 권한 없는 파일 삭제 취약점이 발견되었습니다. REST API 엔드포인트의 DELETE 작업 시 URL의 파일 ID와 권한 검증에 사용되는 요청 본문의 ID가 일치하지 않아 발생합니다. 이를 통해 교사 권한을 가진 공격자가 다른 교사가 업로드한 학습 자료 파일을 임의로 삭제할 수 있습니다.
💡 쉬운 설명
로그인한 교사가 권한 검사 과정을 속여서 다른 교사가 올린 수업 자료를 마음대로 지울 수 있는 문제입니다. 시스템이 '누가 지우는지' 확인하는 방식과 '무엇을 지우는지' 확인하는 방식이 서로 달라서 발생하는 오류입니다.
🇺🇸 원문 (English)
The LearnPress – WordPress LMS Plugin for WordPress is vulnerable to unauthorized file deletion in versions up to, and including, 4.3.2.2 via the /wp-json/lp/v1/material/{file_id} REST API endpoint. This is due to a parameter mismatch between the DELETE operation and authorization check, where the endpoint uses file_id from the URL path but the permission callback validates item_id from the request body. This makes it possible for authenticated attackers, with teacher-level access, to delete arbitrary lesson material files uploaded by other teachers via sending a DELETE request with their own item_id (to pass authorization) while targeting another teacher's file_id.
📍 영향받는 시스템
LearnPress – WordPress LMS Plugin (버전 4.3.2.2 이하)
⚔️ 공격 벡터
인증된 교사 권한을 가진 공격자가 REST API를 통해 조작된 DELETE 요청을 전송
🛡️ 대응 방법
LearnPress 플러그인을 최신 버전으로 업데이트하여 권한 검증 로직 수정
🔧 검증 코드
출력된 결과에서 learnpress의 버전이 4.3.2.2 이하인지 확인하십시오.
wp plugin list --allow-root | grep -E 'learnpress'