PHP 7.4.6 업데이트 — 한국 Laravel 개발자 영향 분석
작성: 라라벨 코리아 (초안)
발행: 2026년 8월 6일
## 요약
요약
PHP 7.4.6이 2020년 5월 14일에 릴리스되었으며, CVE-2019-11048을 포함한 보안 취약점이 수정된 보안 릴리스입니다. 장기 변수명 처리 시 발생하는 OOM(메모리 부족) 및 임시 파일 미정리 문제가 핵심 보안 패치 대상이며, Laravel 프로젝트를 운영 중인 팀은 즉시 업그레이드를 검토해야 합니다.
핵심 내용
🔴 보안 수정 사항 (CVE 포함)
이번 릴리스에서 가장 주목해야 할 변경 사항은 다음 CVE 수정입니다:
- CVE-2019-11048 (
#78875,#78876): HTTP 요청에서 지나치게 긴 변수명이 포함될 경우 OOM(Out of Memory)을 유발하고, 이 과정에서 생성된 임시 파일이 삭제되지 않는 문제. 공격자가 의도적으로 긴 파라미터명을 반복 전송하면 서버 디스크 자원 고갈로 이어질 수 있습니다.
⚠️ 주의: 이 CVE는 2019년에 등록되었으나 7.4.6에서 공식 수정되었습니다. 7.4.5 이하 버전을 사용 중이라면 즉시 업그레이드가 필요합니다.
🟠 Core 주요 버그 수정
| 버그 번호 | 내용 | Laravel 관련성 |
|---|---|---|
#78434 | Generator의 valid() 호출 후 yield가 동작하지 않는 문제 | Lazy Collection, 커스텀 Generator 사용 시 영향 가능 |
#79477 | 객체를 배열로 캐스팅 시 참조(reference)가 의도치 않게 생성되는 문제 | 모델 속성 변환, DTO 처리 로직에 영향 가능 |
#79514 | 존재하지 않는 파일을 include할 때 메모리 누수 발생 | 동적 파일 로딩 패턴 사용 시 주의 |
#79470 | 서드파티 온디맨드 파일시스템과의 비호환 문제 | Laravel Storage 커스텀 드라이버 사용 시 연관 가능 |
#78784 | VFS(Git 가상 파일시스템) 내 파일 접근 불가 문제 | Git 기반 VCS 통합 개발 환경에서 영향 |
🟡 Laravel 관련 컴포넌트별 수정 사항
MBString
#79441:mb_chr()에서 지원되지 않는 내부 인코딩 사용 시 세그멘테이션 폴트(Segfault) 발생. 한글 처리가 많은 국내 서비스에서mbstring함수를 직접 사용하는 경우 영향을 받을 수 있습니다.
OpenSSL
#79497: 1초 미만 타임아웃 설정 시stream_socket_client()에서 알 수 없는 오류가 발생하는 문제 수정. Guzzle HTTP 클라이언트 또는 Laravel HTTP Client(Http::timeout())로 짧은 타임아웃을 설정하는 경우 관련될 수 있습니다.
SimpleXML
#79528: 7.4.4와 7.4.5 사이 동일 XML에 대해 서로 다른 객체가 반환되는 일관성 문제 수정. XML 기반 외부 API 연동(공공 API, 결제 모듈 등) 시 주목해야 합니다.
Standard
#79468: 스트림 필터가 붙은 상태에서 스트림 핸들을 닫을 때 SIGSEGV 발생. Laravel의 Storage 스트림 기반 파일 처리와 연관될 수 있습니다.#79447:__sleep()에서 초기화되지 않은 typed property를 직렬화할 때 예외가 발생하지 않아야 하는데 발생하던 문제 수정. Eloquent 모델 직렬화/캐시 저장 시 관련 동작 확인 필요.
PCRE
- PCRE2 10.34로 업그레이드. 정규식 엔진 성능 및 안정성 향상. Laravel 라우트 패턴, Validation 규칙의 정규식 처리 성능에 미세한 개선이 있을 수 있습니다.
Phar
#79503: Phar 메타데이터 중복 시 메모리 누수 수정..phar기반 배포 또는 Composer 아카이브 관련 작업에 영향.
SPL
#69264: SPL 클래스를 상속할 때__debugInfo()가 무시되던 문제 수정. 커스텀 컬렉션 구현 시 디버깅 편의성 개선.#67369:ArrayObject직렬화 시 이터레이터 클래스가 유실되는 문제 수정. 세션, 캐시에ArrayObject를 저장하는 경우 확인 필요.
한국 Laravel 개발자에게 미치는 영향
한글/다국어 처리 (mbstring)
국내 서비스에서는 한글 처리를 위해 mbstring 확장을 광범위하게 사용합니다. #79441 (mb_chr Segfault) 수정은 PHP 내부 인코딩 설정이 EUC-KR 또는 비표준 인코딩으로 설정된 레거시 환경에서 특히 중요합니다. php.ini의 mbstring.internal_encoding 설정을 확인하세요.
공공 API 및 XML 기반 연동
국내 서비스는 행정안전부, 건강보험, 결제 PG사 등 XML 기반 API 연동이 많습니다. SimpleXML의 #79528 수정으로 7.4.5에서 발생하던 객체 불일치 문제가 해소되었으므로, 7.4.5 사용 중이라면 특히 업그레이드를 우선 검토하세요.
Laravel Sail / Docker 환경
docker-compose.yml 또는 Dockerfile에서 PHP 이미지 태그를 고정(7.4.5 등)하고 있다면 7.4.6으로 업데이트가 필요합니다.
# 변경 전
FROM php:7.4.5-fpm
# 변경 후
FROM php:7.4.6-fpmLaravel Sail을 사용하는 경우 공식 laravel/sail Docker 이미지가 업데이트될 때까지 sail build --no-cache로 베이스 이미지를 수동으로 갱신하는 것을 권장합니다.
Laravel Valet (macOS)
Homebrew를 통해 PHP를 관리하는 경우:
brew upgrade php@7.4valet restart업그레이드 후 php -v로 버전을 반드시 확인하세요.
호환성 및 마이그레이션 부담
- PHP 7.4.x 내의 마이너 패치 업그레이드이므로 호환성 파괴 변경(Breaking Change)은 없습니다.
- Laravel 6.x (LTS), 7.x 모두 PHP 7.4를 지원하므로 프레임워크 변경 없이 PHP만 업그레이드하면 됩니다.
- Composer 패키지 의존성 변경 없이 PHP 바이너리 교체만으로 완료됩니다.
실무 체크리스트
로컬 개발 환경
-
php -v명령으로 현재 PHP 버전 확인 - Homebrew(
brew upgrade php@7.4) 또는 패키지 매니저로 PHP 7.4.6 설치 - Docker/Sail 사용 시
FROM php:7.4.6-fpm으로 Dockerfile 업데이트 및 이미지 재빌드 -
php.ini의mbstring.internal_encoding설정 확인 (UTF-8권장) - Generator,
ArrayObject직렬화, 스트림 필터를 사용하는 코드가 있다면 로컬에서 동작 검증
스테이징 환경
- PHP 7.4.6 업그레이드 적용
-
php-fpm서비스 재시작:sudo systemctl restart php7.4-fpm - Laravel 테스트 스위트 실행:
php artisan test또는./vendor/bin/phpunit - XML 기반 외부 API 연동 기능 통합 테스트 수행 (SimpleXML 수정 관련)
- OpenSSL 관련 HTTP 클라이언트 호출(짧은 타임아웃 설정)이 있다면 동작 확인
- 에러 로그 및 애플리케이션 로그 이상 없음 확인
운영(Production) 환경
- CVE-2019-11048 보안 패치 적용을 위해 업그레이드를 최우선으로 스케줄링
- 배포 전 스테이징에서의 테스트 결과 이상 없음 확인
- 무중단 배포(Rolling Update) 또는 점검 시간대 업그레이드 적용
- Ubuntu/Debian:
sudo apt-get update && sudo apt-get upgrade php7.4 - CentOS/RHEL (Remi 저장소):
sudo yum update php74 - 업그레이드 후
php -v및php-fpm -v로 버전 확인 - OPcache 캐시 초기화:
php artisan opcache:clear또는php-fpm재시작 - 모니터링 도구(Sentry, New Relic, Datadog 등)에서 오류율 및 메모리 사용량 이상 없음 확인
- 임시 파일 디렉토리(
sys_get_temp_dir()경로) 디스크 사용량 정상화 확인 (CVE-2019-11048 관련 임시 파일 잔여물 여부)
편집자 주: 이 문서는 드래프트입니다. CVE-2019-11048의 실제 악용 가능성 및 국내 서비스 영향 범위에 대해서는 보안 담당자와 추가 검토를 권장합니다. PHP 7.4 자체는 2022년 11월에 공식 지원이 종료(EOL)되었으므로, 장기적으로는 PHP 8.x 마이그레이션 계획을 수립하시기 바랍니다.