PHP 8.4.5 업데이트 — 한국 Laravel 개발자 영향 분석
작성: 라라벨 코리아 (초안)
발행: 2026년 8월 6일
## 요약
요약
PHP 8.4.5가 2025년 3월 13일 릴리스되었습니다. 이번 업데이트는 HTTP 스트림 래퍼와 LibXML에 관련된 5개의 CVE 보안 취약점을 포함하여, Core의 Use-After-Free 취약점까지 총 6건의 보안 이슈를 수정합니다. PHP 8.4 계열을 사용 중인 모든 Laravel 프로젝트는 즉시 업그레이드를 검토해야 합니다.
핵심 내용
🔴 보안 수정 사항 (즉시 대응 필요)
PHP 8.4.5에는 다음 CVE가 포함되어 있습니다. 모두 외부 공격자가 악용 가능한 유형이므로 우선순위를 높게 설정해야 합니다.
| CVE | GHSA | 영향 범위 | 설명 |
|---|---|---|---|
| CVE-2024-11235 | GHSA-rwp7-7vc6-8477 | Core | php_request_shutdown의 참조 카운팅 오류로 인한 Use-After-Free |
| CVE-2025-1219 | GHSA-p3x9-6h7p-cgfc | LibXML | 리디렉션된 리소스 요청 시 잘못된 content-type 헤더 사용 |
| CVE-2025-1736 | GHSA-hgf54-96fm-v528 | Streams | HTTP 래퍼의 헤더 검사에서 Basic 인증 헤더 누락 가능성 |
| CVE-2025-1861 | GHSA-52jp-hrpf-2jff | Streams | HTTP 래퍼가 리디렉션 Location을 1024바이트로 잘라내는 문제 |
| CVE-2025-1734 | GHSA-pcmh-g36c-qc44 | Streams | 콜론(:)이 없는 헤더를 실패 처리하지 않는 문제 |
| CVE-2025-1217 | GHSA-v8xr-gpvj-cx9g | Streams | HTTP 스트림 래퍼의 헤더 파서가 folded 헤더를 처리하지 못하는 문제 |
Laravel 실무 관련 주의:
Http::get(),file_get_contents(),Http파사드 내부에서 PHP 스트림 래퍼를 사용하는 경우, 위 Streams 관련 취약점에 간접적으로 노출될 수 있습니다. 특히 외부 API를 호출하거나 외부 XML 피드를 파싱하는 코드가 있다면 영향 범위를 반드시 검토하세요.
🟠 Core 안정성 수정
zend_mm_heap corrupted오류 수정 (GH-17866): PHP 8.4.3 → 8.4.4 업그레이드 이후 일부 환경에서 발생하던 메모리 힙 손상 오류가 수정되었습니다. 8.4.4로 업그레이드 후 이 오류를 경험한 팀이라면 8.4.5 업그레이드로 해결 가능합니다.- 스택 오버플로 감지 오류 수정 (GH-17623): 변수 컴파일 시 스택 오버플로 감지가 깨지는 문제 수정.
final abstract프로퍼티 오류 처리 (GH-17916):final abstract프로퍼티 선언 시 적절한 에러가 발생하도록 수정.- Property Backing Value 참조 접근 크래시 (OSS-Fuzz): 프로퍼티 후킹(Property Hooks, PHP 8.4 신기능) 사용 시 발생하던 크래시 수정.
🟠 Opcache / JIT 수정
PHP 8.4.5는 JIT 관련 크래시와 메모리 할당 오류를 여러 건 수정합니다. 프로덕션에서 OPcache JIT를 활성화한 경우 특히 중요합니다.
- GH-17654: 동일 트레이트를 사용하는 여러 클래스에서 JIT 크래시 발생 → 수정
- GH-17577: JIT packed type guard 크래시 → 수정
- GH-17747: 레지스터 기반
FETCH_OBJ_R에서 프로퍼티 읽기 예외 발생 시 JIT 문제 → 수정 - GH-17868: 8.4.4에서 tracing JIT 사용 시 메모리 할당 불가 → 수정
- GH-17715: 프리로드된 enum의
cases()호출 시 null 포인터 역참조 → 수정
Laravel 프로젝트에서
opcache.jit=tracing또는opcache.jit=function을 사용 중이라면, 8.4.4에서 간헐적으로 발생하던 JIT 관련 서버 크래시가 이번 8.4.5에서 대거 수정되었습니다.
🟡 기타 주요 버그 수정
- BCMath 메모리 누수 (GH-17398):
bcmul()반복 호출 시 메모리 누수 수정. 금융 계산 로직에서 BCMath를 사용하는 프로젝트에 영향. - PDO_SQLite 세그폴트 (GH-17837): 실행되지 않은 Statement에서
getColumnMeta()호출 시 세그폴트 수정. - FPM
httpd ProxyPass환경 (GH-17643): ApacheProxyPass와 함께 인코딩된PATH_INFO사용 시 FPM 동작 오류 수정. Apache + PHP-FPM 조합 사용자에게 해당. - LibXML GH-72714 재발 수정 (GHSA-wg4p-4hqh-c3g9): 이전에 수정되었던 LibXML 취약점이 재발한 것을 다시 수정.
- Zlib 대용량 파일 지원 (GH-17745): Zlib에서 대용량 파일 처리 시 오류 수정.
- LDAP 비연속 배열 처리 (GH-17704):
ldap_search()에서 숫자 키를 가진 비연속 배열 전달 시 실패하는 문제 수정.
한국 Laravel 개발자에게 미치는 영향
보안 우선순위
이번 릴리스는 보안 태그가 명시된 업데이트입니다. CVE-2024-11235(Use-After-Free)는 심각도가 높으며, Streams 관련 4개 CVE는 HTTP 통신을 처리하는 모든 PHP 애플리케이션에 잠재적 영향을 줍니다. 프로덕션 서버의 업그레이드를 1주일 이내 완료하는 것을 권장합니다.
호환성
- PHP 8.4.5는 8.4.x 계열의 패치 버전이므로 API 변경이 없습니다. 기존 Laravel 11.x / 12.x 프로젝트는 코드 수정 없이 업그레이드 가능합니다.
- PHP 8.4.4에서 발생하던
zend_mm_heap corrupted오류와 JIT 메모리 할당 문제가 수정되었으므로, 8.4.4로 업그레이드를 미루고 있던 팀도 8.4.5로 바로 적용할 수 있습니다.
로컬 개발 환경
Laravel Herd / Valet 사용자:
# Herd의 경우 GUI에서 PHP 버전 업데이트 확인# Valet의 경우brew upgrade php@8.4valet restartLaravel Sail (Docker) 사용자:
docker-php-ext-*기반 공식 이미지의 경우,php:8.4-fpm태그가 업데이트되면 자동으로 반영됩니다.docker compose pull && docker compose build --no-cache로 이미지를 갱신하세요.sail build --no-cache사용 시에도 동일하게 적용됩니다.
Docker 직접 사용 (사내 인프라):
FROM php:8.4-fpm기반 Dockerfile은 이미지 재빌드 시 자동 반영됩니다.- 단, 버전을
php:8.4.4-fpm처럼 명시한 경우php:8.4.5-fpm으로 수동 변경이 필요합니다.
AWS / 클라우드 서버 환경 (한국 개발자 다수 사용):
- AWS EC2 Amazon Linux 2023 또는 Ubuntu 환경에서
ondrej/phpPPA 또는remi저장소를 사용하는 경우, 해당 저장소의 패키지 업데이트 시점을 확인한 후 업그레이드하세요. - AWS Elastic Beanstalk PHP 플랫폼은 플랫폼 업데이트 일정에 따라 별도 확인이 필요합니다.
실무 체크리스트
로컬 환경
- 현재 PHP 버전 확인:
php -v - Herd/Valet/Homebrew를 통해 PHP 8.4.5로 업그레이드
- Sail 사용 시
sail build --no-cache실행 후sail php -v로 버전 확인 -
composer check-platform-reqs로 패키지 호환성 재확인 - BCMath, PDO_SQLite, LDAP, GD 등 사용 중인 확장이 있다면 해당 기능 테스트 실행
스테이징 환경
- PHP 8.4.5 패키지 업그레이드 적용
- PHP-FPM 재시작:
sudo systemctl restart php8.4-fpm - OPcache 캐시 클리어:
php artisan opcache:clear또는 FPM 재시작으로 대체 - JIT 활성화 환경이라면
php -i | grep opcache.jit로 설정 확인 후 서비스 부하 테스트 수행 - 외부 HTTP 요청(
Http::get(),file_get_contents(), XML 피드 파싱 등)이 포함된 기능 회귀 테스트 실행 - Apache + PHP-FPM 조합 사용 시
ProxyPass가 포함된 라우팅 경로 테스트
프로덕션 환경
- 스테이징 테스트 통과 확인 후 프로덕션 배포 일정 수립 (보안 패치이므로 1주일 이내 권장)
- 배포 전 현재 PHP 버전 스냅샷 기록 (롤백 기준점)
- 무중단 배포 전략 사용 시 FPM graceful reload 활용:
sudo kill -USR2 $(cat /run/php/php8.4-fpm.pid) - 배포 후 에러 로그 집중 모니터링 (Sentry, Flare 등): 특히
Segmentation fault,heap corrupted메시지 모니터링 -
php -v및php -m으로 업그레이드 완료 및 확장 모듈 정상 로드 확인 - APM(New Relic, Datadog 등) 사용 시 PHP 에이전트 버전 호환성 확인
참고 링크
- 공식 릴리스 노트: https://www.php.net/releases/8_4_5.php
- CVE-2024-11235 상세: https://github.com/advisories/GHSA-rwp7-7vc6-8477
- CVE-2025-1217 상세: https://github.com/advisories/GHSA-v8xr-gpvj-cx9g
편집자 주: 위 CVE 링크는 GHSA 식별자를 기반으로 작성되었습니다. 발행 전 실제 링크 유효성을 확인하세요.