Wins Security Information

보안 정보

앞 내용 보기 다음 내용 보기
취약점 정보[CVE-2021-28379] VestaCP upload CSRF
작성일 2021-04-02 조회 2849

Installing VestaCP on centOS 7 Server | Serversupportz

VestaCP에 사이트 간 요청 위조(Cross-Site Request Forgery) 취약점이 존재합니다.

 

VestaCP는 오픈 소스 호스팅 제어판으로, 웹 사이트를 관리하고 이메일 계정과 FTP계정, MySQL 데이터베이스를 생성 및 관리하는데 이용됩니다.

 

해당 취약점은 /upload/index.php 경로에서 dir 매개변수의 값을 제대로 검사하지 않아 발생합니다. 원격의 공격자는 /home/admin/ 또는 /tmp/의 하위 경로에 파일을 업로드하여 공격할 수 있습니다.

 

공격 성공 시, 임의의 파일이 업로드될 수 있습니다.

 

 

 

취약점 설명

 

NVD - CVE-2021-28379

CVSS v2.0 Severity and Metrics:

Base Score: 6.8 MEDIUM

 

 

[그림1. NVD 내역]

 

 

 

취약점 분석

 

해당 취약점은 /upload/index.php 경로에서 dir 매개변수의 값을 "/home/admin" 또는 "/tmp" 경로로 설정하여 해당 경로에 임의의 파일을 업로드할 수 있습니다.

 

VestaCP의 업로드 기능은 /web/upload/index.php 파일에서 구현되며, 아래의 사진처럼 UploadHandler 클래스의 인스턴스를 만듭니다.

 

 

[그림2. index.php 코드]

 

 

[그림2. UploadHandler.php 코드]

 

 

/web/upload/UploadHandler.php 코드를 보면 'accept_file_type' 배열에서 모든 문자열을 허용하는 정규식이 작성돼 있습니다. 이를 통해 모든 확장자가 업로드될 수 있습니다.

 

 

[그림3. /bin/v-copy-fs-file 코드]

 

 

해당 코드에 명시된 경로인 "/tmp" 및 $homedir인 "/home/admin" 경로에만 파일을 업로드할 수 있으며, 악의적인 php 파일을 업로드하여 임의의 코드가 실행될 수 있습니다.

 

취약한 버전은 아래와 같으며, 제조사에서 패치가 진행되었습니다.

 

 - VestaCP Vesta Control Panel 0.9.8-27 and prior
 - myVestaCP myVesta 0.9.8-26-39 and prior

 

 

 

공격 분석 및 테스트

 

CVE-2021-28379의 공격 패킷은 다음과 같습니다.

 

 

[그림4. 취약한 패킷]

 

 

 

[그림5. 취약한 패킷]

 

 

 

취약점 대응 방안

 

1. 최신 버전 사용

 

해당 벤더사가 발표한 보안 권고문을 참고하여 최신의 버전으로 업데이트한다.

 

https://github.com/myvesta/vesta/

 

 

2. WINS Sniper 제품군 대응 방안

 

[5391] VestaCP upload CSRF

[5392] VestaCP upload CSRF.A

 

첨부파일 첨부파일이 없습니다.
태그 CVE-2021-28379  VestaCP  CSRF