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.4 | 2022년 11월 28일 (종료됨) |
| PHP 8.0 | 2023년 11월 26일 (종료됨) |
| PHP 8.1 | 2025년 12월 31일 (활성) |
| PHP 8.2 | 2026년 12월 31일 (활성) |
| PHP 8.3 | 2027년 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.2Laravel 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.json의require.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.ini의error_reporting설정이E_ALL을 포함하는 경우 PHP 8.x에서 새로운 경고가 노출될 수 있으므로 로그 모니터링 강화
⚠️ 중요: PHP 7.4는 EOL 상태입니다. CVE-2022-37454는 버퍼 오버플로우로 인한 잠재적 RCE 취약점이므로, 7.4.33 패치가 사실상 마지막 공식 보호막입니다. 운영 환경의 PHP 8.x 업그레이드를 최우선 과제로 처리하십시오.