침해사고분석팀ㅣ2022.07.05
보안 동향 ㅣ AstraLocker 랜섬웨어 종료 및 복호화 해제
침해사고분석팀ㅣ2022.07.05
침해사고분석팀ㅣ2022.07.04
침해사고분석팀ㅣ2022.07.04
침해사고분석팀ㅣ2022.07.01
취약점 정보[CVE-2021-28379] VestaCP upload CSRF | ||||
작성일 | 2021-04-02 | 조회 | 2849 | |
---|---|---|---|---|
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
공격 분석 및 테스트
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 |