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

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

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

발행: 2026년 8월 6일

## 요약

요약

PHP 7.4.33은 2022년 11월 3일에 릴리스된 PHP 7.4 브랜치의 마지막 보안 패치입니다. GD 확장의 OOB(Out-of-Bounds) 읽기 취약점(CVE-2022-31630)과 Hash 확장의 버퍼 오버플로우(CVE-2022-37454) 두 가지 CVE를 수정합니다. PHP 7.4는 이 릴리스를 끝으로 공식 지원이 종료(EOL)되었으므로, 한국 Laravel 개발자들은 즉각적인 업그레이드 계획 수립이 필요합니다.


핵심 내용

수정된 보안 취약점 (CVE)

CVE-2022-31630 — GD: imageloadfont() OOB 읽기

  • 영향 범위: imageloadfont() 함수 호출 시 입력값 검증 부족으로 인한 경계 밖 메모리 읽기
  • 위험도: 외부에서 제공된 폰트 파일을 imageloadfont()로 로드하는 애플리케이션에서 악용 가능
  • Laravel 연관성: Intervention/Image 등 GD 기반 이미지 처리 패키지를 사용하고, 사용자 업로드 폰트를 직접 처리하는 경우 잠재적 위험 존재

CVE-2022-37454 — Hash: hash_update() 버퍼 오버플로우

  • 영향 범위: hash_update() 함수에 매우 긴 문자열 파라미터를 전달할 때 버퍼 오버플로우 발생
  • 위험도: 공격자가 임의 코드 실행(RCE)을 유도할 수 있는 잠재적 고위험 취약점
  • Laravel 연관성: Laravel의 Hash 파사드는 내부적으로 bcrypt/argon2를 사용하지만, hash(), hash_hmac() 등 PHP 내장 해시 함수를 직접 사용하는 커스텀 코드나 패키지는 점검 필요

PHP 7.4 EOL(지원 종료) 공식 확인

PHP 7.4는 이 7.4.33 릴리스를 마지막으로 2022년 11월 28일부로 모든 공식 지원(보안 패치 포함)이 종료되었습니다. 이후 발견되는 신규 취약점에 대해서는 어떠한 공식 패치도 제공되지 않습니다.

버전보안 지원 종료
PHP 7.42022년 11월 28일 (종료됨)
PHP 8.02023년 11월 26일 (종료됨)
PHP 8.12025년 12월 31일 (활성)
PHP 8.22026년 12월 31일 (활성)
PHP 8.32027년 12월 31일 (활성)

Laravel 버전별 PHP 호환성 참고

  • Laravel 9.x: PHP 8.0 이상 필요 (2023년 2월 EOL)
  • Laravel 10.x: PHP 8.1 이상 필요
  • Laravel 11.x: PHP 8.2 이상 필요

PHP 7.4를 현재도 운영 중이라면, 지원되는 Laravel 버전으로의 업그레이드 역시 병행해야 합니다.


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

보안 긴급도: 🔴 높음

CVE-2022-37454(hash_update() 버퍼 오버플로우)는 이론적으로 RCE로 이어질 수 있는 취약점입니다. PHP 7.4가 이미 EOL 상태이므로 이후 추가 발견될 취약점은 패치 없이 방치됩니다. PHP 7.4 운영 환경은 즉시 업그레이드가 필요합니다.

호환성 및 마이그레이션 부담

  • PHP 8.1 또는 8.2로의 업그레이드: PHP 8.0에서 제거된 기능(예: 각종 deprecated 함수, create_function(), each() 등)이 있으므로 코드 검토 필요
  • Laravel 버전 동반 업그레이드: PHP 7.4에서 실행 중인 Laravel 6.x, 7.x, 8.x는 모두 이미 EOL 상태. PHP 버전 업그레이드와 함께 Laravel 10.x 또는 11.x로의 마이그레이션을 함께 계획해야 함
  • Composer 패키지 의존성: PHP 8.x에서 동작하지 않는 구버전 패키지가 존재할 수 있으므로 composer update 전 의존성 전체 검토 필요

로컬 개발 환경별 조치

Laravel Valet (macOS)

# Homebrew로 PHP 버전 업그레이드brew upgrade phpbrew install php@8.2# Valet에서 PHP 버전 전환valet use php@8.2# 특정 프로젝트만 버전 지정valet isolate php@8.2

Laravel Sail (Docker)

docker-compose.yml 또는 docker/8.2/Dockerfile에서 PHP 버전을 명시적으로 변경합니다.

# docker-compose.yml 예시 services: laravel.test: build: context: ./vendor/laravel/sail/runtimes/8.2 # 기존 7.4 또는 8.0에서 변경

프로젝트의 sail:publish 를 재실행하여 최신 Sail 런타임 스텁을 갱신하는 것을 권장합니다.

php artisan sail:publish

일반 Docker 환경

# 기존 FROM php:7.4-fpm # 변경 FROM php:8.2-fpm

베이스 이미지 변경 후 PHP 확장 설치 스크립트(docker-php-ext-install) 및 pecl 설치 항목도 PHP 8.x 호환 여부를 재확인해야 합니다.

한국 호스팅 환경 유의사항

카페24, 가비아, NHN Cloud, Naver Cloud Platform 등 국내 호스팅/클라우드 서비스를 이용 중인 경우, 관리 콘솔에서 PHP 버전 변경이 가능한지 확인하고, 공유 호스팅 환경이라면 PHP-FPM 풀 설정 변경이 가능한 서비스로 이전을 검토하십시오.


실무 체크리스트

로컬 개발 환경

  • php -v 명령으로 현재 PHP 버전 확인
  • PHP 7.4 사용 중이라면 PHP 8.1 또는 8.2로 업그레이드 계획 수립
  • composer.jsonrequire.php 버전 제약 조건 확인 및 수정
  • php -r "phpinfo();" 또는 php -m으로 확장 모듈 목록 확인 후 PHP 8.x에서 사용 가능 여부 검토
  • vendor/bin/phpstan analyse 또는 vendor/bin/rector process --dry-run으로 PHP 8.x 비호환 코드 사전 탐지

스테이징 환경

  • PHP 8.1 또는 8.2 환경에서 composer install 정상 완료 여부 확인
  • php artisan migrate --pretend로 마이그레이션 오류 사전 점검
  • 주요 기능 엔드-투-엔드 테스트 실행 (php artisan test)
  • imageloadfont()를 사용하는 커스텀 이미지 처리 로직이 있다면 입력 파일 검증 코드 추가 여부 확인
  • hash_update()를 직접 사용하는 코드 전수 검색: grep -r "hash_update" app/ config/ routes/
  • Deprecated 함수 사용 여부 확인: PHP 8.x에서 E_DEPRECATED 경고가 오류로 처리되는 경우 대비

운영(Production) 환경

  • 즉시: PHP 7.4.33이 아닌 구버전(7.4.32 이하)을 사용 중이라면 7.4.33으로 업데이트 (단기 임시 조치)
  • 단기(1개월 내): PHP 8.1 또는 8.2 마이그레이션 일정 확정
  • 점검: 웹 방화벽(WAF) 또는 IPS에서 imageloadfont()hash_update() 악용 시도 탐지 규칙 추가 가능 여부 확인
  • 서버 OS 패키지 매니저를 통한 PHP 업데이트: apt update && apt upgrade php7.4 (Ubuntu/Debian) 또는 yum update php74 (CentOS/RHEL)
  • PHP 버전 업그레이드 후 php-fpm 서비스 재시작 및 opcache_reset() 호출 또는 Opcache 웜업 확인
  • 업그레이드 후 APM(Application Performance Monitoring) 에러율 및 응답시간 모니터링 강화 (최소 24시간)
  • php.inierror_reporting 설정이 E_ALL을 포함하는 경우 PHP 8.x에서 새로운 경고가 노출될 수 있으므로 로그 모니터링 강화

⚠️ 중요: PHP 7.4는 EOL 상태입니다. CVE-2022-37454는 버퍼 오버플로우로 인한 잠재적 RCE 취약점이므로, 7.4.33 패치가 사실상 마지막 공식 보호막입니다. 운영 환경의 PHP 8.x 업그레이드를 최우선 과제로 처리하십시오.