Wins Security Information

취약점 정보

앞 내용 보기 다음 내용 보기
취약점 정보[CVE-2018-3760] Sprockets Directory Traversal
작성일 2021-02-19 조회 221

 

rails sprockets 이미지 검색결과

 

Rails Sprockets에 Directory Traversal 취약점이 존재합니다.

 

Ruby on Rails는 Ruby 언어로 작성된 MVC 패턴을 이용하는 오픈 소스 웹 프레임워크 이며, Sprockets는 웹 자산을 컴파일하고 서비스하기 위한 Ruby 라이브러리입니다.

 

Sprockets는 file:// 파라미터로 절대 경로를 입력받아 특정 파일 혹은 경로를 참조하 수 있는데, 참조가 가능한 파일의 유형은 화이트리스트 기반의 필터링을 통해 제어되지만 상대 경로 문자열("..")을 두 번 인코딩한 값을 서버로 전송하여 이를 우회해 공격할 수 있습니다.

 

원격의 공격자는 요청 URI에 서버 내 임의 파일의 상대 경로를 포함하여 공격할 수 있습니다.

 

 

 

취약점 설명

 

NVD - CVE-2018-3760

CVSS v2.0 Severity and Metrics:

Base Score: 5.0 MEDIUM

 

 

[그림1. NVD 내역]

 

 

 

취약점 분석

 

참조하려는 경로가 화이트리스트에 존재하지 않을 경우 [그림 2]와 같은 에러 페이지가 출력됩니다.

 

[그림 2. 에러 페이지]

 

하지만 에러페이지에 접근 가능한 경로가 나열되기 때문에 이를 이용하여 화이트리스트 필터링을 통과하고, ".."문자열을 두 번 인코딩한 값인 %252e를 경로에 포함시켜 Directory Traversal 취약점을 발생시킬 수 있습니다.

 

패치된 버전의 소스코드는 [그림 3]과 같습니다.

 

[그림3. 패치된 소스코드]

 

 

공격 분석

 

CVE-2018-3760의 공격 패킷은 다음과 같습니다.

 

[그림4. 공격 패킷]

 

[그림 4]유형 외에도 %252e 문자열을 URI경로에 포함시켜 공격할 수도 있습니다.

 

 

 

취약점 대응 방안

 

1. 최신 버전 사용

 

해당 벤더사에서 공개한 최신 버전으로 업그레이드 한다.

https://github.com/rails/sprockets

 

 

2. WINS Sniper 제품군 대응 방안

 

[5355] Rails Sprockets file Directory Traversal

 

첨부파일 첨부파일이 없습니다.
태그 CVE-2018-3760  Sprockets