Wins blog

글로벌 정보보안 파트너! Global Security  No.1 윈스는 국가대표 정보보안 기업에서 글로벌 강소기업으로 도약합니다.

보안 정보

앞 내용 보기 다음 내용 보기
취약점 정보[CVE-2017-12927] Cacti spikekill.php XSS
작성일 2017-09-08 조회 1027

개요


Cacti에 reflected XSS 취약점이 존재한다. 해당 취약점은 spikekill.php 페이지에 접근 시, 웹 사용자 인터페이스로 사용자가 입력한 입력 값을 제대로 검증하지 못해 발생한다.
 
 
[CVE 정보]
CVE-2017-12927
 
 
[취약한 버전]
Cacti Group Cacti prior to 1.1.18
 
 
[취약한 파라미터]
method
 
 
 

확인 내역

 
Cacti는 PHP로 작성된 Round-Robin 데이터베이스 도구 (RRDtool)에 대한 오픈 소스 front-end 인터페이스이다. Cacti는 사용자가 일정한 간격으로 다양한 데이터 소스를 폴링하여 수집 된 데이터를 기본 MySQL 데이터베이스에 저장한다. 데이터 수집은 외부 스크립트의 사용을 통해 SNMP 종점 및 기타 데이터 소스를 포함한 다양한 데이터 소스를 사용하여 수행 할 수 있다. Cacti는 RRDtool에서 지원하는 다양한 그래프 유형 및 통합 기능을 사용하여 수집 된 데이터를 표시 할 수 있다. 또한 관리자가 Cacti의 특정 영역에 대한 액세스 권한을 사용자에게 부여 할 수 있는 사용자 기반 관리 도구가 포함되어 있다.
 
Cacti 내에서는 spikekill.php를 사용하여 특정 데이터 세트에서 원하지 않는 잡음이나 스파이크를 제거 할 수 있다. spikekill.php는 다양한 스파이크 제거 방법들을 지원하는 removpikes.php 스크립트를 호출하여 이를 수행한다.
 
spikekill.php에 대한 요청이 있을 때, 사용할 스파이크 제거 방법은 요청에 전달 된 method 파라미터에 따라 지정된다. 그런 다음 spikekill.php는 method의 값이 "stddev", "float", "variance" 또는 "fill" 중 하나인지 확인한다. spikekill.php 스크립트에 대한 요청의 예는 다음과 같다.
 
GET /cacti/spikekill.php?method=stddev&local_graph_id=1 HTTP/1.1
Host: www.myhost.com
 
 
해당 취약점은 spikekill.php 내의 method 파라미터를 제대로 검증하지 못해 발생한다. method 파라미터의 값이 위에서 언급한 값들(stddev, float, variance, fill) 중 하나가 아닌 경우, Cacti는 method 값이 인식되지 않았음을 나타내는 에러 메시지로 응답한다. 이렇게 하면 요청문의 method로 전달된 값이 에러 메시지에 직접 반영된다. 그 결과, XSS 공격이 가능하게 된다.
 
 
[그림1] spikekill.php
 
 
[그림2] POC 정보
 
 
 
 

대응방안

해당 벤더사에서 제공한 보안 권고문을 참고하여, 취약한 버전에 대해 패치를 진행 한다.

https://www.cacti.net/release_notes.php?version=1.1.18
 
 

 

참고

https://github.com/Cacti/cacti/issues/907

http://securitytracker.com/id?1039208

첨부파일 첨부파일이 없습니다.
태그   CVE-2017-12927