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

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

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

발행: 2026년 8월 6일

## 요약

요약

PHP 7.4.30은 2022년 6월 9일에 출시된 보안 릴리스로, mysqlnd의 패스워드 버퍼 오버플로우(CVE-2022-31626)와 pgsql 확장의 초기화되지 않은 배열 접근(CVE-2022-31625) 두 가지 취약점을 수정합니다. PHP 7.4 브랜치는 보안 수정만 제공하는 유지보수 단계에 진입해 있으며, 이 릴리스가 실질적인 마지막 보안 패치에 해당합니다. MySQL 또는 PostgreSQL을 사용하는 Laravel 프로젝트라면 즉시 업그레이드를 검토해야 합니다.


핵심 내용

수정된 CVE 상세 분석

CVE-2022-31626 — mysqlnd 패스워드 버퍼 오버플로우

  • 영향 컴포넌트: mysqlnd (PHP 내장 MySQL 드라이버), PDO MySQL
  • 취약점 유형: 버퍼 오버플로우 (Buffer Overflow)
  • 위험도: 원격 MySQL 서버가 악의적으로 조작된 응답을 반환할 경우, 클라이언트 측 PHP 프로세스에서 임의 코드 실행 가능성 존재
  • 실무 영향: Laravel의 기본 DB 드라이버인 pdo_mysql / mysqli가 내부적으로 mysqlnd를 사용하므로, MySQL/MariaDB를 사용하는 모든 Laravel 프로젝트가 잠재적 영향권에 포함됨
  • 발견자: c dot fol at ambionics dot io (외부 보안 연구자)

CVE-2022-31625 — pg_query_params() 초기화되지 않은 배열

  • 영향 컴포넌트: pgsql 확장
  • 취약점 유형: 초기화되지 않은 메모리 참조 (Uninitialized Array)
  • 실무 영향: Laravel에서 PostgreSQL을 드라이버로 사용하는 경우(pgsql 또는 pdo_pgsql) pg_query_params() 함수 호출 시 비정상 동작 또는 정보 노출 위험
  • Laravel 연관성: Eloquent ORM이 내부적으로 PDO를 통해 prepared statement를 처리할 때 해당 함수가 호출될 수 있음

PHP 7.4 지원 주기 참고

주의: PHP 7.4의 공식 보안 지원은 2022년 11월 28일에 종료되었습니다. 7.4.30은 사실상 마지막 보안 릴리스이며, 이후 신규 CVE는 패치되지 않습니다.

PHP 버전활성 지원 종료보안 지원 종료
7.42021-11-282022-11-28
8.02022-11-262023-11-26
8.12023-11-252025-12-31
8.22024-12-312026-12-31

PHP 7.4를 계속 운영하는 것은 이미 EOL(End of Life) 구간에 진입한 상태임을 인지해야 합니다.


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

호환성 및 마이그레이션

  • Laravel 호환성: Laravel 8.x는 PHP 7.3~8.1을 공식 지원하며, 7.4.30으로의 패치 업그레이드는 코드 변경 없이 적용 가능합니다. 그러나 Laravel 9.x 이상은 PHP 8.0을 최소 요구하므로, 7.4 잔류 시 Laravel 버전 업그레이드 경로도 차단됩니다.
  • 마이그레이션 긴급도: 단순 7.4.x → 7.4.30 패치는 즉시 적용 권장. PHP 8.1 또는 8.2로의 메이저 업그레이드는 별도 테스트 계획 수립 필요.

로컬 개발 환경별 적용 방법

Laravel Valet (macOS)

# Homebrew를 통한 PHP 업데이트brew upgrade php@7.4# Valet PHP 버전 재연결valet use php@7.4valet restart

Laravel Sail (Docker)

  • docker-compose.yml에서 사용 중인 PHP 이미지 태그 확인
  • sail build --no-cache 후 재기동으로 최신 패키지 반영
  • 공식 sail 이미지는 laravelsail/php74 기반이므로, 베이스 이미지 업스트림 업데이트 여부 확인 필요
# docker-compose.yml 예시 services: laravel.test: image: 'sail-8.1/app' # PHP 8.1로 업그레이드 권장

커스텀 Docker 환경

# 기존 FROM php:7.4.29-fpm # 변경 FROM php:7.4.30-fpm

보안 긴급도

항목평가
MySQL 사용 환경🔴 즉시 패치 필요
PostgreSQL 사용 환경🔴 즉시 패치 필요
SQLite 전용 환경🟡 낮음 (해당 CVE 미적용)
PHP 7.4 계속 유지🔴 EOL로 인한 지속적 위험

실무 체크리스트

로컬 개발 환경

  • php -v 명령으로 현재 PHP 버전 확인
  • Homebrew 사용 시 brew upgrade php@7.4 실행
  • phpinfo() 또는 php -i | grep mysqlnd 로 mysqlnd 버전 확인
  • Valet 사용 시 valet restart 실행 후 버전 재확인

스테이징 환경

  • 서버 패키지 매니저로 PHP 업데이트 (apt upgrade php7.4 또는 yum update php)
  • php-fpm 재시작 후 Laravel 기본 동작 확인 (로그인, DB 쿼리, 마이그레이션)
  • php artisan migrate:status 로 DB 연결 정상 여부 검증
  • MySQL/PostgreSQL 연결 통합 테스트 실행
  • 애플리케이션 에러 로그(storage/logs/laravel.log) 이상 없음 확인

프로덕션 환경

  • 점검 시간 또는 낮은 트래픽 시간대로 업그레이드 일정 수립
  • 업그레이드 전 전체 스냅샷 또는 이미지 백업
  • Blue-Green 배포 또는 카나리 배포 전략으로 위험 최소화
  • 업그레이드 후 PHP-FPM 프로세스 재시작: sudo systemctl restart php7.4-fpm
  • php -v 로 7.4.30 적용 확인
  • APM(New Relic, Datadog 등) 또는 Sentry 에러율 모니터링

중장기 권고사항

  • PHP 8.1 또는 8.2 마이그레이션 로드맵 수립 (7.4는 이미 EOL)
  • Laravel 버전도 함께 검토 (Laravel 10.x → PHP 8.1 이상 필요)
  • composer require 시 PHP 버전 제약 조건 확인: composer check-platform-reqs
  • CI/CD 파이프라인의 PHP 버전 매트릭스를 8.1, 8.2로 점진 전환

⚠️ 드래프트 주의사항: CVE의 CVSS 점수 및 정확한 익스플로잇 조건은 NVD(nvd.nist.gov)에서 추가 확인을 권장합니다. PHP 8.x 마이그레이션 공수는 프로젝트의 패키지 의존성에 따라 크게 달라질 수 있으므로, 본 체크리스트는 기술 검토 후 팀 상황에 맞게 조정하시기 바랍니다.