🇰🇷 한글 설명
PayPal IPN 유틸리티가 SSL 서버 인증서의 호스트명 검증을 수행하지 않아 공격자가 유효한 인증서를 통해 중간자 공격(MITM)을 수행할 수 있습니다. PHP fsockopen 함수 사용 시 X.509 인증서의 CN(Common Name) 또는 subjectAltName 필드와 서버 도메인이 일치하는지 확인하지 않습니다.
💡 쉬운 설명
PayPal 결제 확인 시스템이 가짜 서버를 진짜로 착각할 수 있어서 해커가 결제 정보를 가로챌 수 있습니다. 인증서 검증이 제대로 되지 않아 누구나 유효한 인증서로 사칭할 수 있습니다.
🇺🇸 원문 (English)
The PayPal IPN utility 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 use of the PHP fsockopen function.
📍 영향받는 시스템
PayPal IPN 통합 PHP 애플리케이션 (특히 fsockopen 또는 cURL 호스트명 검증 미설정 버전)
⚔️ 공격 벡터
DNS 스푸핑 또는 네트워크 위치 확보 후 유효한 SSL 인증서로 가짜 PayPal 서버 구축 및 결제 정보 중간 차단
🛡️ 대응 방법
SSL 인증서 호스트명 검증 로직 추가 또는 cURL의 CURLOPT_SSL_VERIFYPEER/CURLOPT_SSL_VERIFYHOST 옵션 활성화, 최신 PHP 및 PayPal SDK 업데이트
🔧 검증 코드
결과에 호스트명 검증이 없는 fsockopen이나 cURL 연결이 나타나면 취약한 상태입니다. CURLOPT_SSL_VERIFY* 옵션이 활성화되어 있으면 안전합니다.
grep -r 'fsockopen\|CURLOPT_SSL_VERIFY' /var/www/html/ 2>/dev/null | grep -v 'CURLOPT_SSL_VERIFYPEER\|CURLOPT_SSL_VERIFYHOST' | head -5