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

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

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

발행: 2026년 8월 6일

## 요약

요약

PHP 7.3.18은 2020년 5월 14일 릴리스된 보안 패치 버전으로, multipart/form-data 처리 시 메모리 고갈(OOM)을 유발할 수 있는 CVE-2019-11048를 포함한 다수의 보안 취약점을 수정합니다. 이 버전은 단독 릴리스가 아니라 7.3.13부터 누적된 수정 사항을 포함하며, 프로덕션 환경에서 즉시 업그레이드를 검토해야 합니다. Laravel 6.x LTS를 사용 중인 팀이라면 특히 이 업데이트의 영향을 면밀히 확인할 필요가 있습니다.


핵심 내용

🔐 보안 취약점 (CVE) 요약

이번 7.3.18 및 이전 마이너 릴리스에 걸쳐 수정된 CVE 목록은 다음과 같습니다:

CVE영향 컴포넌트설명
CVE-2019-11048Core긴 파일명 또는 긴 변수명이 multipart/form-data로 전송될 때 OOM 및 임시 파일 미삭제
CVE-2020-7067Standardurldecode()에서 Out-of-Bounds Read
CVE-2020-7066Standardget_headers()가 null 바이트 이후를 무음으로 잘라냄
CVE-2020-7065MBstringmb_strtolower(UTF-32LE)에서 스택 버퍼 오버플로우
CVE-2020-7064EXIF초기화되지 않은 값 사용(use-of-uninitialized-value)
CVE-2020-7063PharbuildFromIterator()로 추가된 파일에 전체 권한 부여
CVE-2020-7062Session세션 업로드 진행 중 Null Pointer Dereference
CVE-2020-7061Pharphar_extract_file에서 힙 버퍼 오버플로우
CVE-2020-7060Mbstringmbfl_filt_conv_big5_wchar에서 전역 버퍼 오버플로우
CVE-2020-7059Standardphp_strip_tags_ex에서 Out-of-Bounds Read
CVE-2019-11050EXIFexif 파싱 중 use-after-free
CVE-2019-11049Coremail()이 refcount==1인 문자열을 이중 해제
CVE-2019-11047EXIF힙 버퍼 오버플로우 READ
CVE-2019-11046Bcmathbc_shift_addsub에서 버퍼 언더플로우
CVE-2019-11045CoreDirectoryIterator가 null 바이트 이후를 무음으로 잘라냄
CVE-2019-11044Corelink()가 Windows에서 null 바이트 이후를 잘라냄
CVE-2019-11043FPMfpm_main.cenv_path_info 언더플로우로 RCE 가능

⚠️ CVE-2019-11043 (RCE) 은 7.3.11에서 패치된 매우 심각한 취약점입니다. PHP-FPM + Nginx 조합에서 원격 코드 실행이 가능한 취약점으로, 7.3.18로 업그레이드하지 않은 서버는 즉시 패치가 필요합니다.


🐛 주요 버그 수정 항목 분석

Core / 런타임

  • NULL-pointer dereference 크래시 수정 (#79434) — 상수 처리 중 발생하는 비정상 종료 버그
  • 객체를 배열로 캐스팅 시 의도치 않은 참조(reference) 생성 수정 (#79477) — Laravel Eloquent 모델을 배열로 변환하는 코드에서 미묘한 버그를 유발할 수 있었음

FCGI

  • .user.ini 검색이 루트 디렉터리까지 올라가는 문제 수정 (#79491) — 보안 및 설정 격리 관점에서 중요한 수정

MBString

  • mb_chr()에서 내부 인코딩이 지원되지 않을 때 Segfault 수정 (#79441)
  • 한국어 개발자 직접 영향: EUC-KR, CP949, UTF-8 등 한국어 인코딩 처리 시 안정성 향상

OpenSSL

  • 1초 미만의 타임아웃 설정 시 stream_socket_client()에서 알 수 없는 오류가 간헐적으로 발생하던 문제 수정 (#79497) — 외부 API 연동이 많은 Laravel 프로젝트에서 재현하기 어려운 간헐적 오류의 원인이 될 수 있었음

OPcache

  • 특정 스크립트에서 OPcache가 CPU 100%를 유발하는 문제 수정 (7.3.17, #79412) — 성능에 직접적인 영향

Session

  • session_create_id()가 활성 세션에서 실패하는 문제 수정 (7.3.17, #79413)

SimpleXML

  • 7.4.5와 7.4.4 사이의 동일 XML에 대한 객체 불일치 문제 수정 — 버전 간 일관성 회복

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

Laravel 버전 호환성

PHP 7.3.x는 주로 Laravel 6.x (LTS)Laravel 7.x와 함께 사용됩니다. 2020년 기준 많은 국내 프로젝트가 Laravel 6 LTS를 운영 중이었으며, 해당 조합에서 이번 패치는 필수적입니다.

Laravel 6.x (LTS) → PHP 7.2 ~ 7.4 지원 ✅
Laravel 7.x       → PHP 7.2.5 ~ 7.4 지원 ✅

한국어 인코딩 관련 영향

  • MBString 관련 수정 사항(CVE-2020-7065, #79441, #79154)은 한국어 멀티바이트 문자열 처리에 직접적인 영향을 미칩니다.
  • EUC-KR 또는 CP949 인코딩을 여전히 사용하는 레거시 시스템과 PHP 7.3을 연동 중이라면 업그레이드 후 인코딩 변환 동작을 반드시 검증하세요.

파일 업로드 처리 (CVE-2019-11048)

Laravel 프로젝트에서 Request::file(), $request->files, 또는 Storage::put()을 통해 파일 업로드를 처리하는 경우, 악의적으로 조작된 긴 파일명이 포함된 multipart/form-data 요청으로 서버 메모리를 소진시킬 수 있습니다. 공개 업로드 엔드포인트를 운영 중인 서비스는 즉각적인 패치가 필요합니다.

PHP-FPM + Nginx 환경 (CVE-2019-11043)

국내 Laravel 배포 환경의 상당수가 Nginx + PHP-FPM 조합을 사용합니다. CVE-2019-11043은 이 조합에서 원격 코드 실행이 가능한 취약점으로, 7.3.11 이전 버전을 사용 중이라면 최우선으로 패치해야 합니다.

취약한 Nginx 설정 예시:

# 이 설정이 있는 경우 취약할 수 있음 location ~ [^/]\.php(/|$) { fastcgi_split_path_info ^(.+?\.php)(/.*)$; fastcgi_param PATH_INFO $fastcgi_path_info; # ... }

Laravel Sail / Valet 사용자

  • Laravel Sail: Docker 이미지 기반이므로 docker pull 또는 Dockerfile 내 PHP 버전을 7.3.18 이상으로 명시적으로 고정하세요. 공식 php:7.3-fpm 이미지가 업데이트되었는지 확인 후 재빌드를 권장합니다.
  • Laravel Valet (macOS): Homebrew를 통해 PHP를 관리하는 경우 brew upgrade php@7.3valet restart를 실행하세요.

실무 체크리스트

로컬 개발 환경

  • 현재 PHP 버전 확인: php -v
  • PHP 7.3.18 미만이라면 업그레이드 실행
    # Homebrew (macOS) brew upgrade php@7.3 # Ubuntu/Debian (ondrej/php PPA) sudo apt-get update && sudo apt-get upgrade php7.3
  • 업그레이드 후 버전 재확인: php -v
  • Laravel 테스트 스위트 실행: php artisan test
  • 한국어 문자열 처리 코드(mb_* 함수) 동작 확인

스테이징 환경

  • PHP 7.3.18 패치 적용 및 서비스 재시작
    sudo service php7.3-fpm restart# 또는sudo systemctl restart php7.3-fpm
  • 파일 업로드 기능 통합 테스트 (특히 긴 파일명 케이스)
  • Session 기반 기능 테스트 (session_create_id 관련)
  • multipart/form-data 요청 처리 확인
  • OPcache 활성화 상태에서 성능 이상 없는지 확인
  • 외부 API 연동 시 SSL 타임아웃 관련 간헐적 오류 해소 여부 확인

프로덕션 환경

  • CVE-2019-11043 (RCE) 즉시 패치 — PHP-FPM + Nginx 환경에서 최우선
  • 배포 전 스테이징에서 전체 회귀 테스트 완료 확인
  • 블루/그린 배포 또는 롤링 업데이트로 무중단 패치 적용
  • 패치 적용 후 PHP-FPM 프로세스 정상 구동 확인
    sudo systemctl status php7.3-fpmphp-fpm7.3 -t  #    
  • 애플리케이션 에러 로그(storage/logs/laravel.log) 이상 여부 모니터링 (최소 30분)
  • 서버 메모리 사용량 모니터링 (CVE-2019-11048 패치 효과 확인)
  • Docker 환경이라면 이미지 재빌드 및 재배포
    FROM php:7.3.18-fpm # 버전 명시적 고정 권장
  • 패치 적용 일시 및 버전 변경 이력 운영 문서에 기록

보안 추가 조치 (권장)

  • 공개 파일 업로드 엔드포인트에 파일명 길이 및 크기 유효성 검사 추가
    // Laravel FormRequest 예시 public function rules(): array { return [ 'file' => ['required', 'file', 'max:10240'], // 10MB 제한 ]; }
  • Nginx 설정에서 PATH_INFO 관련 설정 재검토 (CVE-2019-11043 완전 차단)
  • WAF 또는 요청 크기 제한 설정 검토 (client_max_body_size, post_max_size)

편집자 주: 이 문서는 PHP 7.3.18 공식 릴리스 노트를 기반으로 작성된 초안입니다. CVE 심각도 등급(CVSS score)은 공식 NVD 데이터베이스를 추가로 참조하여 검증 후 게재를 권장합니다. PHP 7.3 브랜치는 현재 EOL(End of Life) 상태이므로, 가능하다면 PHP 8.1 이상으로의 마이그레이션 계획도 병행 검토하시기 바랍니다.