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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
PoC-CVE-2025-69420 — CVE-2025-69420에 대한 충돌 전용 PoC로, 잘못된 ESS 서명 인증서 속성을 통해 OpenSSL의 타임스탬프 응답 검증에서 타입 혼동 취약점을 시연합니다. | Kitploit
도구/GitHubGitHub/kha-beleh/poc-cve-2025-69420
Vulnerability AnalysisExploitationFuzzingCryptographyLearning & EducationBinary Exploitation
GitHubkha-beleh/poc-cve-2025-69420

PoC-CVE-2025-69420

CVE-2025-69420에 대한 충돌 전용 PoC로, 잘못된 ESS 서명 인증서 속성을 통해 OpenSSL의 타임스탬프 응답 검증에서 타입 혼동 취약점을 시연합니다.

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2025-69420 — OpenSSL TimeStamp 응답 유형 혼동 PoC

OpenSSL의 CVE-2025-69420에 대한 크래시 전용 실험실 재현기입니다. 이 PoC는 유효한 RFC 3161 TimeStamp 응답을 로드하고, 메모리에서 서명된 ESS 속성을 V_ASN1_SEQUENCE에서 V_ASN1_NULL로 변경한 후 TS_RESP_verify_response()를 호출합니다.

영향을 받는 빌드에서 ossl_ess_get_signing_cert_v2() 또는 ossl_ess_get_signing_cert()는 활성 유형을 검증하지 않고 ASN1_TYPE 공용체를 시퀀스로 접근합니다. UBSan은 널 ASN1_STRING 포인터를 통한 멤버 접근을 보고합니다. 예상 영향은 프로세스 종료/서비스 거부입니다. 이 저장소에는 코드 실행 로직이 포함되어 있지 않습니다.

확인된 결과

제공된 테스트 출력이 문제를 확인합니다:

root@kitploit:~
runtime error: member access within null pointer of type 'struct ASN1_STRING'
#0 ossl_ess_get_signing_cert_v2
#1 ts_check_signing_certs
#2 TS_RESP_verify_signature
#3 int_ts_RESP_verify_token
#4 TS_RESP_verify_response

이는 취약점 설명과 일치합니다: 잘못된 형식의 TimeStamp 응답이 TS_RESP_verify_response()에 도달하고, V_ASN1_SEQUENCE가 아닌 유형의 ESS 서명 인증서 속성이 잘못된 또는 NULL 포인터 역참조를 유발합니다.

범위

소유하거나 평가 권한이 있는 OpenSSL 빌드에 대해 격리된 환경에서만 테스트하세요. 이는 크래시 전용 재현기입니다.

요구 사항

  • Linux 및 GCC
  • ASan 및 UBSan으로 컴파일된 영향을 받는 OpenSSL 빌드
  • 빌드 트리의 OpenSSL 개발 헤더

기본 빌드 경로:

root@kitploit:~
/path/to/openssl-3.0.7-asan

필요할 때 재정의:

root@kitploit:~
export OPENSSL_BUILD=/path/to/openssl-asan-build

사용법

root@kitploit:~
git clone https://github.com/Kha-Beleh/PoC-CVE-2025-69420.git
cd PoC-CVE-2025-69420

export OPENSSL_BUILD=/path/to/openssl-3.0.7-asan
make prepare
make build
make run

또는 각각 별도로 실행:

root@kitploit:~
./scripts/prepare.sh
./scripts/build.sh
./scripts/run.sh

prepare.sh는 저장소의 최소 openssl.cnf를 사용하므로, 누락된 $OPENSSL_BUILD/ssl/openssl.cnf에 의존하지 않습니다.

영향을 받는 빌드에서의 예상 출력

root@kitploit:~
[+] Loaded valid TimeStamp Response
[+] Found attribute: id-smime-aa-signingCertificateV2
[+] Original ASN.1 type: 16
[+] Attribute changed to V_ASN1_NULL
[+] Calling TS_RESP_verify_response()
crypto/ts/ts_rsp_verify.c:...: runtime error: member access within null pointer of type 'struct ASN1_STRING'
    #0 ... in ossl_ess_get_signing_cert_v2
    #1 ... in ts_check_signing_certs
    #2 ... in TS_RESP_verify_signature
    #3 ... in int_ts_RESP_verify_token
    #4 ... in TS_RESP_verify_response

정확한 주소와 줄 번호는 빌드에 따라 다릅니다. UBSAN_OPTIONS=halt_on_error=1을 사용하면 프로세스가 첫 번째 감지된 정의되지 않은 작업에서 종료됩니다.

수정된 빌드에서의 예상 결과

잘못된 형식의 속성은 sanitizer 발견이나 프로세스 충돌 없이 깔끔하게 거부되어야 합니다. 그러면 PoC가 다음을 출력합니다:

root@kitploit:~
[+] Malformed response rejected without a crash

기술적 해석

원래 속성 유형 값 16은 V_ASN1_SEQUENCE입니다. PoC가 이를 V_ASN1_NULL로 변경합니다. 영향을 받는 구현에서 코드는 이후에 공용체 멤버를 value.sequence로 취급하고 역참조합니다. 활성 멤버가 시퀀스가 아니기 때문에 UBSan은 널 ASN1_STRING *을 통한 멤버 접근을 감지합니다.

이는 힙 또는 스택 버퍼 오버플로우가 아닌 유형 혼동/예외 조건 검사 누락입니다.

파일

  • poc.c — 최소 재현기
  • scripts/prepare.sh — TSA 키, 인증서, 요청 및 유효한 응답을 생성합니다
  • scripts/build.sh — ASan/UBSan OpenSSL 빌드에 대해 컴파일합니다
  • scripts/run.sh — sanitizer 설정으로 실행합니다
  • openssl.cnf — 최소 공급자/요청 구성
  • tsa.conf — 로컬 RFC 3161 TSA 구성
  • evidence/confirmed-output.txt — 확인된 sanitizer 추적 요약본

참고 자료

  • NVD: CVE-2025-69420
  • OpenSSL fix: commit 4e254b48ad93cc092be3dd62d97015f33f73133a
도구 다운로드