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

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

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

발행: 2026년 8월 6일

## 요약

요약

PHP 7.3.31은 2021년 9월 23일에 릴리스된 보안 패치 버전으로, ZipArchive::extractTo()의 경로 탈출(Path Traversal) 취약점(버그 #81420)을 수정합니다. PHP 7.3 브랜치는 현재 공식 지원이 종료된 EOL(End of Life) 버전이므로, 해당 버전을 사용 중인 한국 Laravel 개발자라면 즉각적인 보안 패치 적용과 함께 상위 버전으로의 마이그레이션을 최우선으로 고려해야 합니다.


핵심 내용

🔐 보안 수정: ZipArchive 경로 탈출 취약점 (버그 #81420)

이번 7.3.31의 핵심 수정은 ZipArchive::extractTo() 메서드에서 발생하는 경로 탈출(Path Traversal) 취약점입니다.

  • 문제: 악의적으로 조작된 ZIP 파일 내에 ../ 형태의 상대 경로가 포함된 파일명이 존재할 경우, 지정한 추출 대상 디렉터리 외부로 파일이 추출될 수 있습니다.
  • 영향 범위: 사용자로부터 ZIP 파일을 업로드받아 서버에서 ZipArchive::extractTo()로 처리하는 모든 Laravel 애플리케이션이 잠재적 위험에 노출됩니다.
  • 수정자: cmb (PHP 코어 기여자)

⚠️ 주의: Laravel의 파일 업로드 처리 로직, 배포 자동화 스크립트, 또는 아카이브 관리 기능에서 ZIP 추출을 사용하고 있다면 즉시 점검이 필요합니다.

📋 최근 누적된 주요 보안 패치 이력

7.3.31 이전 버전에서도 다수의 CVE 지정 보안 취약점이 수정되었습니다. 현재 7.3.31 미만 버전을 사용 중이라면 아래 취약점에 모두 노출된 상태입니다.

릴리스 버전CVE영향 대상설명
7.3.30-Phar심볼릭 링크 탈출을 통한 PHAR 아카이브 생성 (버그 #81211)
7.3.29CVE-2021-21705Core (Filter)FILTER_VALIDATE_URL을 통한 SSRF 우회
7.3.29CVE-2021-21704PDO_Firebird스택 버퍼 오버플로우 및 복수의 SIGSEGV
7.3.27CVE-2021-21702SOAPSoapClient Null 역참조
7.3.26CVE-2020-7071Standard (Filter)FILTER_VALIDATE_URL 유효하지 않은 userinfo 허용
7.3.23CVE-2020-7070Core인코딩된 쿠키명을 통한 __Host- 쿠키 위조
7.3.23CVE-2020-7069OpenSSLAES-CCM 암호화 잘못된 암호문/태그 생성
7.3.21CVE-2020-7068Phar해제된 해시 키 사용(Use-after-free)
7.3.18CVE-2019-11048Core긴 파일명/변수명으로 인한 OOM 및 임시파일 미삭제

⏰ PHP 7.3 EOL 상태 확인

PHP 공식 지원 정책에 따르면 PHP 7.3은 2021년 12월 6일부로 모든 보안 지원이 종료됩니다. 7.3.31은 EOL 직전에 릴리스된 버전으로, 이후 발견되는 신규 취약점에 대해서는 공식 보안 패치가 제공되지 않습니다.


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

Laravel 버전별 호환성

PHP 7.3을 사용하는 한국 개발자들은 주로 구형 Laravel 프로젝트를 유지보수하는 경우가 많습니다. 아래 표를 참고하여 현재 상황을 파악하세요.

Laravel 버전PHP 7.3 지원비고
Laravel 6.x (LTS)✅ 지원2022년 9월 보안 지원 종료 예정
Laravel 7.x✅ 지원이미 EOL
Laravel 8.x✅ 지원PHP 8.0+ 권장
Laravel 9.x❌ 미지원PHP 8.0 이상 필요
Laravel 10.x❌ 미지원PHP 8.1 이상 필요
Laravel 11.x❌ 미지원PHP 8.2 이상 필요

보안 위험도 평가

  • ZipArchive 사용 여부: 파일 업로드 → ZIP 압축 해제 기능을 제공하는 서비스(쇼핑몰 대량 이미지 업로드, 문서 관리 시스템, 배포 자동화 도구 등)는 긴급 패치 대상입니다.
  • SSRF 취약점(CVE-2021-21705): FILTER_VALIDATE_URL + 외부 HTTP 요청 조합을 사용하는 서비스는 내부망 접근 시도에 취약할 수 있습니다.
  • Laravel Horizon, Telescope, Octane 등 패키지 자체는 PHP 버전에 직접 종속되지 않지만, 기반 PHP 버전의 보안 취약점은 애플리케이션 전반에 영향을 줍니다.

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

Laravel Valet (macOS)

# Homebrew를 통한 PHP 업그레이드brew upgrade php# 또는 특정 버전 설치brew install php@8.2valet use php@8.2

Laravel Sail (Docker)

# docker-compose.yml 또는 .env 수정 # SAIL_PHP_VERSION 변수 확인 APP_SERVICE=laravel.test # sail/runtimes 이미지 태그를 8.2 또는 8.3으로 변경

서버 직접 운영 (Ubuntu/CentOS)

# Ubuntu - Ondrej PPA 사용sudo add-apt-repository ppa:ondrej/phpsudo apt updatesudo apt install php8.2-fpm php8.2-mbstring php8.2-xml ...# CentOS/RHEL - Remi 저장소 사용sudo dnf install php82-php-fpm php82-php-mbstring ...

AWS Elastic Beanstalk / 한국 클라우드(NCP, KT Cloud, Kakao i Cloud)

  • AMI 또는 플랫폼 버전에서 PHP 버전 옵션을 확인하고 업그레이드 계획을 수립하세요.
  • NCP(네이버 클라우드)의 경우 서버 이미지에 포함된 PHP 버전을 직접 확인 후 패키지 관리자로 업그레이드해야 합니다.

실무 체크리스트

즉시 조치 (단기)

  • 현재 PHP 버전 확인: php -v 또는 phpinfo()로 운영 서버의 PHP 버전 확인
  • ZipArchive 사용 코드 검색: 프로젝트 전체에서 ZipArchive::extractTo 사용 여부 점검
    grep -r "extractTo" --include="*.php" ./app ./routes ./config
  • FILTER_VALIDATE_URL 사용 검색: SSRF 위험 코드 점검
    grep -r "FILTER_VALIDATE_URL" --include="*.php" .
  • 현재 버전이 7.3.31 미만이라면: 가용한 가장 빠른 시간에 7.3.31로 패치 적용

단계적 마이그레이션 (중기 권장)

  • PHP 8.1 또는 8.2로의 업그레이드 계획 수립: PHP 7.3은 EOL 버전이므로 장기 운영은 보안 위험을 지속적으로 내포
  • 스테이징 환경에서 PHP 8.x 호환성 테스트: composer require 의존성 충돌 점검
    # PHP 8.2 호환성 사전 체크composer require --dry-run
  • Laravel 버전 업그레이드 검토: PHP 8.x 전환 시 Laravel 9.x/10.x/11.x 마이그레이션도 병행 검토
  • rector/rector 도구 활용: PHP 7.x → 8.x 코드 자동 마이그레이션 보조 도구로 활용 가능

운영 환경 배포

  • 배포 전 백업: PHP 업그레이드 전 DB 및 서버 스냅샷 생성
  • 무중단 배포 고려: PHP-FPM 재시작 시 서비스 중단 최소화를 위한 Blue/Green 또는 롤링 배포 적용
  • 업그레이드 후 모니터링: php -m으로 익스텐션 로드 상태 확인, 애플리케이션 에러 로그 집중 모니터링 (최소 24시간)
  • Composer 의존성 재확인: PHP 버전 변경 후 composer install 재실행 및 vendor 디렉터리 갱신
    composer install --no-dev --optimize-autoloaderphp artisan config:cachephp artisan route:cachephp artisan view:cache

편집자 검토 요청: PHP 7.3 EOL 정확한 날짜(2021년 12월 6일) 및 각 CVE의 CVSS 점수는 php.net 공식 보안 페이지와 NVD에서 최종 확인 후 보완을 권장합니다.