2026년 10월 21일, PHP 프로젝트는 PHP 자체의 두 가지 중대한 취약점에 대한 수정 버전을 발표했습니다. 둘 다 CVSS 9.2로 평가되었으며, 이를 발견한 연구원들은 이를 php2shell이라고 부릅니다. 문제는 PrestaShop이나 모듈에 있는 것이 아니지만, 모든 PrestaShop 스토어가 PHP위에서 실행되기 때문에 사실상 모든 스토어에 영향을 미칩니다. 아래에서는 현재 상황, 패치된 PHP 버전, 그리고 오늘 해야 할 일을 설명합니다.
문제점이 무엇인가요?
두 취약점은 PrestaShop의 자체 코드보다 먼저 실행되는 레이어인 PHP 런타임에 있습니다. 공지에 따르면 공격자는 이를 사용하여 PHP 프로세스를 중단시키거나, 민감한 데이터를 읽거나, 최악의 경우 로그인 없이 서버에서 코드를 실행할 수 있습니다.
- CVE-2026-109618: PHP의 메모리가 부족해지면 요청 데이터가 절반만 초기화된 상태로 남을 수 있으며, 이후의 정리 작업은 이 불완전한 데이터를 유효한 것으로 처리합니다.
- CVE-2026-109619: 내부 요청 상태가 메모리가 해제된 후에도 유지될 수 있으므로, 동일한 PHP 워커에 대한 후속 요청이 해당 오래된 상태를 사용할 수 있습니다.
웹 요청을 처리하는 모든 PHP 설치가 위험에 처해 있습니다: PHP-FPM, mod_php를 사용하는 Apache, php-cgi, FrankenPHP 및 LiteSpeed. mod_php를 사용할 때 위험이 가장 큽니다.
PrestaShop 업데이트가 도움이 되지 않는 이유
PrestaShop이나 모듈을 업데이트해도 이 문제는 해결되지 않습니다. 애플리케이션 내부의 보호 기능은 애플리케이션 코드가 실행되기 전에 발생하는 공격을 막을 수 없습니다. 유일한 실제 해결책은 서버의 업데이트된 PHP 버전입니다.
어떤 PHP 버전이 패치되었나요?
| PHP 브랜치 | 패치된 버전 |
|---|---|
| PHP 8.5 | 8.5.12 |
| PHP 8.4 | 8.4.27 |
| PHP 8.3 | 8.3.36 |
| PHP 8.2 | 8.2.35 |
PHP 7.4, 8.0, 8.1의 경우 PHP 프로젝트에서 최소한의 백포트를 게시했습니다. Linux 배포판은 때때로 버전 번호를 변경하지 않고 수정 사항을 적용하므로 오래되어 보이는 버전도 여전히 패치되었을 수 있습니다. 그렇기 때문에 숫자만 믿지 말고 호스트에 확인을 요청해야 합니다.
지금 해야 할 일
1. PHP 버전 확인
PrestaShop 백오피스에서 Advanced Parameters > Information(고급 매개변수 > 정보)으로 이동합니다. 거기서 스토어가 실행 중인 PHP 버전을 확인할 수 있습니다.
2. 호스트에 서면 확인 요청
호스팅 제공업체에 연락하여 CVE-2026-109618 및 CVE-2026-109619에 대한 패치가 서버에 적용되었는지 문의하세요. 답변을 서면으로 요청하십시오.
3. 직접 서버를 관리하시나요?
- 배포판 또는 공식 PHP 릴리스에서 업데이트된 PHP 패키지를 설치하세요.
- 모든 PHP 프로세스 재시작: PHP-FPM 풀, Apache, LiteSpeed 및 FrankenPHP 워커. 설치만 되고 로드되지 않은 업데이트는 보호해주지 않습니다.
- 릴리스 당일, PHP 프로젝트는 자원봉사자가 운영하는
rpms.remirepo.net리포지토리를 기다리지 말고 배포판 패키지나 소스 빌드를 사용할 것을 권장했습니다. - Docker를 사용하시나요? 업데이트된 베이스 이미지에서 이미지를 다시 빌드하고 다시 배포하세요.
4. 아직 PHP 8.1 이하를 사용 중이신가요?
호스팅 업체에 PHP 버전이 패치되었는지 문의하세요. 최신 PHP를 지원하는 버전으로 PrestaShop을 업그레이드하는 것은 긴급 수정이 아니라 별도의 장기 작업입니다. 계획을 위해 참고하세요: PrestaShop 9는 PHP 8.1부터 8.5까지 지원하며, PHP 8.2는 2026년 12월 31일에 지원이 종료됩니다. PrestaShop 1.7 및 8.x 스토어는 대개 여전히 PHP 7.x 또는 8.1에서 실행됩니다.
아직 업데이트할 수 없는 경우의 임시 조치
이 조치들은 기술 팀을 위한 것입니다. 먼저 스테이징 복사본에서 테스트하세요; 위험을 줄여주지만 PHP 업데이트를 대체하지는 않습니다.
CVE-2026-109618 관련:
post_max_size낮추기: 권고사항은 업로드를 받지 않는 경우8M, 받는 경우32M입니다.upload_max_filesize를 그 값보다 낮게 유지하세요.- 웹 서버나 리버스 프록시에서도 요청 크기 제한을 적용하세요.
CVE-2026-109619 관련:
php.ini, PHP-FPM 풀 또는 서버 설정에서session.upload_progress.enabled=0을 설정하고 모든 워커를 재시작하세요.ini_set()이나.user.ini만으로는 충분하지 않습니다.- PHP 8.5에서는
fatal_error_backtraces=0도 설정하고 워커를 재시작하세요.
error_reporting, display_errors 또는 @로 오류를 숨기는 것은 아무런 도움이 되지 않습니다. 전체 조치 목록은 공식 PHP 보안 권고에 있습니다.
웹 애플리케이션 방화벽(WAF)이 도움이 되나요?
Cloudflare는 php2shell 전용 WAF 규칙을 출시했으며, 10월 21일부터 기본적으로 활성화되어 있습니다. 유료 요금제의 경우 관리형 규칙 세트가 block(차단)으로 설정되어 있는지 확인하세요. WAF는 이를 통과하는 트래픽만 보호한다는 점을 명심하세요: 서버가 WAF 제공업체의 웹 트래픽만 허용하는지 확인하세요. WAF는 추가 레이어일 뿐 PHP 업데이트의 대체재가 아닙니다.
도움이 필요하신가요?
서버가 패치되었는지 확실하지 않거나 여전히 이전 PHP 버전을 사용 중이신가요? 저희가 PHP 버전과 설정을 확인하고, 호스트에 올바른 질문을 던지며, 지원되는 PHP 및 PrestaShop 버전으로의 전환 계획을 도와드립니다. 보안 서비스에 대해 자세히 알아보기, 업그레이드 계획하기 또는 문의하기.
출처: build.prestashop-project.org의 "Critical PHP security updates: what PrestaShop users need to know" (2026년 10월 21일), 및 CVE-2026-109618과 CVE-2026-109619에 대한 PHP 보안 권고.