TL;DR

  • Xray-core의 pinnedPeerCertSha256에서 인증서 검증 우회 취약점이 발생해, 특정 조건에서 중간자 공격이 가능해졌다는 제보임.
  • 기존 pinnedPeerCertificateChainSha256 옵션은 2026년 1월 9일 새 옵션으로 대체됐고, 1월 16일에는 일반 인증서 검증을 항상 건너뛰도록 동작이 변경됨.
  • 제보자는 2026년 2월 6일 취약점을 비공개로 알렸으며, Xray-core는 같은 날 수정 사항과 새 버전을 냈지만 보안 취약점이라고 공개하지 않았다는 주장임.
  • 제보자는 2026년 7월 3일 수정이 불완전해 특정 상황에서 인증서 검증을 여전히 우회할 수 있음을 발견하고 GitHub 보안 권고를 통해 신고함.
  • 제보에 따르면 Xray-core는 2026년 7월 3일까지 취약점을 공개하지 않았으며, 이용자는 거의 반년 동안 위험에 노출된 상태였음.

취약점 제보와 기존 인증서 고정 옵션

  • 제보자는 취약점 신고자라고 밝히며, Xray-core 유지관리자가 allowInsecure와 같은 인증서 검증 건너뛰기 옵션을 보안 조치가 없는 것과 같고 중간자 공격에 노출된다고 비판해 왔다고 주장함.
  • 2021년 10월 21일, 알려진 문제가 없던 pinnedPeerCertificateChainSha256 옵션이 Xray-core에 추가됨. 이 옵션은 일반 인증서 검증에 더해 사용자 지정 인증서 체인 고정 검증을 수행하는 이중 방어를 제공함.
  • 자체 서명 인증서를 안전하게 사용하려면 allowInsecure와 pinnedPeerCertificateChainSha256를 함께 활성화해 일반 인증서 검증을 건너뛰고 사용자 지정 체인 고정 검증만 수행할 수 있었다는 설명임.
  • 이후 Xray-core는 allowInsecure 활성화가 중간자 공격 위험을 만든다고 주장했다는 내용임.

새 옵션 도입과 검증 방어 약화

  • 2026년 1월 9일, Xray-core는 인증서 검증을 건너뛰는 이른바 ‘알몸 상태’를 막겠다며 pinnedPeerCertificateChainSha256를 제거하고 pinnedPeerCertSha256로 대체함.
  • 자체 서명 인증서의 경우 allowInsecure와 pinnedPeerCertSha256를 함께 켜야 하며, 이 구성은 일반 인증서 검증을 건너뛰고 사용자 지정 인증서 고정 검증만 수행한다는 설명임.
  • 2026년 1월 13일, 인증서 검증 우회 취약점이 포함된 첫 버전이 배포됨. 기존 옵션이 제거돼 이용자는 취약한 새 옵션으로 옮겨야 했다는 주장임.
  • 자체 서명 인증서를 사용하지 않고 allowInsecure도 활성화하지 않은 이용자에게는 일반 인증서 검증이 일부 보호를 제공할 수 있었다는 설명임.
  • 2026년 1월 16일, pinnedPeerCertSha256의 동작이 변경돼 일반 인증서 검증을 항상 건너뛰고 사용자 지정 인증서 고정 검증만 수행하게 됨. 이에 따라 제보자는 인증서 검증 방어 계층이 완전히 무너졌다고 주장함.

취약점 신고와 비공개 수정

  • 2026년 2월 6일, 제보자는 pinnedPeerCertSha256에서 인증서 검증 우회 취약점을 발견해 Xray-core 유지관리자에게 비공개로 신고함.
  • 제보 내용에 따르면 중간자 공격자는 인증서 체인의 어느 위치에나 리프 인증서를 삽입할 수 있으며, 사용자 지정 인증서 고정 로직은 해당 리프 인증서를 유효한 것으로 검증함. 그 결과 중간자 공격이 성공할 수 있다는 주장임.
  • 제보자는 이 취약점이 단순해 고급 보안 지식 없이도 바로 발견할 수 있었다고 설명함.
  • Xray-core는 같은 날 취약점을 조용히 수정했지만, 커밋 메시지에서는 수정 이유를 ‘코드 단순화’라고 표현했다고 제보자는 주장함.
  • 같은 날 새 버전도 배포됐지만 보안 취약점에 대한 언급은 없었고, 이용자에게 관련 정보가 공개되지 않았다는 주장임.
  • Xray-core는 같은 날 텔레그램 채널에 다음과 같은 입장을 게시함.

“소프트웨어는 보안을 핵심에 두고 설계해야 하며, 사람의 영향이 개입하지 않도록 해 가장 최종 단계의 이용자조차 무방비 상태에 놓이지 않게 해야 함.”

  • 제보자는 Xray-core의 보안 설계와 그로 인해 발생한 인적 요인 때문에 이용자가 안전한 기존 옵션에서 안전하지 않은 새 옵션으로 이동했고, 최종 이용자들이 자신도 모르게 거의 한 달간 노출됐다고 반박함.

공개 지연과 불완전한 수정 제보

  • 제보자는 Xray-core가 취약점을 공개했다면 이용자가 패치 버전으로 업그레이드하도록 유도해 영향을 최소화할 수 있었지만, 이를 은폐하기로 했다고 주장함.
  • 2026년 7월 3일 기준으로 Xray-core는 이용자에게 취약점을 공개하지 않은 상태였다고 제보자는 밝힘.
  • 같은 날 제보자는 취약점 수정이 불완전해 특정 상황에서 인증서 검증을 여전히 우회할 수 있음을 발견함.
  • 취약점이 다시 은폐되는 일을 막기 위해 GitHub 보안 권고(GitHub Security Advisory)로 신고할 수밖에 없었다는 설명임. 이 시점에 이용자들은 Xray-core의 인적 요인으로 거의 반년 동안 자신도 모르게 무방비 상태에 놓였다는 주장임.
  • 제보자는 더 많은 사람이 Xray-core의 보안 기록이 좋지 않다는 점을 알게 되기를 바란다고 밝힘.