← 아티클 목록
업데이트phplaravel업데이트

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가 포함되어 있습니다. 모두 외부 공격자가 악용 가능한 유형이므로 우선순위를 높게 설정해야 합니다.

CVEGHSA영향 범위설명
CVE-2024-11235GHSA-rwp7-7vc6-8477Corephp_request_shutdown의 참조 카운팅 오류로 인한 Use-After-Free
CVE-2025-1219GHSA-p3x9-6h7p-cgfcLibXML리디렉션된 리소스 요청 시 잘못된 content-type 헤더 사용
CVE-2025-1736GHSA-hgf54-96fm-v528StreamsHTTP 래퍼의 헤더 검사에서 Basic 인증 헤더 누락 가능성
CVE-2025-1861GHSA-52jp-hrpf-2jffStreamsHTTP 래퍼가 리디렉션 Location을 1024바이트로 잘라내는 문제
CVE-2025-1734GHSA-pcmh-g36c-qc44Streams콜론(:)이 없는 헤더를 실패 처리하지 않는 문제
CVE-2025-1217GHSA-v8xr-gpvj-cx9gStreamsHTTP 스트림 래퍼의 헤더 파서가 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): Apache ProxyPass와 함께 인코딩된 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 restart

Laravel 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/php PPA 또는 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 -vphp -m으로 업그레이드 완료 및 확장 모듈 정상 로드 확인
  • APM(New Relic, Datadog 등) 사용 시 PHP 에이전트 버전 호환성 확인

참고 링크

편집자 주: 위 CVE 링크는 GHSA 식별자를 기반으로 작성되었습니다. 발행 전 실제 링크 유효성을 확인하세요.