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

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

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

발행: 2026년 8월 6일

## 요약

요약

PHP 7.4.5는 2020년 4월 16일에 릴리스된 보안 업데이트로, 이전 버전(7.4.4 포함)에서 발견된 다수의 버그와 보안 취약점을 수정합니다. 특히 urldecode(), shell_exec(), shmop_open(), SOAP 관련 세그멘테이션 폴트 등 실무 환경에서 직접적인 영향을 줄 수 있는 심각한 문제들이 포함되어 있습니다. 보안 릴리스이므로 가능한 한 빠른 업그레이드가 강력히 권장됩니다.


핵심 내용

🔐 보안 관련 수정 사항 (최우선 검토)

PHP 7.4.5 자체 릴리스 노트 및 직전 버전(7.4.4)의 보안 수정 사항을 함께 파악해야 합니다.

PHP 7.4.5에서 수정된 보안/크리티컬 버그:

  • #79465urldecode()에서의 OOB(Out-of-Bounds) 읽기 (Standard): URL 디코딩 과정에서 메모리 경계를 벗어난 읽기가 발생할 수 있습니다. 웹 입력을 처리하는 모든 Laravel 애플리케이션에 잠재적 영향이 있습니다.
  • #79427shmop_open()에서 정수 오버플로우 (Shmop): 공유 메모리를 사용하는 환경에서 정수 오버플로우로 인한 예기치 않은 동작이 발생할 수 있습니다.
  • #79330shell_exec()가 null 바이트 이후 내용을 조용히 잘라냄 (Standard): 외부 명령 실행 결과가 null 바이트 이후 데이터를 손실할 수 있습니다. Artisan 명령 또는 Symfony Process 컴포넌트를 통한 쉘 명령 실행 시 주의가 필요합니다.
  • #79410system()이 정확히 4095바이트인 마지막 청크를 누락 (Standard)**: 특정 크기의 출력을 생성하는 시스템 명령에서 데이터가 누락될 수 있습니다.

PHP 7.4.4에서 수정된 CVE 등록 보안 취약점 (7.4.5 이전 버전 사용자는 반드시 확인):

CVE컴포넌트설명
CVE-2020-7064EXIF초기화되지 않은 값 사용 (Use-of-uninitialized-value)
CVE-2020-7065MBStringmb_strtolower() UTF-32LE 처리 중 스택 버퍼 오버플로우
CVE-2020-7066Standardget_headers()에서 null 바이트 이후 조용한 잘림
CVE-2020-7063PharPhar::buildFromIterator로 추가된 파일에 과도한 권한 설정
CVE-2020-7062Session세션 업로드 진행 중 Null 포인터 역참조
CVE-2020-7061Pharphar_extract_file에서 힙 버퍼 오버플로우

⚠️ 중요: 7.4.3 이하를 사용 중인 경우 위 CVE들이 모두 패치되지 않은 상태입니다. 보안 위험도가 매우 높습니다.


🐛 Laravel 실무에 영향을 줄 수 있는 주요 버그 수정

Date / DateTime 관련

  • #79396 — DST(일광절약시간) 전환 시 DateTime 시간이 잘못 계산되는 버그 수정: 타임존이 중요한 한국 서비스(예: 예약 시스템, 로그 타임스탬프, 스케줄러)에서 Carbon이나 DateTime을 활용할 때 DST가 있는 해외 타임존(America/New_York, Europe/London 등)을 다루는 경우 이 버그의 영향을 받았을 수 있습니다.
  • #74940DateTimeZone 느슨한 비교가 항상 true를 반환하는 버그 수정: 타임존 객체를 비교하는 로직에서 잘못된 결과가 반환될 수 있었습니다.

OPcache 관련

  • #79412 — 특정 스크립트에서 OPcache가 CPU를 100% 점유하는 버그 수정: 프로덕션 환경에서 OPcache를 활성화한 경우 특정 코드 패턴에서 서버가 응답 불능 상태가 될 수 있는 심각한 문제입니다.

SOAP 관련

  • #79357 — SOAP 요청 파라미터 누락 시 세그멘테이션 폴트: Laravel에서 외부 SOAP API를 연동하는 경우, 요청 파라미터가 누락되었을 때 PHP 프로세스 자체가 종료될 수 있었습니다.

Session 관련

  • #79413 — 활성 세션에서 session_create_id()가 실패하는 버그 수정: Laravel의 세션 관리 로직 일부에서 세션 ID 생성이 실패할 수 있었습니다.

FPM 관련

  • #77062listen.owner / listen.group 설정에 숫자 UID/GID 허용 (기능 추가): Docker 환경 등에서 소켓 파일 권한 설정 시 숫자 ID를 직접 사용할 수 있어 컨테이너 환경 구성이 더 유연해졌습니다.

SPL / SimpleXML / Zip

  • #79393SplFixedArray에서 Null 병합 연산자(??) 오작동: Laravel 코드에서 ?? 연산자를 SplFixedArray와 함께 사용하는 경우 예상치 못한 결과가 발생했습니다.
  • #79296ZipArchive::open()이 빈 파일에서 실패: 업로드된 ZIP 파일 처리나 아카이브 생성 로직에 영향을 줄 수 있습니다.

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

호환성

  • PHP 7.4.5는 7.4.x 마이너 라인의 패치 릴리스로, 하위 호환성을 유지합니다. 코드 변경 없이 PHP 바이너리만 업데이트하면 됩니다.
  • Laravel 6.x (LTS), 7.x 모두 PHP 7.4를 공식 지원하므로 즉시 업그레이드 가능합니다.

보안 긴급도

  • 긴급(Critical): 7.4.3 이하 버전 사용 중인 경우, CVE-2020-7061 ~ 7066이 패치되지 않은 상태입니다. 특히 파일 업로드, 세션, 이미지 처리 기능이 있는 서비스는 즉각적인 업그레이드가 필요합니다.
  • 높음(High): 7.4.4 사용 중인 경우에도 urldecode() OOB, shell_exec() null 바이트 트런케이션 등의 문제가 존재하므로 업그레이드를 권장합니다.

로컬 개발 환경별 업그레이드 방법

Laravel Valet (macOS)

# Homebrew를 통해 PHP 업그레이드brew upgrade php@7.4# Valet 재시작valet restart

Laravel Sail (Docker)

docker-compose.yml 또는 Sail의 Dockerfile에서 PHP 이미지 버전을 확인하고, 최신 7.4 태그 이미지로 재빌드합니다.

# 이미지 재빌드./vendor/bin/sail build --no-cache# 컨테이너 재시작./vendor/bin/sail up -d

Sail은 laravelsail/php74-composer 이미지를 기반으로 하므로, 이미지 업스트림에서 7.4.5가 반영되었는지 확인 후 docker pull을 수행하세요.

일반 Docker 환경

# Dockerfile에서 명시적 버전 태그 확인 권장 FROM php:7.4.5-fpm-alpine

php:7.4-fpm 태그는 자동으로 최신 패치 버전을 가리키지만, 명시적 버전 태그(7.4.5)를 사용하면 재현 가능한 빌드를 보장할 수 있습니다.

AWS/클라우드 서버 (Ubuntu/CentOS 계열)

# Ubuntu + ondrej/php PPAsudo apt-get updatesudo apt-get upgrade php7.4# PHP-FPM 재시작sudo systemctl restart php7.4-fpm

실무 체크리스트

로컬 / 개발 환경

  • php -v 명령으로 현재 PHP 버전 확인
  • 7.4.5 미만인 경우 위의 환경별 업그레이드 절차 수행
  • 업그레이드 후 php -v7.4.5 반영 확인
  • composer install / php artisan optimize:clear 실행하여 캐시 초기화
  • OPcache를 사용하는 경우 opcache_reset() 또는 PHP-FPM 재시작으로 캐시 초기화
  • SOAP, ZipArchive, Session, SplFixedArray를 사용하는 기능 로컬 테스트

스테이징 환경

  • 스테이징 서버 PHP 업그레이드 (운영과 동일한 방식으로)
  • php artisan test 또는 PHPUnit 전체 테스트 스위트 실행
  • 파일 업로드 기능(Phar, Zip, 이미지 EXIF 처리) 통합 테스트
  • 세션 관련 기능 정상 동작 확인
  • 외부 SOAP API 연동이 있는 경우 엔드-투-엔드 테스트
  • 타임존 관련 로직(스케줄러, 예약 기능) 동작 확인
  • OPcache 활성화 상태에서 전체 기능 회귀 테스트

프로덕션 환경

  • 배포 전 스테이징 테스트 완료 여부 확인
  • PHP-FPM 재시작 전 트래픽이 낮은 시간대(새벽) 선택 또는 Rolling 배포 계획 수립
  • 업그레이드 전 현재 PHP 버전 및 설정 백업 (php.ini, FPM pool 설정)
  • PHP 업그레이드 수행
  • PHP-FPM 재시작 (sudo systemctl restart php7.4-fpm)
  • 업그레이드 후 phpinfo() 또는 php -v로 버전 확인 (보안상 phpinfo() 노출 주의)
  • 애플리케이션 주요 엔드포인트 헬스체크 (응답 코드, 응답 시간)
  • 에러 로그 모니터링 (/var/log/php7.4-fpm.log, Laravel storage/logs/)
  • Sentry, Bugsnag 등 에러 트래킹 도구에서 에러 급증 여부 모니터링 (최소 1시간)
  • OPcache 사용 중인 경우 캐시 워밍업 확인
  • Docker/Kubernetes 환경의 경우 새 이미지 태그로 Rolling Update 완료 확인

📝 편집자 주: 이 글은 공식 PHP 릴리스 노트를 기반으로 작성된 초안입니다. 각 CVE의 CVSS 점수 등 세부 보안 등급은 공식 NVD(https://nvd.nist.gov) 또는 PHP 보안 공지를 통해 추가로 확인하시기 바랍니다. 특정 호스팅 환경(카페24, 가비아 등)에서의 업그레이드 절차는 해당 호스팅사의 공식 가이드를 별도로 참조하세요.