
CVE-2025-23419를 위한 파이썬 스크립트 스캐너 안전 점검
CVE-2025-23419에 대한 안전한 검증 스크립트가 포함된 저장소로, NGINX, mTLS 및 TLS 세션 재개와 관련된 취약점입니다.
이 스크립트는 활성 익스플로잇을 실행하거나 클라이언트 인증서 인증을 우회하려 시도하지 않고, 취약점에 대한 잠재적 노출을 식별하기 위해 휴리스틱 점검을 수행합니다.
목적은 승인된 환경에서 기술적 분류, 방어적 검증 및 노출 분석을 지원하는 것입니다.
| CVE | 기술 | 유형 | 영향받는 구성요소 |
|---|---|---|---|
CVE-2025-23419 | NGINX | mTLS 인증 우회 가능성 | 가상 호스트의 TLS 세션 재개 |
CVE-2025-23419는 동일한 IP와 포트를 공유하는 여러 NGINX server blocks와 mTLS로 알려진 클라이언트 인증서 인증을 사용하는 환경에 영향을 미칩니다.
특정 구성에서 공격자는 이전에 설정된 TLS 세션을 재사용하여 다른 가상 호스트 컨텍스트에서 클라이언트 인증서 인증 요구 사항을 우회할 수 있습니다.
취약점은 TLS 세션 재개 사용과 관련이 있으며, 특히 ssl_session_cache 또는 ssl_session_tickets가 활성화된 경우에 해당합니다.
실제로 노출은 취약한 버전, TLS 1.3 사용, TLS 세션 구성, 여러 가상 호스트 및 환경의 특정 부분에 mTLS 적용의 조합에 따라 달라집니다.
공개 권고에 따르면 문제는 다음에 영향을 미칩니다:
NGINX 1.11.4 e versões posteriores
다음 조건이 존재하는 경우:
NGINX compilado com OpenSSL
TLS 1.3 habilitado
Session resumption habilitado
Uso de ssl_session_cache ou ssl_session_tickets
Múltiplos server blocks compartilhando o mesmo IP e porta
Autenticação mTLS/client certificate em algum virtual host
수정 사항은 다음 버전에서 공개되었습니다:
NGINX 1.26.3
NGINX 1.27.4
따라서 다음과 같은 버전:
nginx/1.24.0
해당 구성 시나리오가 취약점과 호환되는 경우 잠재적으로 취약한 것으로 처리되어야 합니다.
중요: 취약한 버전만으로는 익스플로잇을 확인하지 않습니다. 이는 구성 검증이 필요함을 나타냅니다.
| 스크립트 | 목적 | 사용 시기 |
|---|---|---|
safe-check-CVE-2025-23419.py | CVE-2025-23419에 대한 잠재적 노출을 위해 안전하고 휴리스틱한 확인을 수행합니다. | 대상이 잠재적으로 취약한 NGINX를 노출하고 mTLS/TLS 세션 재개 사용이 의심될 때 사용합니다. |
스크립트는 취약점의 증거를 수집하기 위해 안전한 검증을 수행합니다:
Server 헤더를 식별하려 시도합니다;POSSIVEL 또는 NAO_INDICADO를 나타내는 간단한 출력을 반환합니다.이 스크립트는 취약점을 익스플로잇하지 않습니다.
다음을 시도하지 않습니다:
목적은 기술적 분류 및 방어적 검증을 지원하기 위해 기술적 증거만 수집하는 것입니다.
다음 증거 중 하나 이상이 있을 때 이 스크립트를 사용하십시오:
Servidor expõe nginx/1.24.0
Ambiente utiliza mTLS
Existem múltiplos virtual hosts no mesmo IP e porta
Há uso de TLS 1.3
Há suspeita de ssl_session_cache ou ssl_session_tickets habilitados
Ferramenta automatizada apontou CVE-2025-23419
적절한 대상 예시:
https://api.exemplo.com.br/
https://admin.exemplo.com.br/
https://mtls.exemplo.com.br/
https://gateway.exemplo.com.br/
python3 safe-check-CVE-2025-23419.py https://exemplo.com.br/
python3 safe-check-CVE-2025-23419.py https://exemplo.com.br/ --verbose
python3 safe-check-CVE-2025-23419.py https://exemplo.com.br/ --json
python3 safe-check-CVE-2025-23419.py https://exemplo.com.br/ --timeout 10
POSSIVEL
스크립트가 CVE-2025-23419에 대한 잠재적 노출과 일치하는 증거를 발견했음을 나타냅니다.
이는 익스플로잇을 확인하지 않습니다. 환경에 대한 NGINX 구성 수동 분석 및 담당 팀과의 검증이 필요함을 의미합니다.
상세 출력 예시:
POSSIVEL
nginx_header: nginx/1.24.0
nginx_ver: (1, 24, 0) (vuln? True)
mtls_hint: True
tls: TLSv1.3
resumption_reused: True
other_vhost_no_mtls_hint: True
이 데이터는 엔드포인트가 가능한 노출로 분류된 이유를 이해하는 데 도움이 됩니다.
NAO_INDICADO
스크립트가 해당 엔드포인트에서 잠재적 노출을 가리킬 충분한 증거를 찾지 못했음을 나타냅니다.
이는 특히 다음과 같은 경우 취약점이 완전히 없음을 보장하지 않습니다:
Server 헤더가 숨겨져 있는 경우;조정할 수 있는 주요 사항은 다음과 같습니다:
CERT_ERROR_STATUS = {400, 401, 403, 495, 496}
이 목록은 누락되거나 유효하지 않은 클라이언트 인증서와 관련된 오류를 나타낼 수 있는 HTTP 코드를 나타냅니다.
또한 명령줄에서 timeout을 조정할 수 있습니다:
--timeout 10
스크립트는 Python 표준 라이브러리만 사용합니다.
주요 종속성:
python3
ssl
socket
argparse
urllib
pip를 통해 외부 라이브러리를 설치할 필요가 없습니다.
사용 중인 채널에 따라 NGINX를 패치된 버전(가급적 1.26.3, 1.27.4 이상)으로 업데이트하십시오.
특히 가상 호스트 중 일부에만 mTLS가 있는 경우 동일한 IP 및 포트를 공유하는 server blocks 구성을 검토하십시오.
다음의 사용을 평가하십시오:
ssl_session_cache
ssl_session_tickets
TLS 1.3
server blocks compartilhando IP e porta
mTLS aplicado em virtual hosts específicos
또한 클라이언트 인증서가 필요한 컨텍스트를 분리하고 mTLS 인증이 올바른 가상 호스트에 적용되고 있는지 확인하는 것이 좋습니다.
또한 프록시, 게이트웨이, 로드 밸런서, 인그레스 컨트롤러 및 CDN의 구성을 검토하십시오. TLS를 종료하는 구성 요소가 최종 애플리케이션에 응답하는 구성 요소와 동일하지 않을 수 있기 때문입니다.
https://mailman.nginx.org/pipermail/nginx-announce/2025/NYEUJX7NCBCGJGXDFVXNMAAMJDFSE45G.html
https://nvd.nist.gov/vuln/detail/CVE-2025-23419
https://ubuntu.com/security/CVE-2025-23419
https://github.com/advisories/GHSA-84xh-pwc6-7g4g
https://access.redhat.com/security/cve/cve-2025-23419
이 스크립트는 승인된 환경에서만 사용해야 합니다.
목적은 분류, 안전한 검증, 승인된 침투 테스트, 방어적 분석 및 구성 노출 확인을 지원하는 것입니다.
승인되지 않은 시스템에 대한 사용은 금지됩니다.