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
Vulnerability AnalysisExploitationWeb Application ExploitationPenetration TestingRemote Access ToolDatabase SecurityLabs & Practice
GitHub
abraxas/mysql-install-component-scheme

mysql-install-component-scheme

MySQL Community Server 26.7.0 - 높음 - INSTALL COMPONENT 정규화된 스킴 - plugin_dir 건너뛰기

저장소 보기
11188일 전아직 검토되지 않음

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

Abraxas Labs - mysql-install-component-scheme

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

분석 문서: https://abraxaslabs.tech/research/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 스킴 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 (컴포넌트 dlopen이 mysqld로 실행; PR:H; 랩에서는 기본 제공 .so를 로드함)
도달 범위원격 (인증된 SQL; INSTALL COMPONENT / PR:H)
CWECWE-427
CVSSHigh: 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). 정규화된 스킴이 남는 구멍이다.

발견 경위

동일한 26.7.0 탐색 과정에서 발견했다. set_default("dynamic_loader_scheme_file.mysql_server_path_filter")가 문서화된 경계이다. 필터링되지 않은 구현은 래퍼가 호출할 수 있도록 계속 등록되어 있다. get_scheme_service_from_urn은 :// 앞의 바이트를 스킴으로 취한다.

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는 실제 스킴입니다. component.test는 이를 시도하지 않습니다.

잘못된 시도: 3-슬래시 URN(scheme:///tmp/...)이 로드됨; 4-슬래시는 필요하지 않았습니다. URN stem은 .so를 생략해야 합니다.

Lab

cd lab
./run.sh

Image mysql:26.7.0. Published 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만 경로 필터 구현에 매핑하십시오. 구현을 지정하는 스킴은 거부하십시오. 모든 파일 로더에서 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
도구 다운로드