🇰🇷 한글 설명
PayPal Payments Standard PHP Library 20120427 버전은 SSL 인증서의 호스트명이 X.509 인증서의 Common Name(CN) 또는 subjectAltName 필드와 일치하는지 검증하지 않습니다. 이로 인해 중간자 공격자가 임의의 유효한 인증서를 사용하여 SSL 서버를 위장할 수 있으며, 이는 인증서 검증 로직의 TRUE 값 오해석과 관련이 있습니다.
💡 쉬운 설명
PayPal 결제 라이브러리가 웹사이트의 진위 여부를 제대로 확인하지 않아, 해커가 위조된 인증서로 진짜 사이트처럼 보이는 가짜 서버를 만들 수 있습니다. 사용자들이 이를 진짜 PayPal 서버로 착각하고 결제 정보를 전달하면 도용될 수 있습니다.
🇺🇸 원문 (English)
PayPal Payments Standard PHP Library 20120427 does not verify that the server hostname matches a domain name in the subject's Common Name (CN) or subjectAltName field of the X.509 certificate, which allows man-in-the-middle attackers to spoof SSL servers via an arbitrary valid certificate, related to misinterpretation of a certain TRUE value.
📍 영향받는 시스템
PayPal Payments Standard PHP Library 20120427 및 그 이전 버전
⚔️ 공격 벡터
네트워크 중간에 위치하여 유효한 SSL 인증서를 가진 악의적 서버로 HTTPS 연결을 리다이렉트하는 중간자 공격(MITM)
🛡️ 대응 방법
PayPal PHP Library를 최신 버전으로 업그레이드하고 cURL의 CURLOPT_SSL_VERIFYPEER 및 CURLOPT_SSL_VERIFYHOST 옵션을 명시적으로 true/2로 설정
🔧 검증 코드
결과에서 VERIFYPEER나 VERIFYHOST가 false 또는 0으로 설정되어 있으면 취약하며, true/2로 설정되거나 명시되지 않으면 기본값에 따라 추가 확인 필요
grep -r 'CURLOPT_SSL_VERIFYPEER\|CURLOPT_SSL_VERIFYHOST' . --include='*.php' 2>/dev/null | grep -E '(false|0)' && echo 'VULNERABLE' || echo 'CHECK_NEEDED'