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

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

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

피드문의개인정보© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2026-2005_lab — 자체 포함형 Docker 랩으로, PostgreSQL의 pgcrypto 확장 프로그램에서 발생하는 힙 버퍼 오버플로우인 CVE-2026-2005 악용을 실습할 수 있도록 설계되었으며, 권한 상승 및 컨테이너 코드 실행을 가능하게 합니다. | Kitploit
도구/GitHubGitHub/stvm8/cve-2026-2005_lab
Vulnerability AnalysisExploitationCTFLearning & EducationDatabase SecurityBinary ExploitationLabs & Practice
GitHubstvm8/cve-2026-2005_lab

CVE-2026-2005_lab

자체 포함형 Docker 랩으로, PostgreSQL의 pgcrypto 확장 프로그램에서 발생하는 힙 버퍼 오버플로우인 CVE-2026-2005 악용을 실습할 수 있도록 설계되었으며, 권한 상승 및 컨테이너 코드 실행을 가능하게 합니다.

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2026-2005 — PostgreSQL pgcrypto 힙 오버플로우 랩

CVE-2026-2005 악용을 연습하기 위한 독립형 Docker 랩입니다. 이 취약점은 PostgreSQL의 pgcrypto 확장 프로그램에 있는 힙 버퍼 오버플로우로, 슈퍼유저 권한 없이 원격 코드 실행을 가능하게 합니다.

영향을 받는 버전: PostgreSQL ≤ 17.7 / 16.11 / 15.15 / 14.20 / 18.1
수정된 버전: 18.2, 17.8, 16.12, 15.16, 14.21 (2026-02-12 릴리스)


설정

요구 사항: Docker, Docker Compose

git clone <this-repo>
cd CVE-2026-2005
docker compose up -d

PostgreSQL은 127.0.0.1:5433에서 수신 대기합니다.


시작 지점

애플리케이션 구성 파일에서 데이터베이스 자격 증명을 획득했습니다:

매개변수값
호스트127.0.0.1
포트5433
데이터베이스targetdb
사용자 이름pentester
비밀번호pentester123

연결하여 접근 권한을 확인합니다:

psql -h 127.0.0.1 -p 5433 -U pentester -d targetdb

이 계정은 public 스키마에 대해 CREATE 권한을 가지고 있습니다. 슈퍼유저가 아닙니다.


목표

랩을 완료하려면 두 플래그를 모두 획득하세요.

플래그 1 — 데이터베이스 권한 상승

SELECT * FROM flag_db;
-- DB 세션 내에서 슈퍼유저로 승격한 후에만 읽을 수 있음

플래그 2 — 컨테이너 코드 실행

/var/lib/postgresql/flag.txt
-- 컨테이너 내부에서 postgres OS 사용자로 명령을 실행한 후에만 읽을 수 있음

범위 참고: COPY TO PROGRAM은 호스트가 아닌 Docker 컨테이너 내부에서 실행됩니다. 실제 환경에서의 주요 영향은 전체 데이터베이스 읽기 접근(모든 테이블, 모든 데이터베이스)입니다. Docker 호스트에 도달하려면 별도의 컨테이너 탈출 기술이 필요합니다.


취약점 배경

결함은 pgcrypto/pgp-pubenc.c의 pgp_parse_pubenc_sesskey()에 있습니다.

공개 키로 암호화된 세션 키 패킷을 복호화할 때, 이 함수는 공격자가 제어하는 RSA/ElGamal 페이로드에서 세션 키 길이를 msglen - 3으로 도출하고 경계 검사 없이 고정된 32바이트 버퍼(PGP_MAX_KEY)에 복사합니다. 공격자는 버퍼 경계를 넘어 수백 바이트를 쓸 수 있습니다.

익스플로잇은 세 단계로 진행됩니다:

  1. 정보 유출 — 오버플로우가 인접한 힙 메타데이터를 노출하여 PIE 베이스 및 힙 주소를 유출합니다
  2. 임의 쓰기 — dst 구조체를 손상시켜 .data의 CurrentUserId를 10(BOOTSTRAP_SUPERUSERID)으로 덮어씁니다
  3. 컨테이너 RCE — 슈퍼유저 권한으로 COPY (SELECT '') TO PROGRAM '<cmd>'가 컨테이너 내부에서 postgres 사용자로 OS 명령을 실행합니다. Docker가 없는 실제 배포 환경에서는 데이터베이스 호스트에서 OS 수준 접근을 의미합니다.

ASLR 레이아웃은 동일한 postmaster 프로세스에 대한 모든 연결에서 동일하므로, 한 연결에서 유출된 주소는 다음 연결에서도 유효합니다.


유용한 참고 자료

  • NVD: CVE-2026-2005
  • 기술 문서: https://www.zeroday.cloud/blog/postgres-xint
  • PostgreSQL pgcrypto 소스: pgcrypto/pgp-pubenc.c
  • 심볼 해석: objdump -t $(which postgres) | grep CurrentUserId

정리

docker compose down -v

법적 고지

이 랩은 승인된 보안 연구 및 교육 목적으로만 사용됩니다. 소유한 시스템 또는 명시적 테스트 허가를 받은 시스템에서만 실행하세요.

도구 다운로드