PHP 7.4.4 업데이트 — 한국 Laravel 개발자 영향 분석
작성: 라라벨 코리아 (초안)
발행: 2026년 8월 6일
## 요약
요약
PHP 7.4.4가 2020년 3월 19일 릴리스되었으며, CVE가 지정된 보안 취약점 4건을 포함한 다수의 버그 수정이 포함되어 있습니다. EXIF, MBstring, get_headers() 등 웹 애플리케이션에서 자주 사용되는 기능에 보안 결함이 발견되었으므로, PHP 7.4 계열을 사용 중인 Laravel 프로젝트는 즉시 업그레이드를 검토해야 합니다.
핵심 내용
🔴 CVE 지정 보안 취약점 (즉시 대응 필요)
PHP 7.4.4에는 다음 4건의 CVE가 포함되어 있습니다.
| CVE | 영향 컴포넌트 | 설명 |
|---|---|---|
| CVE-2020-7066 | Core (get_headers()) | null 바이트 이후 URL이 무음으로 잘림 — 의도치 않은 호스트에 요청 전송 가능 |
| CVE-2020-7064 | EXIF | 미초기화 값 사용(Use-of-uninitialized-value) — 잠재적 정보 노출 |
| CVE-2020-7065 | MBstring (mb_strtolower) | UTF-32LE 입력 처리 시 스택 버퍼 오버플로우 — 원격 코드 실행 가능성 |
| CVE-2020-7063 | Phar | buildFromIterator()로 추가된 파일에 과도한 권한(all-access) 부여 |
⚠️ CVE-2020-7065 (MBstring 스택 버퍼 오버플로우) 는 심각도가 높습니다. 외부 입력을
mb_strtolower()에 직접 전달하는 코드가 있다면 원격 공격 벡터가 될 수 있습니다.
🟠 Laravel 실무와 밀접한 주요 버그 수정
PCRE (정규식) 다중 수정
PCRE 관련 세 건의 버그가 수정되었습니다.
preg_replace/preg_replace_callback+ 유니코드 처리 시 메모리 손상 (#79188)preg_match()세그멘테이션 폴트 (#79241)- 이름 있는 그룹(
(?J)) 매칭 오류 (#79257)
Laravel의 라우팅, 유효성 검사(regex 규칙), Blade 컴파일러는 PCRE에 의존합니다. 특히 유니코드 문자열을 정규식으로 처리하는 경우 이번 수정이 중요합니다.
Opcache Preloading 세그폴트 수정
Fixed bug #79252 (preloading causes php-fpm to segfault during exit)
PHP 7.4에서 새로 도입된 Preloading(opcache.preload)을 사용하는 프로젝트라면, php-fpm 종료 시 발생하던 세그폴트가 해소됩니다. Laravel에서 Preloading을 실험적으로 적용 중이라면 이번 버전에서 안정성이 개선됩니다.
cURL 업로드 관련 수정
Fixed bug #79019 (Copied cURL handles upload empty file)
Fixed bug #79013 (Content-Length missing when posting a curlFile with curl)Laravel의 HTTP 클라이언트(Http::attach())나 파일 업로드 프록시 구현에 cURL을 직접 사용하는 경우, 빈 파일이 전송되거나 Content-Length 헤더 누락으로 인한 오류가 해결됩니다.
FPM 오류 메시지 수정
Fixed bug #79014 (PHP-FPM & Primary script unknown)
Nginx + PHP-FPM 조합에서 간혹 발생하던 Primary script unknown 오류의 원인 중 하나가 수정되었습니다.
Standard: Host 헤더 인젝션 수정
Fixed bug #79265 (Improper injection of Host header when using fopen for http requests)
fopen()을 이용한 HTTP 요청 시 Host 헤더에 부적절한 값이 주입될 수 있는 문제가 수정되었습니다. 스트림 컨텍스트를 직접 사용하는 경우 확인이 필요합니다.
MySQLnd: Windows caching_sha2_password 지원
Implemented FR #79275 (Support auth_plugin_caching_sha2_password on Windows)
MySQL 8.0의 기본 인증 방식인 caching_sha2_password가 Windows에서도 지원됩니다. Windows 개발 환경(XAMPP, WSL 미사용)에서 MySQL 8.0에 접속하던 문제가 해결됩니다.
한국 Laravel 개발자에게 미치는 영향
호환성
- PHP 7.4.4는 7.4.x 계열 내 패치 버전이므로 하위 호환성 변경 없음. 기존 7.4.x 프로젝트는 코드 수정 없이 업그레이드 가능합니다.
- Laravel 6.x, 7.x은 PHP 7.4를 공식 지원하므로 직접적인 영향권입니다.
보안 긴급도
즉시 업그레이드를 권장합니다. CVE-2020-7065(MBstring 스택 버퍼 오버플로우)는 외부 입력이 다국어 문자열 처리 함수를 통과하는 모든 Laravel 애플리케이션에 잠재적 위험이 됩니다. 한국어 서비스의 특성상 UTF-8/UTF-32 문자열을 빈번하게 다루는 경우 위험 노출도가 높습니다.
로컬 개발 환경별 업그레이드 방법
Laravel Valet (macOS)
brew upgrade php# 특정 버전 고정이 필요한 경우brew install php@7.4valet use php@7.4Laravel Sail (Docker)
docker-compose.yml 또는 .env에서 PHP 이미지 태그를 확인하세요. 공식 laravelsail/php74-composer 이미지 업데이트 여부를 Docker Hub에서 확인 후 pull합니다.
docker compose pulldocker compose up -d --build직접 관리하는 Docker 환경
# Dockerfile 예시
FROM php:7.4.4-fpm-alpine베이스 이미지 태그를 7.4.4 또는 7.4(최신 패치 자동 추적)로 명시하고 재빌드합니다.
서버 직접 관리 (Ubuntu/CentOS)
# Ubuntu + ondrej/php PPAsudo apt updatesudo apt upgrade php7.4 php7.4-fpm php7.4-mbstring php7.4-curl# 버전 확인php -v주목할 로컬 이슈
- Windows 개발자:
caching_sha2_password수정(#79275)으로 MySQL 8.0 연결 문제가 해소될 수 있습니다..env의DB_HOST,DB_PASSWORD를 재확인하세요. - Phar 사용 프로젝트: CVE-2020-7063으로 인해
buildFromIterator()로 생성한 Phar 아카이브의 파일 권한을 점검해야 합니다.
실무 체크리스트
로컬 환경
-
php -v명령으로 현재 PHP 버전 확인 - Valet / Sail / Docker / MAMP 등 사용 환경에 맞는 방법으로 7.4.4로 업그레이드
-
mb_strtolower(),mb_convert_encoding()등 MBstring 함수에 외부 입력이 직접 전달되는 코드 검토 -
get_headers()를 사용하는 경우 URL 입력값 검증 로직 확인 (CVE-2020-7066) - EXIF 처리(
exif_read_data()등) 코드 존재 여부 확인 (CVE-2020-7064) - Phar 아카이브를 프로그래밍 방식으로 생성하는 경우 생성된 파일 권한 확인 (CVE-2020-7063)
스테이징 환경
- PHP 7.4.4 업그레이드 후
php-fpm재시작 및 정상 동작 확인 - Opcache Preloading 사용 시 php-fpm 정상 종료 확인 (
#79252) - PCRE 기반 유효성 검사 규칙 (
regex:,not_regex:) 동작 테스트 (유니코드 입력 포함) - cURL을 이용한 파일 업로드 기능 통합 테스트 (
#79019,#79013) -
Http::attach()또는 직접 구현한 파일 전송 엔드포인트 테스트
프로덕션 환경
- 유지보수 모드 활성화 (
php artisan down) - 패키지 매니저를 통한 PHP 7.4.4 업그레이드 적용
- php-fpm 서비스 재시작 (
sudo systemctl restart php7.4-fpm) - Nginx / Apache 연동 정상 확인 (502 오류 여부 모니터링)
- 애플리케이션 주요 기능 스모크 테스트 수행
- 업그레이드 완료 후 유지보수 모드 해제 (
php artisan up) - 업그레이드 날짜 및 버전을 인프라 변경 이력에 기록
참고: 이 문서는 PHP 7.4.4 공식 릴리스 노트를 기반으로 작성된 초안입니다. 프로덕션 적용 전 공식 문서를 직접 확인하시기 바랍니다.