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

PHP 8.4.6 업데이트 — 한국 Laravel 개발자 영향 분석

작성: 라라벨 코리아 (초안)

발행: 2026년 8월 6일

## 요약

요약

PHP 8.4.6은 보안 패치 없이 순수 버그 수정만 포함된 일반 릴리스입니다. 그러나 PHP 8.4.5에는 HTTP 스트림 래퍼 관련 4개의 CVE를 포함한 중요 보안 패치가 포함되어 있으므로, 아직 8.4.5 미만 버전을 사용 중인 팀은 즉시 업그레이드가 필요합니다. Laravel 개발자에게 직접적인 영향을 주는 Property Hook, JIT, Opcache, PDO 관련 버그가 다수 수정되었습니다.


핵심 내용

🔴 PHP 8.4.5의 보안 수정 사항 (미업그레이드 시 위험)

8.4.5에서 수정된 CVE 목록으로, 8.4.6 이전 버전을 사용하는 경우 모두 해당됩니다.

CVEGHSA내용
CVE-2024-11235GHSA-rwp7-7vc6-8477php_request_shutdown 에서 Use-After-Free (UAF)
CVE-2025-1219GHSA-p3x9-6h7p-cgfc리다이렉트 시 content-type 헤더 오류
CVE-2025-1736GHSA-hgf5-96fm-v528HTTP 래퍼에서 Basic Auth 헤더 누락 가능성
CVE-2025-1861GHSA-52jp-hrpf-2jff리다이렉트 URL 1024바이트 초과 시 잘림
CVE-2025-1734GHSA-pcmh-g36c-qc44콜론 없는 헤더를 오류 없이 통과
CVE-2025-1217GHSA-v8xr-gpvj-cx9ghttp 스트림 래퍼의 폴딩 헤더 파싱 미처리

⚠️ LibXML에서도 GHSA-wg4p-4hqh-c3g9 재발 버그가 수정되었습니다. XML 파싱을 수행하는 Laravel 앱(예: Sitemap 생성, XML API 연동)은 주의가 필요합니다.


🟠 PHP 8.4.6의 주요 버그 수정

Property Hook 관련 (PHP 8.4 신기능)

PHP 8.4에서 도입된 Property Hook의 안정성이 이번 패치에서 대폭 개선되었습니다. Laravel 모델이나 DTO에서 Property Hook을 적극 활용 중인 팀에 직접적인 영향을 줍니다.

  • 다중 상속에서 backing value 접근 오류 수정 (ilutov)
  • 오버라이드된 가상 프로퍼티의 기본값 잘못 상속되는 문제 수정 (ilutov)
  • 자식 클래스에 추가된 Property Hook의 JIT 다형성 깨짐 수정 (GH-17376)
  • get_object_vars()에서 get hook 없는 hooked prop 잘못 처리 (GH-17988)
  • Lazy Object + Hook 조합의 Stack-use-after-return 수정 (GH-17941)
  • Lazy Proxy의 set hook에서 backing value 할당 시 훅 재호출 버그 수정 (GH-17998)
// 예: PHP 8.4 Property Hook 사용 시 영향받는 패턴 class UserDto { public string $name { set(string $value) { $this->name = strtolower($value); // 이전 버전에서 훅이 재귀 호출되는 버그 존재 } } } class AdminDto extends UserDto { public string $name { set(string $value) { $this->name = 'admin_' . $value; // 다중 상속 시 backing value 접근 오류 수정됨 } } }

Opcache / JIT 관련

JIT를 활성화한 프로덕션 환경에서 세그폴트 및 어설션 실패가 발생하는 버그들이 수정되었습니다.

  • IN_ARRAY 최적화 DFA 패스 오류 수정 (GH-18050) — in_array() 연산 결과가 잘못될 수 있었던 심각한 버그
  • Symfony JIT 1205 어설션 실패 수정 (GH-17966) — Symfony 기반 Laravel 연동 환경에 영향
  • Opcache CFG jump 최적화 + try-finally 조합 예외 테이블 깨짐 수정 (GH-18107)
  • Preloading + INI 옵션 조합 NULL 접근 수정 (GH-18112)
  • stack-buffer-overflow in JIT IR SCCP 수정 (GH-18113)

foreach 성능 회귀 재수정

GH-13193 (foreach 성능 저하)가 이전 패치에서 완전히 해결되지 않아 재수정되었습니다. 대규모 컬렉션을 순회하는 Laravel 코드에서 성능 개선 효과를 기대할 수 있습니다.

PDO / SPL / Standard

  • PDORow 소멸 시 메모리 누수 수정
  • array_any() / array_all() 메모리 누수 수정 (PHP 8.4 신규 함수)
  • ArrayObject::offsetGet()의 UAF(Use-After-Free) 수정 (GH-18018)

Mbstring

  • mb_output_handler + http_output_conv_mimetypes unset 조합 크래시 수정 (GH-17989) — mbstring.encoding_translation을 사용하는 레거시 앱에 영향 가능

한국 Laravel 개발자에게 미치는 영향

PHP 버전별 영향 범위

현재 사용 버전조치 필요 수준이유
PHP 8.4.4 이하🔴 즉시 업그레이드6개 CVE 미패치 상태
PHP 8.4.5🟡 권장 업그레이드보안은 확보, JIT/Hook 버그 잔존
PHP 8.4.6✅ 최신현재 최신 안정 버전

Property Hook 사용 여부 확인

PHP 8.4로 업그레이드하면서 Property Hook을 도입한 팀은 특히 다중 상속 구조Lazy Object 패턴에서 버그를 경험했을 수 있습니다. 8.4.6 업그레이드 후 관련 동작이 수정됩니다.

Laravel Sail / Docker 환경

sail 또는 Docker를 사용하는 경우 베이스 이미지가 php:8.4-fpm 최신 태그를 사용 중이라면 이미지를 다시 pull해야 합니다. 고정 태그(php:8.4.5-fpm)를 사용하는 경우 명시적으로 8.4.6으로 업데이트가 필요합니다.

# Sail 환경에서의 이미지 업데이트./vendor/bin/sail downdocker pull php:8.4-fpm  #  laravel/sail  ./vendor/bin/sail build --no-cache./vendor/bin/sail up -d

Laravel Valet (macOS)

Homebrew 기반 PHP를 사용하는 경우:

brew upgrade php# 또는 php@8.4 고정 버전을 사용 중인 경우brew upgrade php@8.4valet restart

Homebrew 패키지 반영에는 릴리스 이후 수일이 소요될 수 있습니다. php -v로 버전 확인 후 반영 여부를 확인하세요.

JIT 사용 중인 프로덕션 서버

opcache.jit=tracing 또는 opcache.jit=function 설정을 사용하는 환경에서 Opcache 관련 세그폴트 수정 사항이 다수 포함되어 있어 안정성 향상이 기대됩니다. Nginx + PHP-FPM 조합의 경우 업그레이드 후 FPM 재시작이 필요합니다.

HTTP 스트림 래퍼 사용 코드 점검 (8.4.5 보안 수정)

file_get_contents(), fopen() 등으로 외부 HTTP 요청을 수행하는 레거시 코드가 있다면 CVE-2025-1736(Basic Auth 누락) 및 CVE-2025-1217(폴딩 헤더 미처리)의 영향을 받을 수 있습니다. Laravel에서는 일반적으로 Guzzle/Http Client를 사용하므로 직접적인 영향은 제한적이나, PHP 스트림 래퍼를 직접 활용하는 코드는 점검이 필요합니다.


실무 체크리스트

로컬 개발 환경

  • php -v 명령으로 현재 PHP 버전 확인
  • Homebrew(brew upgrade php@8.4) 또는 Docker 이미지 업데이트
  • php artisan test 또는 phpunit 실행으로 Property Hook 관련 회귀 없는지 확인
  • array_any(), array_all() 등 PHP 8.4 신규 함수 사용 코드 메모리 누수 수정 효과 확인

스테이징 환경

  • PHP 버전 업그레이드 후 Opcache 캐시 초기화: php artisan opcache:clear 또는 FPM 재시작
  • JIT 활성화 환경에서 foreach 대규모 반복 로직 성능 및 정확성 검증
  • try-finally 블록이 포함된 트랜잭션 처리 코드 동작 확인 (GH-18107 관련)
  • DOM/XML 파싱 기능 회귀 테스트 (SVG 속성 소문자 변환 버그 수정 GH-18090 포함)
  • mb_output_handler 또는 mbstring 관련 설정 사용 시 크래시 재현 여부 확인

프로덕션 환경

  • PHP 8.4.4 이하: 6개 CVE 포함 보안 패치 미적용 상태 — 즉각 업그레이드 필요
  • PHP 8.4.5: 버그 수정 목적 업그레이드 권장 (JIT 세그폴트, Property Hook 안정성)
  • 업그레이드 전 php-fpm 설정 백업 및 PHP 버전 롤백 플랜 준비
  • 업그레이드 후 PHP-FPM 완전 재시작: sudo systemctl restart php8.4-fpm
  • Opcache preloading 사용 시 preload 스크립트 재검증 (GH-18112 수정 포함)
  • 업그레이드 후 애플리케이션 에러 로그 모니터링 (최소 24시간)
  • AWS EC2, NCP, Cafe24 등 관리형 서버 환경에서는 플랫폼별 PHP 업데이트 가이드 별도 확인

참고: 본 문서는 PHP 공식 릴리스 노트를 기반으로 작성된 초안입니다. 실제 적용 전 공식 문서를 반드시 교차 확인하시기 바랍니다.