1. Cacti [1]
- 네트워크 및 시스템 성능을 모니터링하는 오픈 소스 도구
> SNMP를 기반으로 네트워크 장비, 서버, 애플리케이션 등의 성능 데이터를 수집하고, RRDTool을 사용하여 그래프 형태로 시각화
※ SNMP (Simple Network Management Protocol) : 네트워크 장비(라우터, 스위치, 서버 등)의 상태 및 성능 데이터를 수집하는 프로토콜
※ RRDTool : 시간에 따라 변화하는 데이터를 저장하고 그래프로 시각화해주는 툴
2. CVE-2025-22604
- Cacti의 다중 라인 SNMP 결과 파서의 결함으로 인해 발생하는 원격 코드 실행 취약점 (CVSS : 9.1) [3]
> OID의 일부가 시스템 명령의 일부로 사용되는 배열의 키로 사용되어 취약점이 발생
OID (Object IDentifier) [4] | - SNMP는 네트워크 장비의 정보(CPU 사용량, 메모리 사용량, 포트 Up/Down 상태 등)을 MIB(Management Infomation Base)에 저장해 정보를 주고받음 - MIB 내에 포함되어 있는 각 개별 정보(Object)에 대한 ID를 OID라 함 - 즉, CPU 사용량, 메모리 사용량, 포트 상태 등 각 정보에 대해 구분할 수 있는 ID |
영향받는 버전 : Cacti <= 1.2.8
- ss_net_snmp_disk_io() 또는 ss_net_snmp_disk_bytes()로 처리될 때 각 OID의 일부가 시스템 명령의 일부로 사용되는 배열의 키로 사용되어 취약점이 발생
> cacti_snmp_walk()에서 exec_into_array()를 사용해 명령을 실행하고 여러 줄을 배열로 사용해 결과를 읽음
> 그 후, [사진 2]의 코드를 사용해 문자 = 를 기준으로 왼쪽 값을 OID에, 오른쪽 값을 Value에 저장
> Value의 경우 필터링을 적용하지만, OID 값은 필터링 없이 사용
$i=0;
foreach($temp_array as $index => $value) { // $temp_array 배열 순회
if(preg_match('/(.*=.*/',$value)) { // $value 값이 "키=값" 형식인 경우
$parts=explode('=',$value,2); // = 문자를 기준으로 $value를 두 부분으로 분할
$snmp_array[$i]['oid']=trim($parts[0]); // 공백을 제거한 후 값을 oid에 저장
$snmp_array[$i]['value']=format_snmp_string($parts[1],false,$value_output_format); // 필터링 후 value에 저장
$i++; // 다음 배열 인덱스로 이동
} else { // 멀티라인 값 처리
$snmp_array[$i-1]['value'].=$value;
}
}
3. 해결방안
- 벤더사 제공 보안 업데이트 제공
제품명 | 영향받는 버전 | 해결 버전 |
Cacti | <= 1.2.8 | 1.2.29 |
4. 참고
[1] https://www.cacti.net/
[2] https://nvd.nist.gov/vuln/detail/CVE-2025-22604
[3] https://github.com/Cacti/cacti/security/advisories/GHSA-c5j8-jxj3-hh36
[4] https://blog.naver.com/watch_all/221698867095
[5] https://thehackernews.com/2025/01/critical-cacti-security-flaw-cve-2025.html
'취약점 > RCE' 카테고리의 다른 글
NachoVPN 취약점 (CVE-2024-29014, CVE-2024-5921) (0) | 2024.12.06 |
---|---|
Windows Scripting Engine RCE (CVE-2024-38178) (1) | 2024.10.27 |
CUPS 원격 코드 실행 취약점 (CVE-2024-47176, CVE-2024-47076, CVE-2024-47175, CVE-2024-47177) (0) | 2024.10.08 |
GeoServer 원격 코드 실행 취약점 (CVE-2024-36401) (2) | 2024.09.16 |
SolarWinds Web Help Desk 원격 코드 실행 취약점 (CVE-2024-28986, CVE-2024-28987) (0) | 2024.08.19 |