🇰🇷 한글 설명
Open Source Classifieds가 SSL/TLS 인증서의 호스트명 검증을 수행하지 않아, 공격자가 유효한 인증서로 중간자 공격을 통해 서버를 위장할 수 있습니다. PHP fsockopen 함수 사용 시 X.509 인증서의 CN(Common Name) 또는 subjectAltName 필드를 검증하지 않는 문제입니다.
💡 쉬운 설명
웹사이트에 접속할 때 사용되는 보안 인증서의 실제 서버 주소를 확인하지 않아서, 가짜 서버가 진짜인 척할 수 있습니다. 공격자가 중간에서 통신을 가로채서 개인정보를 빼돌릴 수 있습니다.
🇺🇸 원문 (English)
Open Source Classifieds 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.
📍 영향받는 시스템
Open Source Classifieds (모든 버전) - PHP 기반 온라인 분류광고 애플리케이션
⚔️ 공격 벡터
네트워크 수준에서 DNS 스푸핑이나 ARP 스푸핑을 통해 피해자의 트래픽을 가로챈 후 유효한 SSL 인증서로 자신을 위장하여 중간자 공격 수행
🛡️ 대응 방법
Open Source Classifieds를 최신 버전으로 업그레이드하고 PHP 코드에서 stream_context_create()로 SSL 옵션(verify_peer, verify_peer_name)을 명시적으로 활성화
🔧 검증 코드
fsockopen이나 stream 함수를 사용하면서 verify_peer 옵션이 없는 코드가 출력되면 취약한 상태입니다. 아무것도 출력되지 않으면 개선된 상태입니다.
grep -r "fsockopen\|stream_context" /path/to/classifieds --include="*.php" | grep -v verify_peer