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

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

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

발행: 2026년 8월 6일

## 요약

요약

PHP 8.4.7이 릴리스되었습니다. 이번 업데이트는 메모리 안전성(use-after-free, 메모리 누수), 세그폴트, 정수 오버플로우 등 다수의 버그를 수정하며, 특히 JIT 관련 안정성 개선과 보안에 영향을 줄 수 있는 Filter 확장의 IPv6 정수 오버플로우 수정이 포함되어 있습니다. Laravel 프로젝트에서 자주 사용되는 Opcache, PDO, OpenSSL, Zip 등 핵심 컴포넌트에 걸쳐 수정이 이루어졌으므로 운영 환경 업그레이드를 적극 권장합니다.


핵심 내용

🔐 보안 관련 수정

  • Filter 확장 — IPv6 정수 오버플로우 (GH-18309) FILTER_VALIDATE_IP로 IPv6 주소를 검증하는 코드에서 정수 오버플로우가 발생할 수 있었습니다. 사용자 입력값을 IPv6 필터로 검증하는 코드가 있다면 즉시 업그레이드를 검토해야 합니다.

  • Core — extract()의 Use-After-Free (GH-18209) extract($array, EXTR_REFS) 사용 시 use-after-free가 발생하는 버그가 수정되었습니다. EXTR_REFS 플래그를 사용하는 레거시 코드가 있다면 특히 주의가 필요합니다.

  • OpenSSL — 메모리 누수 openssl_sign()에 잘못된 알고리즘을 전달하거나 BIO 쓰기 실패 시 메모리 누수가 발생하는 문제가 수정되었습니다. 장기 실행 FPM 프로세스 환경에서 누적 메모리 증가가 발생했을 수 있습니다.

⚡ JIT / Opcache 안정성 개선

PHP 8.4.x 시리즈에서 지속적으로 수정이 이루어지고 있는 JIT 관련 버그가 이번에도 다수 포함되어 있습니다.

  • GH-18294: zend_jit_ir.c assertion failure 수정
  • GH-18289: JIT 세그폴트 수정
  • GH-18136: Windows 및 ARM64 환경에서 tracing JIT 부동소수점 레지스터 오염 문제 수정

⚠️ ARM64 기반 macOS(Apple Silicon)에서 Laravel Valet 또는 Docker를 사용하는 개발자라면 GH-18136 수정이 직접적인 영향을 줄 수 있습니다. JIT를 활성화한 상태에서 간헐적으로 발생하던 계산 오류나 크래시가 이 버그와 연관되었을 가능성이 있습니다.

💾 메모리 누수 및 세그폴트 수정

Laravel 애플리케이션에서 직간접적으로 사용되는 컴포넌트들의 메모리 관리 버그가 수정되었습니다.

컴포넌트수정 내용
Corearray_walk() + 프로퍼티 훅 세그폴트 (GH-18268)
CoreDateInterval 동적 프로퍼티 변경 시 세그폴트 (GH-18304)
DBAdba_popen() 잘못된 경로에서 메모리 누수 (GH-18247)
PDO Firebird영구 연결 + setAttribute()zend_mm_heap corrupted (GH-18276)
PDO SQLite콜레이션 콜백 오류 반환 시 메모리 누수
SPLSplObjectStorage 디버그 핸들러 메모리 오류 (GH-18322)
ZipZipArchive::addGlob() 관련 use-out-of-valid, 메모리 누수
GDimagecrop(), imagettftext() 오버플로우

🪄 Lazy Object / Property Hook 안정성

PHP 8.4에서 새롭게 도입된 Lazy ObjectsProperty Hooks는 Laravel의 미래 버전 및 서드파티 패키지에서 점진적으로 활용될 가능성이 높습니다. 이번 릴리스에서는 Lazy Proxy가 매직 메서드를 두 번 호출하는 버그(GH-18038)가 수정되어 안정성이 향상되었습니다.

🔧 기타 주목할 수정 사항

  • LDAP: LDAP_OPT_X_TLS_* 옵션 재정의 불가 버그 수정(GH-17776), NULL 역참조 수정 — LDAP 인증을 사용하는 기업 환경에서 중요
  • PgSql: pg_put_copy_end() use-out-of-valid 수정 — PostgreSQL을 사용하는 Laravel 프로젝트에 해당
  • Intl: intltz_get_offset() 레퍼런스 지원 수정 — 다국어/시간대 처리 코드에 영향 가능

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

호환성 및 업그레이드 난이도

PHP 8.4.7은 패치 버전 업그레이드이므로 API 변경 없이 기존 코드가 그대로 동작해야 합니다. PHP 8.4.x를 이미 사용 중이라면 즉시 업그레이드를 권장하며, 별도의 코드 수정은 필요하지 않습니다.

PHP 8.3.x 이하를 사용 중인 경우, 이번 릴리스는 직접적인 영향이 없으나 8.4 마이너 업그레이드를 계획 중이라면 8.4.7부터 시작하는 것이 가장 안전합니다.

보안 긴급도

이번 릴리스는 별도의 CVE 번호가 부여된 취약점은 포함되어 있지 않습니다. 단, Filter IPv6 정수 오버플로우extract() use-after-free는 잠재적 보안 위험 요소이므로, 해당 기능을 사용자 입력과 함께 사용하는 경우 업그레이드 우선순위를 높이길 권장합니다.

참고: PHP 8.4.5에서는 여러 CVE(CVE-2024-11235, CVE-2025-1219, CVE-2025-1736 등)가 수정된 바 있습니다. 아직 8.4.5 미만을 사용 중이라면 즉시 업그레이드가 필요합니다.

로컬 개발 환경별 영향

Laravel Valet (macOS)

  • Apple Silicon(M1/M2/M3) 환경에서 ARM64 JIT 버그(GH-18136)가 수정되었으므로 업그레이드 효과가 큽니다.
  • valet use php@8.4 명령 후 Homebrew를 통해 PHP 8.4.7로 업데이트 가능합니다.
brew upgrade php# 또는 특정 버전 관리 시brew upgrade shivammathur/php/php@8.4valet restart

Laravel Sail (Docker)

  • 공식 sail 이미지는 PHP 버전 업데이트 후 이미지 재빌드가 필요합니다.
  • docker-compose.yml의 PHP 버전 태그를 확인하고 sail build --no-cache를 실행하세요.

운영 환경 (Ubuntu/Debian — Ondřej PPA, Amazon Linux 등)

# Ubuntu (ondrej/php PPA 사용 시) sudo apt update && sudo apt upgrade php8.4 # 버전 확인 php -v

실무 체크리스트

로컬 / 개발 환경

  • 현재 PHP 버전 확인: php -v
  • PHP 8.4.7로 업그레이드 (Homebrew / 패키지 관리자)
  • Valet 사용 시: valet restart 실행
  • Sail 사용 시: sail build --no-cachesail up -d
  • php -m으로 주요 확장(openssl, filter, intl, zip, pdo) 정상 로드 확인
  • php --ri opcache로 JIT 설정 확인 (JIT 활성화 시 ARM64 수정 효과 검증)
  • extract($array, EXTR_REFS) 사용 코드 검색 및 동작 검증

스테이징 환경

  • PHP 8.4.7 설치 후 php -v 확인
  • composer install 재실행 (autoload 재생성)
  • php artisan config:clear && php artisan cache:clear
  • Laravel 애플리케이션 스모크 테스트 (로그인, DB 연결, 캐시, 큐 등)
  • IPv6 입력 필터링 로직 테스트 (FILTER_VALIDATE_IP 관련)
  • OpenSSL 서명/검증 기능 사용 시 관련 기능 테스트
  • PostgreSQL 사용 시 pg_* 관련 쿼리 정상 동작 확인
  • LDAP 인증 사용 시 TLS 옵션 설정 재확인
  • ZipArchive 사용 로직 (파일 업로드/다운로드 등) 테스트
  • PHPUnit 테스트 스위트 전체 실행

운영 환경

  • 스테이징에서 이상 없음 확인 후 업그레이드 진행
  • 업그레이드 전 PHP-FPM 프로세스 상태 및 메모리 사용량 기록 (비교용)
  • 패키지 매니저로 업그레이드: sudo apt upgrade php8.4 (Ubuntu 기준)
  • PHP-FPM 재시작: sudo systemctl restart php8.4-fpm
  • Opcache 초기화 확인 (배포 후 opcache_reset() 또는 FPM 재시작)
  • 업그레이드 후 애플리케이션 에러 로그(storage/logs/laravel.log) 모니터링
  • 업그레이드 후 서버 메모리 사용량 추이 확인 (누수 수정 효과 검증)
  • Datadog, New Relic 등 APM 사용 시 PHP 버전 메타데이터 업데이트 확인

📝 드래프트 주의사항: 이 문서는 공식 릴리스 날짜가 확정되지 않은 changelog를 기반으로 작성되었습니다(?? ??? ???? 표기). 실제 릴리스일 및 공식 발표 내용을 php.net에서 반드시 재확인한 후 배포하시기 바랍니다.