Goal Reached Thanks to every supporter — we hit 100%!

Goal: 1000 CNY · Raised: 1359 CNY

100%

CVE-2019-14530 PoC — OpenEMR 路径遍历漏洞

Source
Associated Vulnerability
Title: OpenEMR 路径遍历漏洞 (CVE-2019-14530)
Description:An issue was discovered in custom/ajax_download.php in OpenEMR before 5.0.2 via the fileName parameter. An attacker can download any file (that is readable by the user www-data) from server storage. If the requested file is writable for the www-data user and the directory /var/www/openemr/sites/default/documents/cqm_qrda/ exists, it will be deleted from server.
Description
OpenEMR security issue
Readme
# CVE-2019-14530

Path traversal and DoS vulnerability in OpenEMR project

**Vulnerable function in file:** /openemr/custom/ajax_download.php

**Conditions:**
1. any authorized user
2. for DoS case: directory "/sites/default/documents/cqm_qrda/" must exists on server ( Due
to logic of "unlink()" function, path to file must consist only exsisting directories and file in it. )

**Vulnerable versions:** <5.0.2, Fixed in 5.0.2 version.

## Description

Vulnerable variable in this function: `fileName`, it can be controlled by attacker and there is no any filtration and validation of this. 

 An attacker can download any file (that is readable by the user www-data)
 from server storage. 
 
 If the requested file is writable for the www-data user
 and the directory `/var/www/openemr/sites/default/documents/cqm_qrda/`
 exists, it will be deleted from server. 
 
 Not exsisting directory is not big problem, since attacker can make it. Variable "higher_level_path" in upload function ` /openemr/controller.php?document&upload` allow us to provide directory name, where file will be stored, and if this directory not exists ( and "patient_id" variable is numeric and greater than 0 )it will be created with "700" rights and owned by "www-data" user.
 
 It can cause DoS, because attacker can delete some configs/php scripts from server.
 
 ## Impact
 
 Information disclosure. 
 
 Denial of service.
 
 ## Other
 
 [OpenEMR official site](https://www.open-emr.org/)
 
 [OpenEMR git repo](https://github.com/openemr)
 
 [Patch for this issue](https://github.com/openemr/openemr/pull/2592)

*P.S. Special thanks to  Brady G. Miller from OpenEMR team for fast response and patches*
File Snapshot

Log in to view the POC file snapshot cached by Shenlong Bot

Log in to view
Remarks
    1. It is advised to access via the original source first.
    2. Local POC snapshots are reserved for subscribers — if the original source is unavailable, the local mirror is part of the paid plan.
    3. Mirroring, verifying, and maintaining this POC archive takes ongoing effort, so local snapshots are a paid feature. Your subscription keeps the archive online — thank you for the support. View subscription plans →