🇰🇷 한글 설명
OpenEMR 2.8.1 이전 버전에서 register_globals가 활성화된 환경에서 srcdir 매개변수를 통해 여러 PHP 파일에서 원격 파일 포함(RFI) 취약점이 존재합니다. 이를 악용하여 공격자가 임의의 PHP 코드를 원격으로 실행할 수 있습니다.
💡 쉬운 설명
OpenEMR 웹 애플리케이션이 외부에서 전달된 파일 경로를 검증하지 않고 사용하는 문제입니다. 공격자가 악의적인 코드를 포함한 외부 파일을 지정하여 서버에서 실행되도록 할 수 있습니다.
🇺🇸 원문 (English)
Multiple PHP remote file inclusion vulnerabilities in OpenEMR 2.8.1 and earlier, when register_globals is enabled, allow remote attackers to execute arbitrary PHP code via a URL in the srcdir parameter to (a) billing_process.php, (b) billing_report.php, (c) billing_report_xml.php, and (d) print_billing_report.php in interface/billing/; (e) login.php; (f) interface/batchcom/batchcom.php; (g) interface/login/login.php; (h) main_info.php and (i) main.php in interface/main/; (j) interface/new/new_patient_save.php; (k) interface/practice/ins_search.php; (l) interface/logout.php; (m) custom_report_range.php, (n) players_report.php, and (o) front_receipts_report.php in interface/reports/; (p) facility_admin.php, (q) usergroup_admin.php, and (r) user_info.php in interface/usergroup/; or (s) custom/import_xml.php.
📍 영향받는 시스템
OpenEMR 2.8.1 이전 버전 (register_globals 활성화 환경)
⚔️ 공격 벡터
srcdir 파라미터에 외부 URL을 입력하여 원격 PHP 코드 실행 (billing, login, reports, usergroup 등 여러 모듈의 18개 이상 파일 영향)
🛡️ 대응 방법
OpenEMR을 2.8.2 이상으로 업그레이드하거나 register_globals 비활성화, 파일 경로 입력값 검증 추가
🔧 검증 코드
결과가 있으면 register_globals가 활성화된 것이므로 위험 상태입니다. 결과가 없으면 이미 비활성화되어 있습니다.
grep -r 'register_globals' /etc/php*/ 2>/dev/null | grep -i 'on'