← IT·AI 소식 피드
보안 · 2026-10-26 08:17 회차

오픈AI가 공개한 PHP2Shell 점검 도구, 내 사이트에 돌리면 왜 'UNKNOWN'일까?

무료 스크립트 하나로 '취약한 PHP 버전인지'를 바로 볼 수 있게 됐지만, URL만 넣으면 대부분 UNKNOWN이 나옵니다. UNKNOWN은 '안전'이 아닙니다.

무슨 일인가

오픈AI가 10월 22일 GitHub에 php2shell-checker를 Apache 2.0 라이선스로 공개했습니다. Node.js 스크립트 하나로, node phpcheck.js https://내사이트처럼 URL을 넣으면 응답 헤더(X-Powered-By·Server)에 적힌 PHP 버전을 읽어 OK / VULNERABLE / UNKNOWN 셋 중 하나로 판정합니다. 서버에 직접 접속할 수 있으면 --local 옵션으로 php -v 결과를 같은 기준으로 봅니다.

중요한 건 README가 스스로 밝힌 한계입니다. 이 도구는 취약점을 실제로 찔러보는 게 아니라 버전 번호만 비교합니다. 헤더에 버전이 없거나 가려져 있으면 UNKNOWN이고, README는 "UNKNOWN은 패치됐다는 뜻이 아니다"라고 못 박고 있습니다. 실제로 10월 24일 한 개발자가 공개 사이트 65곳에 돌려본 결과 65곳 전부 UNKNOWN이었습니다. 요즘 서버는 expose_php=Off나 CDN 때문에 버전을 숨기는 게 보통이라서입니다.

점검 도구가 보는 것 · 못 보는 것
3가지
판정값 OK · VULNERABLE · UNKNOWN
4종
안전 기준 버전 8.2.35 · 8.3.36 · 8.4.27 · 8.5.12
65/65
URL 점검 시 UNKNOWN (개발자 실측, 10/24)
버전 헤더가 보일 때만 판정. 숨겨진 사이트는 결과가 없을 뿐, 안전하다는 뜻이 아님.

내 사업·앱에 무슨 의미

지금 해볼 것

1
서버 접속이 되면 로컬 점검node phpcheck.js --local 또는 php -v → 8.2.35 / 8.3.36 / 8.4.27 / 8.5.12 이상인지 확인
2
호스팅만 쓰면 관리자 화면PHP 버전 설정 메뉴 + 호스팅사 패치 공지로 확인. 8.1 이하면 상위 버전 전환 계획부터
3
URL 점검 결과는 참고만UNKNOWN = 정보 없음. '안전'으로 읽지 말고, VULNERABLE이 나오면 그날 조치
4
패치 후에도 임시조치 유지PHP 팀이 10/23 추가 안내한 세션 업로드 이슈(CVE-2026-115560) 때문에 session.upload_progress.enabled=0은 당분간 그대로
앱몬스터 관점: 점검 도구가 공짜로 나와도 "내 서버 PHP가 몇 버전인지"를 모르는 운영자가 많습니다. 버전 관리는 결국 운영자 책임이라, 월 단위 유지보수로 묶어 두는 게 가장 싸게 끝납니다.

출처