Skip to content
KitploitKITPLOIT
도구익스플로잇블로그
Log in
제출
도구익스플로잇블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

피드문의개인정보© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
sqlite-xfer-auth — SQLite 3.53.4 - 높은 - 로컬 - 권한 잔여 - INSERT SELECT 전송 시 소스 READ 건너뜀 | Kitploit
도구/GitHubGitHub/abraxas/sqlite-xfer-auth
Vulnerability AnalysisCode AnalysisExploitationSecurity VirtualizationPapers & ResearchDatabase SecurityLabs & Practice
GitHubabraxas/sqlite-xfer-auth

sqlite-xfer-auth

SQLite 3.53.4 - 높은 - 로컬 - 권한 잔여 - INSERT SELECT 전송 시 소스 READ 건너뜀

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

Abraxas Labs - sqlite-xfer-auth

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  sqlite-xfer-auth

sqlite-xfer-auth

분류: 권한 잔존 도달 범위: 로컬

SQLite 3.53.4 (b09c88c, SOURCE_ID 2026-07-24 19:02:57 bf7c7f30031888f4e796e429ab3978879485813aaca6f641c7b33e4e09459bcc)는 여전히 INSERT INTO dest SELECT * FROM src에 대해 xferOptimization 빠른 경로를 사용합니다. sqlite3AuthCheck는 dest에 대한 SQLITE_INSERT만 검사합니다. 복사 과정은 src에 대해 sqlite3Select나 컬럼별 sqlite3AuthRead를 호출하지 않습니다. SELECT * FROM src는 거부됩니다. INSERT SELECT는 증인(witness)을 복사합니다. authorizer 로그는 INSERT:dest입니다.

Authorizer는 임베더가 설치하지 않는 한 비활성화됩니다. RCE는 아닙니다. DRH는 Fossil d1cdb817을 3.53 버그 수정이 아닌 3.54 기능으로 취급했습니다. 3.54.0은 아직 초안입니다.

ID아직 CVE 없음
분류권한 잔존 (READ 거부된 테이블 복사)
도달 범위로컬 (임베더 sqlite3_set_authorizer)
CWECWE-863
CVSS높음: 7.5 CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N
제품SQLite (Hwaci)
영향받는 버전3.53.4 (b09c88c14082339b66c7b7158d609a771e64ca69)
인증src에 대한 READ/SELECT를 거부하고 dest에 대한 INSERT를 허용하는 설치된 authorizer에 대한 로컬 SQL
라이선스GNU Affero GPL v3.0
랩127.0.0.1:18850 전용

공격자가 할 수 있는 일

dest가 스키마 호환되고 INSERT가 허용될 때 INSERT INTO dest SELECT * FROM src를 준비합니다. 원시 B-tree 레코드가 READ 거부된 소스 테이블을 떠나 dest에 도착합니다. 순수한 SELECT * FROM src는 SQLITE_AUTH입니다. xfer 경로는 SELECT를 컴파일하지 않으므로 소스 SQLITE_SELECT, 테이블 수준 SQLITE_READ, 컬럼별 sqlite3AuthRead가 전혀 발생하지 않습니다.

신뢰할 수 없는 SQL / 컬럼 ACL 게이트로 sqlite3_set_authorizer를 설치한 임베더가 필요합니다. 기본 라이브러리에서는 해당 콜백이 NULL입니다. RCE는 아닙니다.

발견 방법

이 GA의 다른 잔존 항목들과 동일한 3.53.4 Crit/High 탐색입니다. Authorizer는 sqlite3_set_authorizer에 문서화되어 있습니다. INSERT 인증은 dest 테이블에만 적용됩니다(insert.c:969). xfer는 sqlite3Select() 이전에 수행됩니다(insert.c:1020-1038). xferOptimization은 레코드를 복사합니다. 이 핀에서 insert.c를 grep한 결과: sqlite3AuthCheck 하나, sqlite3AuthRead 없음. SQLITE_OMIT_XFER_OPT는 기본 빌드 플래그가 아닙니다.

포럼 2026-05-21T03:31:22Z. 트렁크 d1cdb817cafd03a4는 3.54 전용입니다. DRH: 새 기능이며, branch-3.53에 반영되지 않습니다.

랩

cd lab
./run.sh

amalgamation 3.53.4와 lab/xfer_auth.c를 빌드합니다. Compose sqlite-xfer-auth. 127.0.0.1:18850에 바인드합니다. Oracle은 인프로세스 authorizer의 JSON입니다: SELECT * FROM src 거부됨; INSERT INTO dest SELECT * FROM src 정상; dest에 SQLITE-XFER-AUTH-WITNESS 존재; insert 액션은 INSERT:dest만 해당.

SUCCESS sqlite-xfer-auth how=xfer-opt-skip-src-read select-src=denied insert-select=ok dest-has-witness=yes SQLITE-XFER-AUTH-WITNESS

수정 방법

3.54 d1cdb817이 하는 방식으로 소스를 인가하십시오: authorizer가 등록되어 있으면 xferOptimization은 src에 대해 SELECT/READ를 sqlite3AuthCheck해야 합니다(또는 빠른 경로를 거부하고 sqlite3Select로 폴스루해야 합니다). 그때까지는 테이블에 대한 READ를 거부하는 임베더는 호환되는 모든 dest에 대한 INSERT도 거부하거나 -DSQLITE_OMIT_XFER_OPT로 컴파일해야 합니다.

참고 자료

  • sqlite.org/src 태그 version-3.53.4 (b09c88c14082339b66c7b7158d609a771e64ca69)
  • src/insert.c sqlite3AuthCheck INSERT dest, xferOptimization before sqlite3Select
  • 포럼 2026-05-21T03:31:22Z · 체크인 d1cdb817cafd03a4
  • sqlite3_set_authorizer
도구 다운로드