🇰🇷 한글 설명
OpenEMR 8.0.0 미만 버전에서 메시지 센터의 URL 파라미터 조작을 통해 모든 사용자의 내부 메시지를 조회할 수 있는 취약점이 발견되었습니다. 백엔드에서 관리자 권한을 검증하지 않아 인증된 사용자라면 누구나 전체 메시지 목록에 접근할 수 있습니다.
💡 쉬운 설명
로그인한 사용자라면 누구나 다른 사람들의 비밀 메시지까지 모두 볼 수 있는 보안 구멍이 발견되었습니다. 주소창에 특정 명령어를 입력하는 것만으로도 모든 의료 기록 메시지를 훔쳐볼 수 있습니다.
🇺🇸 원문 (English)
OpenEMR is a free and open source electronic health records and medical practice management application. Prior to version 8.0.0, the Message Center accepts the URL parameter `show_all=yes` and passes it to `getPnotesByUser()`, which returns all internal messages (all users’ notes). The backend does not verify that the requesting user is an administrator before honoring `show_all=yes`. The "Show All" link is also visible to non-admin users. As a result, any authenticated user can view the entire internal message list by requesting `messages.php?show_all=yes`. Version 8.0.0 patches the issue.
📍 영향받는 시스템
OpenEMR 8.0.0 미만 모든 버전
⚔️ 공격 벡터
인증된 사용자가 `messages.php?show_all=yes`와 같이 조작된 URL 파라미터를 요청하여 공격
🛡️ 대응 방법
OpenEMR을 최신 보안 패치가 적용된 8.0.0 버전 이상으로 업데이트
🔧 검증 코드
명령어 실행 결과로 다른 사용자의 메시지 내용이 포함된 HTML 응답이 출력되면 취약한 상태입니다.
curl -s http://<target_ip>/openemr/interface/messages.php?show_all=yes | grep -i 'message'