🇰🇷 한글 설명
FrankenPHP는 PHP용 최신 애플리케이션 서버입니다. 1.11.2 버전 이전의 워커 모드에서 FrankenPHP는 $_SESSION 슈퍼 전역 변수를 요청 간에 올바르게 초기화하지 않습니다. 이는 동일한 워커에 의해 처리되는 후속 요청이 session_start()가 호출되기 전에 이전 요청(다른 사용자에게 속하는)의 $_SESSION 데이터에 액세스할 수 있도록 허용합니다. 이 취약점은 1.11.2 버전에서 수정되었습니다.
💡 쉬운 설명
FrankenPHP의 워커 모드에서 세션 데이터가 초기화되지 않아 다른 사용자의 세션 데이터에 접근할 수 있는 취약점입니다. 이는 사용자 데이터의 무단 접근을 허용할 수 있습니다. 1.11.2 버전으로 업그레이드하여 해결할 수 있습니다.
🇺🇸 원문 (English)
FrankenPHP is a modern application server for PHP. Prior to 1.11.2, when running FrankenPHP in worker mode, the $_SESSION superglobal is not correctly reset between requests. This allows a subsequent request processed by the same worker to access the $_SESSION data of the previous request (potentially belonging to a different user) before session_start() is called. This vulnerability is fixed in 1.11.2.
📍 영향받는 시스템
FrankenPHP 1.11.2 이전 버전
⚔️ 공격 벡터
공격자는 동일한 워커에서 처리되는 다른 사용자의 세션 데이터에 접근할 수 있습니다.
🛡️ 대응 방법
FrankenPHP를 1.11.2 버전으로 업그레이드하여 취약점을 해결합니다.
🔧 검증 코드
로컬 시스템에서 FrankenPHP의 버전을 확인하여 취약점 여부를 점검합니다. Python 3.x가 설치된 시스템에서 실행할 수 있습니다. FrankenPHP의 Git 저장소를 클론하고, 해당 디렉토리에서 명령어를 실행합니다.
python -c "import subprocess; output = subprocess.check_output(['git', 'describe', '--tags']).decode('utf-8'); if '1.11.2' <= output: print('{"result": "양호", "reason": "FrankenPHP 버전이 1.11.2 이상"}'); else: print('{"result": "취약", "reason": "FrankenPHP 버전이 1.11.2 미만"}')"