Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

FluxContactConfidentialité© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
mysql-install-component-scheme — MySQL Community Server 26.7.0 - Élevé - Schéma qualifié INSTALL COMPONENT - plugin_dir skip | Kitploit
Outils/GitHubGitHub/abraxas/mysql-install-component-scheme
Analyse des VulnérabilitésExploitationExploitation d'Applications WebTests d'IntrusionOutil d'Accès à DistanceSécurité des Bases de DonnéesLabs et Pratique
GitHub
abraxas/mysql-install-component-scheme

mysql-install-component-scheme

MySQL Community Server 26.7.0 - Élevé - Schéma qualifié INSTALL COMPONENT - plugin_dir skip

Voir le dépôt
1il y a 9 joursPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

Abraxas Labs - mysql-install-component-scheme

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

mysql-install-component-scheme

Classe : RCE Portée : Distante

MySQL Community Server mysqld 26.7.0 (06a5c1c) - Oracle

Le INSTALL COMPONENT file:// par défaut est enveloppé par mysql_server_path_filter et forcé sous plugin_dir. Le chargeur libminchassis non filtré reste enregistré sous dynamic_loader_scheme_file.mysql_minimal_chassis. Le schéma URN file.mysql_minimal_chassis acquiert cette implémentation et fait un dlopen d'un chemin absolu avec l'UID de mysqld. INSTALL PLUGIN / CREATE FUNCTION SONAME rejettent toujours /. Nécessite INSERT sur mysql.component (PR:H).

Le lab copie le component_query_attributes.so d'origine vers /tmp/MYSQL-INSTALL-COMPONENT-SCHEME-WITNESS.so. Aucun composant personnalisé.

ChampValeur
IDpas encore de CVE
ClasseRCE (composant dlopen en tant que mysqld ; PR:H ; le lab a chargé un .so d'origine)
PortéeDistante (SQL authentifié ; INSTALL COMPONENT / PR:H)
CWECWE-427
CVSSÉlevé : 7.2 CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:H
ProduitMySQL Community Server mysqld
Affecté26.7.0 (06a5c1c99c377fc41b2eba1ea244e8b220bdc3c8)
AuthINSTALL COMPONENT (INSERT sur mysql.component)
LicenceGNU Affero GPL v3.0
Lab127.0.0.1 uniquement. Composant d'origine inutilisé copié en dehors de plugin_dir.

Ce qu'un attaquant peut faire

Détenir INSTALL COMPONENT. Placer un composant .so en dehors de plugin_dir (FILE DUMPFILE sous secure_file_priv, ou une écriture locale). INSTALL COMPONENT 'file.mysql_minimal_chassis:///abs/name' (sans suffixe .so ; le chargeur l'ajoute). dlopen avec l'UID de mysqld. Le même URN est persisté dans mysql.component et rechargé au redémarrage.

file:///abs/name est refusé (3529). INSTALL PLUGIN ... SONAME '/abs/...' est refusé (1124). Le schéma qualifié est le résidu.

Comment je l'ai trouvé

Même chasse sur la 26.7.0. set_default("dynamic_loader_scheme_file.mysql_server_path_filter") est la frontière documentée. L'implémentation non filtrée reste enregistrée pour que l'enveloppe puisse l'appeler. get_scheme_service_from_urn prend les octets avant :// comme schéma.

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 est un schéma réel. component.test ne l'essaie jamais.

Fausses pistes : URN à 3 slashes (scheme:///tmp/...) chargé ; le 4 slashes n'était pas nécessaire. La racine de l'URN doit omettre .so.

Lab

cd lab
./run.sh

Image mysql:26.7.0. Publiée sur 127.0.0.1:18650. plugin_dir=/usr/lib64/mysql/plugin. Copie le component_query_attributes.so d'origine vers /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

Le correctif

Ne pas acquérir dynamic_loader_scheme_file.mysql_minimal_chassis à partir d'URN SQL. Ne mapper que file vers l'implémentation du filtre de chemin. Rejeter un schéma qui nomme une implémentation. Conserver check_valid_path sur chaque chargeur de fichier.

Références

  • github.com/mysql/mysql-server tag mysql-26.7.0 (06a5c1c99c377fc41b2eba1ea244e8b220bdc3c8)
  • components/libminchassis/dynamic_loader.cc get_scheme_service_from_urn
  • sql/server_component/dynamic_loader_path_filter.cc
  • Packs frères : abraxas/mysql-mysqldump-show-tables-overflow · abraxas/mysql-mysqldump-tab-path · abraxas/mysql-mysqlbinlog-raw-path · abraxas/mysql-set-role-leftover
Télécharger l’outil