업데이트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.4 | 2021-11-28 | 2022-11-28 |
| 8.0 | 2022-11-26 | 2023-11-26 |
| 8.1 | 2023-11-25 | 2025-12-31 |
| 8.2 | 2024-12-31 | 2026-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 restartLaravel 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 마이그레이션 공수는 프로젝트의 패키지 의존성에 따라 크게 달라질 수 있으므로, 본 체크리스트는 기술 검토 후 팀 상황에 맞게 조정하시기 바랍니다.