🇰🇷 한글 설명
Chamilo LMS 2.0.0부터 2.0.1 이전 버전에서 GET /user/{username} 경로가 인증 없이 접근 가능하며, 사용자가 편집할 수 있는 프로필 필드(firstname, lastname, competences, openarea, teach, diplomas)가 autoescape false 상태로 출력됩니다. 쓰기 경로에 서버 측 정제가 없어 공격자가 프로필에 HTML/스크립트를 삽입할 수 있으며, 이 내용은 관리자를 포함한 방문자의 브라우저에서 실행되어 세션, JWT, localStorage 탈취로 이어질 수 있습니다. 2.0.1 버전에서 수정되었습니다.
💡 쉬운 설명
학습 관리 시스템의 공개 사용자 프로필에 악성 코드를 심을 수 있는 취약점입니다. 이 프로필을 방문한 사람, 특히 관리자의 브라우저에서 코드가 실행되어 계정을 빼앗길 수 있습니다.
🇺🇸 원문 (English)
Chamilo LMS is an open-source learning management system. From 2.0.0 until 2.0.1, `GET /user/{username}` is anonymously reachable and renders six user-editable profile fields (`firstname`, `lastname`, `competences`, `openarea`, `teach`, and `diplomas`) inside `{% autoescape false %}`, without server-side sanitization on the write path. A ROLE_STUDENT attacker can plant HTML in their own profile; self-registration, when enabled, lets an otherwise anonymous attacker obtain that role. The stored content executes in the browser of any visitor, including administrators, who follows the public profile link, potentially allowing account takeover through session, JWT, or `localStorage` exfiltration. This issue is fixed in version 2.0.1.
📍 영향받는 시스템
Chamilo LMS 2.0.0 이상 2.0.1 미만 버전
⚔️ 공격 벡터
공격자가 학생 권한으로 프로필 필드에 악성 스크립트를 저장하고, 피해자가 공개 프로필 링크를 열면 스크립트가 실행되어 세션/토큰이 탈취됩니다.
🛡️ 대응 방법
Chamilo LMS를 2.0.1 이상으로 업그레이드하고, 자가 등록 기능이 불필요하면 비활성화합니다.
🔧 검증 코드
출력된 버전이 2.0.0 또는 2.0.1이면 취약하며, 2.0.1 미만이면 업그레이드가 필요합니다. 결과가 없으면 설치 경로를 확인하세요.
grep -rE "VERSION|version" /var/www/html/chamilo/main/inc/lib/*.lib.php /var/www/html/chamilo/composer.json 2>/dev/null | grep -E '2\.0\.[01]'
📊 CVSS Vector String
CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:H/I:H/A:L
💻 영향받는 소프트웨어
Multi-Domain Security Management Server