Skip to content
KitploitKITPLOIT
工具漏洞利用博客
Log in
提交
工具漏洞利用博客
提交

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

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

订阅源联系隐私© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
mysql-install-component-scheme — MySQL Community Server 26.7.0 - 高危 - INSTALL COMPONENT 限定方案 - plugin_dir 跳过 | Kitploit
工具/GitHubGitHub/abraxas/mysql-install-component-scheme
漏洞分析漏洞利用Web应用程序漏洞利用渗透测试远程访问工具数据库安全实验室与实践
GitHubabraxas/mysql-install-component-scheme

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →

mysql-install-component-scheme

MySQL Community Server 26.7.0 - 高危 - INSTALL COMPONENT 限定方案 - plugin_dir 跳过

查看仓库
19天前尚未审核
分享

Abraxas Labs - mysql-install-component-scheme

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  mysql-install-component-scheme

mysql-install-component-scheme

类别: RCE 可达性: 远程

MySQL Community Server mysqld 26.7.0 (06a5c1c) - Oracle

默认的 file:// INSTALL COMPONENT 被 mysql_server_path_filter 包装并强制限制在 plugin_dir 下。未经过滤的 libminchassis 加载器仍注册为 dynamic_loader_scheme_file.mysql_minimal_chassis。URN scheme file.mysql_minimal_chassis 获取该实现,并以 mysqld UID 身份 dlopen 一个绝对路径。INSTALL PLUGIN / CREATE FUNCTION SONAME 仍然拒绝 /。需要对 mysql.component 具有 INSERT 权限(PR:H)。

实验环境将原版 component_query_attributes.so 复制到 /tmp/MYSQL-INSTALL-COMPONENT-SCHEME-WITNESS.so。无自定义组件。

字段值
ID暂无 CVE
类别RCE(组件以 mysqld 身份 dlopen;PR:H;实验环境加载了原版 .so)
可达性远程(已认证 SQL;INSTALL COMPONENT / PR:H)
CWECWE-427
CVSS高危:7.2 CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:H
产品MySQL Community Server mysqld
受影响版本26.7.0 (06a5c1c99c377fc41b2eba1ea244e8b220bdc3c8)
认证INSTALL COMPONENT(对 mysql.component 的 INSERT 权限)
许可证GNU Affero GPL v3.0
实验环境仅 127.0.0.1。将未使用的原版组件复制到 plugin_dir 之外。

攻击者能做什么

持有 INSTALL COMPONENT 权限。将组件 .so 放置在 plugin_dir 之外(通过 secure_file_priv 下的 FILE DUMPFILE,或本地写入)。执行 INSTALL COMPONENT 'file.mysql_minimal_chassis:///abs/name'(不带 .so 后缀;加载器会自动追加)。以 mysqld UID 身份 dlopen。同一 URN 会被持久化到 mysql.component 中,并在重启时重新加载。

file:///abs/name 被拒绝(3529)。INSTALL PLUGIN ... SONAME '/abs/...' 被拒绝(1124)。带限定名的 scheme 就是遗留的漏洞点。

我是如何发现的

同样是 26.7.0 的挖掘过程。set_default("dynamic_loader_scheme_file.mysql_server_path_filter") 是文档中所述的边界。未经过滤的实现仍然保持注册,以便包装器可以调用它。get_scheme_service_from_urn 将 :// 之前的字节作为 scheme。

my_service<SERVICE_TYPE(dynamic_loader_scheme)> service(
    (my_string("dynamic_loader_scheme_") + scheme).c_str(),
    &imp_mysql_minimal_chassis_registry);

file.mysql_minimal_chassis 是一个真实的 scheme。component.test 从未尝试过它。

走过的弯路:3 斜杠 URN(scheme:///tmp/...)可以加载;不需要 4 斜杠。URN 主干必须省略 .so。

实验环境

cd lab
./run.sh

镜像 mysql:26.7.0。发布端口 127.0.0.1:18650。plugin_dir=/usr/lib64/mysql/plugin。将原版 component_query_attributes.so 复制到 /tmp/MYSQL-INSTALL-COMPONENT-SCHEME-WITNESS.so。

SUCCESS mysql-install-component-scheme file-slash-denied=yes qualified-load=yes component-urn=yes dump=26.7.0 image=mysql:26.7.0 MYSQL-INSTALL-COMPONENT-SCHEME-WITNESS

修复方案

不要从 SQL URN 中获取 dynamic_loader_scheme_file.mysql_minimal_chassis。仅将 file 映射到路径过滤实现。拒绝命名了具体实现的 scheme。在每个文件加载器上保留 check_valid_path。

参考资料

  • github.com/mysql/mysql-server 标签 mysql-26.7.0 (06a5c1c99c377fc41b2eba1ea244e8b220bdc3c8)
  • components/libminchassis/dynamic_loader.cc get_scheme_service_from_urn
  • sql/server_component/dynamic_loader_path_filter.cc
  • 同类工具包:abraxas/mysql-mysqldump-show-tables-overflow · abraxas/mysql-mysqldump-tab-path · abraxas/mysql-mysqlbinlog-raw-path · abraxas/mysql-set-role-leftover
下载工具