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

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

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

발행: 2026년 8월 6일

## 요약

요약

PHP 7.3.12는 2019년 11월 21일 릴리스된 보안 및 버그 수정 업데이트입니다. Core, OpCache, OpenSSL, Date, Sockets 등 다양한 영역에서 메모리 손상, 세그폴트, TLS 관련 보안 취약점이 수정되었으며, 이전 버전(7.3.11 포함)에서 발견된 심각한 원격 코드 실행(RCE) 취약점(CVE-2019-11043)도 누적 포함되어 있습니다. Laravel 애플리케이션을 PHP 7.3.x 계열로 운영 중이라면 즉시 업그레이드를 강력히 권장합니다.


핵심 내용

🔴 보안 취약점 (즉시 대응 필요)

PHP 7.3.12는 단독 보안 패치 외에도, 7.3.11에서 수정된 CVE-2019-11043을 포함합니다. 이 취약점은 PHP-FPM + Nginx 환경에서 원격 코드 실행(RCE)이 가능한 심각도 높은 취약점으로, 공개 익스플로잇 코드가 존재합니다.

CVE영향 버전수정 버전설명
CVE-2019-110437.3.11 미만7.3.11+PHP-FPM env_path_info 언더플로우로 인한 RCE
CVE-2019-132247.3.9 미만7.3.9+Oniguruma 6.9.3 CVE 수정 (MBString)
CVE-2019-110427.3.8 미만7.3.8+EXIF heap-buffer-overflow
CVE-2019-110417.3.8 미만7.3.8+EXIF heap-buffer-overflow
CVE-2019-110407.3.6 미만7.3.6+EXIF heap-buffer-overflow
CVE-2019-110397.3.6 미만7.3.6+Iconv 정수 오버플로우로 인한 OOB 읽기
CVE-2019-110387.3.6 미만7.3.6+GD 미초기화 읽기
CVE-2019-110367.3.5 미만7.3.5+EXIF heap-buffer-overflow

⚠️ PHP 7.3.11 이하를 운영 중인 서버는 CVE-2019-11043에 실제로 노출된 상태입니다. 공개 PoC가 존재하므로 즉각적인 패치가 필요합니다.


🟠 7.3.12 신규 버그 수정 상세 분석

Core

  • Bug #78658: Closure::bindTo() 사용 시 메모리 손상 → Laravel의 Container 바인딩, 미들웨어 클로저 등에서 잠재적으로 영향 가능
  • Bug #78752: GC(가비지 컬렉터)가 Generator 스택 프레임 해제 중 트리거될 때 세그폴트 → Laravel의 LazyCollection이나 Generator 기반 청크 처리에서 간헐적 크래시 원인이 될 수 있음
  • Bug #78689: Closure::fromCallable([Closure, '__invoke']) 미처리 → 일부 이벤트 리스너나 커스텀 callable 등록 방식에서 영향 가능
  • Bug #78656: Parse 오류가 최고 로그 레벨로 분류되는 문제 → Sentry, 로그 모니터링 도구에서 불필요한 알림이 발생했을 가능성

OpCache

  • Bug #78654: 비ASCII 문자가 포함된 파일의 OpCache 체크섬 오계산 → 한국어 주석이나 한글 문자열이 포함된 PHP 파일에서 OpCache가 올바르게 동작하지 않았을 수 있음 (한국 개발자 직접 영향)
  • Bug #78747: OpCache가 커스텀 확장의 반환 결과를 손상시키는 문제

OpenSSL

  • Bug #78775: HTTP 요청의 TLS 문제가 다른 암호화 연결에 영향 → 외부 HTTPS API 호출(결제 게이트웨이, 소셜 로그인 등)이 포함된 서비스에서 간헐적 TLS 오류의 원인이었을 수 있음

Date

  • Bug #70153: \DateInterval 역직렬화 오류 → 세션이나 캐시에 DateInterval 객체를 저장하는 경우 영향
  • Bug #78751: DatePeriod 직렬화 시 DateTimeImmutable이 변환되는 문제 → 불변 날짜 객체를 사용하는 코드에서 직렬화/역직렬화 시 예상치 못한 타입 변환 발생

Sockets

  • Bug #78665: 멀티캐스트 사용 시 메모리 누수 → 장기 실행 큐 워커나 소켓 기반 서비스에서 점진적 메모리 증가의 원인이 될 수 있음

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

호환성 및 긴급도

영역영향긴급도
PHP-FPM + Nginx 운영 환경CVE-2019-11043 RCE 취약점 직접 노출🔴 즉시 패치
한글 주석/문자열이 포함된 PHP 파일OpCache 체크섬 오계산으로 캐시 오동작🟠 높음
외부 HTTPS API 연동TLS 오류로 인한 결제·OAuth 장애 가능🟠 높음
LazyCollection / Generator 사용GC 트리거 시 세그폴트🟡 중간
이미지 업로드 처리 (EXIF)힙 버퍼 오버플로우 (7.3.8 이전)🔴 즉시 패치
날짜/시간 직렬화 캐시DateInterval, DatePeriod 역직렬화 오류🟡 중간

도구별 고려사항

Laravel Valet (macOS)

  • Valet은 Homebrew를 통해 PHP를 관리합니다. brew upgrade php@7.3 명령으로 업그레이드할 수 있으나, 2019년 릴리스 버전이므로 Homebrew에서 해당 버전을 직접 지원하지 않을 수 있습니다. 현재 PHP 7.3 EOL(2021년 12월) 이후이므로, 가능하면 PHP 8.x로 마이그레이션을 검토하세요.

Laravel Sail (Docker)

  • docker-compose.yml의 PHP 이미지 태그를 7.3.12 이상으로 명시적으로 지정하거나, docker pulldocker-compose build --no-cache를 실행하세요.
  • 공식 php:7.3-fpm 이미지가 최신 패치를 반영하고 있는지 Docker Hub에서 확인하세요.

운영 서버 (Ubuntu/CentOS)

  • Ubuntu: apt update && apt upgrade php7.3
  • CentOS/RHEL: yum update php 또는 Remi Repository 사용 시 yum update php73
  • 패치 후 PHP-FPM 재시작 필수: systemctl restart php7.3-fpm

⚠️ 주의: PHP 7.3은 2021년 12월에 공식 지원이 종료(EOL)되었습니다. 이 문서는 해당 버전을 아직 운영 중인 팀을 위한 긴급 대응 가이드이며, PHP 8.1 이상으로의 업그레이드 계획 수립을 강력히 권장합니다.


실무 체크리스트

🖥️ 로컬 환경

  • php -v 명령으로 현재 PHP 버전 확인
  • PHP 7.3.12 미만이라면 즉시 업그레이드 진행
  • Valet 사용 시: valet stop → brew upgrade → valet start 순서로 진행
  • Sail 사용 시: docker-compose down && docker-compose build --no-cache && docker-compose up -d
  • 한글 주석이 많은 프로젝트라면 OpCache 캐시 초기화: php artisan opcache:clear 또는 PHP-FPM 재시작

🧪 스테이징 환경

  • PHP 버전 업그레이드 후 전체 테스트 스위트 실행: php artisan test
  • LazyCollection이나 Generator를 사용하는 커맨드/Job 집중 테스트
  • 외부 HTTPS API 연동 엔드포인트 동작 확인 (결제, OAuth, 외부 서비스)
  • 날짜 직렬화를 사용하는 캐시 키 초기화 후 재테스트: php artisan cache:clear
  • 이미지 업로드 EXIF 처리 기능 테스트
  • OpCache 설정 확인: php -i | grep opcache

🚀 운영(Production) 환경

  • 배포 전 반드시 스테이징에서 검증 완료
  • 유지보수 모드 활성화: php artisan down
  • 시스템 패키지 업그레이드:
    # Ubuntu/Debian sudo apt update && sudo apt upgrade php7.3 php7.3-fpm php7.3-cli # CentOS/RHEL (Remi) sudo yum update php73
  • PHP-FPM 재시작:
    sudo systemctl restart php7.3-fpm# 또는sudo service php7.3-fpm restart
  • 버전 확인: php -vPHP 7.3.12 출력 확인
  • OpCache 캐시 워밍업 또는 초기화
  • 유지보수 모드 해제: php artisan up
  • 배포 후 에러 로그 모니터링 (최소 30분): tail -f storage/logs/laravel.log
  • CVE-2019-11043 대응 완료 여부 확인: Nginx PATH_INFO 설정 점검
    # 취약한 설정 예시 (fastcgi_split_path_info 관련 설정 검토) # 참고: https://bugs.php.net/bug.php?id=78599

📋 장기 계획

  • PHP 7.3 EOL(2021년 12월) 대응 로드맵 수립
  • PHP 8.1 또는 8.2 업그레이드 계획 수립 및 호환성 테스트 시작
  • composer.jsonrequire.php 버전 제약 검토: "php": "^8.1" 목표 설정

📝 편집자 주: 이 문서는 드래프트입니다. CVE-2019-11043의 Nginx 설정 관련 내용은 운영 환경의 실제 Nginx 구성에 따라 추가 검토가 필요합니다. PHP 7.3은 현재 EOL 상태이므로, 독자에게 장기 마이그레이션의 필요성을 강조하는 방향으로 최종 편집을 권장합니다.