Wins Security Information

취약점 정보

앞 내용 보기 다음 내용 보기
취약점 정보[CVE-2020-29139] OpenEMR SQL Injection
작성일 2021-08-06 조회 45

 

 

 

 

OpenEMR에 SQL Injection 취약점이 존재합니다.

 

해당 취약점은 /interface/main/finder/patient_select.php 경로에서 searchFields 파라미터에 대한 부적절한 유효성 검사로 인해 발생합니다. 원격의 공격자는 악의적으로 조작된 요청을 전송하여 공격할 수 있습니다.

 

공격 성공 시, 임의의 정보가 유출될 수 있습니다.

 

 

 

취약점 설명

 

NVD - CVE-2020-29139

CVSS v2.0 Severity and Metrics:

Base Score: 6.5 MEDIUM

 

 

[그림1. NVD 내역]

 

 

 

취약점 분석

 

 

해당 취약점은 /interface/main/finder/patient_select.php 경로에서 searchFields 파라미터에 대한 부적절한 유효성 검사로 인해 발생합니다.

 

 

 

[그림2. /interface/main/finder/patient_select.php 코드 일부]

 

 

위 코드를 보면 취약한 경로에서 searchFields 파라미터를 사용할 때, getByPatientDemographicsFilter() 함수를 사용하는 것을 확인할 수 있습니다. 

 

 

 

[그림3. /library/patient.inc 코드 일부]

 

해당 함수를 정의하는 코드를 보면 add_escape_custom() 함수를 사용하여 값을 불러올때 별도의 검증과정 없이 바로 사용하는 것을 확인할 수 있습니다.

 

이로 인해 임의의 공격자 또는 사용자는 searchFields 파라미터에 임의의 sql 구문을 삽입하여 사용자 정보를 얻을 수 있게 됩니다.

 

 

취약한 버전은 5.0.2.5 미만 버전으로 5.0.2.5 버전에서 패치되었습니다.

 

 

 

공격 분석

 

 

CVE-2020-29139의 공격 패킷은 다음과 같습니다.

 

 

 

[그림 4. 공격 패킷]

 

 

공격 성공 시, 임의의 정보가 유출될 수 있습니다.

 

 

 

취약점 대응 방안

 

1. 최신 버전 사용

 

해당 벤더사에서 발표한 최신의 버전으로 업데이트한다.

https://www.open-emr.org/wiki/index.php/OpenEMR_Downloads

 

 

2. WINS Sniper 제품군 대응 방안

 

[6114] OpenEMR patient_select searchFields SQL Injection

 

첨부파일 첨부파일이 없습니다.
태그 CVE-2020-29139  OpenEMR  SQLInjection