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

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

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

피드문의개인정보© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
rocq-cve-poc-12155 — CVE-2020-37268 — Rocq/Coq Print Assumptions가 Parameter Inline을 통한 안전하지 않은 Universe 검사 누락 | Kitploit
도구/GitHubGitHub/endrazine/rocq-cve-poc-12155
Static AnalysisVulnerability AnalysisExploitationLearning & Education
GitHubendrazine/rocq-cve-poc-12155

rocq-cve-poc-12155

CVE-2020-37268 — Rocq/Coq Print Assumptions가 Parameter Inline을 통한 안전하지 않은 Universe 검사 누락

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2020-37268 — Rocq/Coq Print Assumptions가 Parameter Inline을 통한 안전하지 않은 유니버스 검사를 누락함

모듈 펑터 인라이닝을 통한 증명 감사 우회 — 2020년 이후 미수정.

취약점 요약

Print Assumptions는 정의가 모듈 타입의 Parameter Inline을 통해 호출자에게 도달할 때 해당 정의가 유니버스 검사가 비활성화된 상태에서 구축되었음을 보고하지 못합니다. 펑터 적용은 매개변수의 본문을 인라이닝하고 Unset Universe Checking 컨텍스트의 기록을 삭제하므로, 결과 상수는 안전하지 않은 작업의 흔적을 전혀 보여주지 않습니다.

따라서 모듈은 유니버스 불일치를 사용하여 False를 증명할 수 있으며, Print Assumptions는 종속 증명을 전역 컨텍스트 하에서 닫혀 있는 것으로 보고합니다 — 공리도 없고, 안전하지 않은 플래그도 보이지 않습니다.

coqchk는 결과로 생성된 컴파일된 .vo 파일을 거부하지만, 프로세스 내 가정 감사(Print Assumptions)는 이 문제를 잡아내지 못합니다.

사용법

docker build -t rocq-cve-poc-12155 .
docker run --rm rocq-cve-poc-12155

취약한 버전(Rocq 8.11 – 9.2.0, 그리고 모듈 시스템을 갖춘 모든 Coq 8.x)에서는 출력이 0 = 1의 증명을 확인하며, Print Assumptions는 이를 닫혀 있는 것으로 보고합니다.

영향

Print Assumptions를 유일한 무결성 검사로 의존하는 모든 워크플로가 영향을 받을 수 있습니다:

  • 형식적으로 검증된 컴파일러 (CompCert)
  • 검증된 OS 커널 (CertiKOS)
  • 분리 논리 프레임워크 (Iris)
  • 수학 라이브러리 (MathComp)
  • 의존성 내의 악성 .v 파일이 가정 감사를 통과하는 불건전한 선언을 도입할 수 있는 증명 운반 코드
  • 검증된 스마트 컨트랙트 (ConCert)
  • 컴파일된 출력에 대해 coqchk를 정기적으로 실행하지 않는 모든 프로젝트

근본 원인

모듈 타입이 Parameter Inline을 선언하면, 펑터 적용은 매개변수의 본문을 호출 컨텍스트로 인라이닝합니다. 이 인라이닝은 원래 정의가 Unset Universe Checking 하에서 생성되었음을 기록한 메타데이터를 폐기합니다. 따라서 유니버스 그래프는 인라이닝된 본문으로부터 일관성 없는 유니버스 제약을 받아들이고, Print Assumptions는 안전하지 않은 컨텍스트의 흔적을 전혀 보지 못합니다.

이 버그는 2020년(Coq 이슈 #12155)부터 열려 있으며 프로젝트의 dev/doc/critical-bugs.md에 문서화되어 있습니다. Rocq 9.2.0 기준으로 수정 사항이 병합되지 않았습니다.

점수

필드값
CVECVE-2020-37268
CVSS 3.1AV:L/AC:L/PR:N/UI:R/S:C/C:N/I:H/A:N — 7.1 (높음)
CVSS 4.0AV:L/AC:L/AT:N/PR:N/UI:P/VC:N/VI:H/VA:N/SC:N/SI:N/SA:N — 6.8 (중간)
CWECWE-778 — 불충분한 로깅

영향을 받는 버전

제품영향 받음수정됨
Coq8.11 – 8.20미수정
Rocq Prover8.20 – 9.2.0미수정

완화

  • 프로덕션에서 증명을 신뢰하기 전에 모든 컴파일된 .vo 파일에 대해 coqchk를 실행하십시오. coqchk는 Print Assumptions가 놓치는 유니버스 불일치를 잡아냅니다.
  • 모듈 의존성을 감사하십시오 — 공격은 Unset Universe Checking 하에서 컴파일된 Parameter Inline을 가진 모듈 타입을 필요로 합니다.
  • Rocq 9.2.0 기준으로 패치된 버전은 없습니다.

참고 자료

버그 보고서rocq-prover/rocq#12155
치명적 버그 문서dev/doc/critical-bugs.md
VulnCheck 권고vulncheck.com

타임라인

날짜사건
2020Jason Gross가 버그 보고 (coq/coq#12155)
2020–2026버그가 열린 상태로 유지되며 critical-bugs.md에 문서화됨
2026-08-24VulnCheck가 CVE-2020-37268 게시
2026-08-24Docker로 재현 가능한 PoC 게시

크레딧

  • 버그 발견: Jason Gross
  • PoC 패키징: Jonathan Brossard (@endrazine) — MOABI / PSIRT.com
도구 다운로드