
OpenEMR 보안 문제
OpenEMR 프로젝트의 경로 탐색 및 DoS 취약점
취약한 함수 파일: /openemr/custom/ajax_download.php
조건:
취약한 버전: <5.0.2, 5.0.2 버전에서 수정됨.
이 함수의 취약한 변수: fileName, 공격자가 제어할 수 있으며 어떤 필터링이나 검증도 없음.
공격자는 서버 저장소에서 (www-data 사용자가 읽을 수 있는) 모든 파일을 다운로드할 수 있음.
요청된 파일이 www-data 사용자에게 쓰기 가능하고 디렉토리 /var/www/openemr/sites/default/documents/cqm_qrda/가 존재하면 서버에서 삭제됨.
존재하지 않는 디렉토리는 큰 문제가 아닌데, 공격자가 만들 수 있기 때문이다. 업로드 함수 /openemr/controller.php?document&upload의 변수 "higher_level_path"는 파일이 저장될 디렉토리 이름을 제공할 수 있게 하며, 이 디렉토리가 존재하지 않고 ( "patient_id" 변수가 숫자이고 0보다 큰 경우 ) "700" 권한으로 생성되고 "www-data" 사용자가 소유하게 됨.
공격자가 서버에서 일부 구성/php 스크립트를 삭제할 수 있으므로 DoS를 유발할 수 있음.
정보 노출.
서비스 거부.
추신: 빠른 응답과 패치를 제공한 OpenEMR 팀의 Brady G. Miller에게 특별히 감사드립니다