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

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

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

발행: 2026년 8월 6일

## 요약

요약

PHP 7.3.19는 2020년 6월 11일에 릴리스된 버전으로, 단독 버그 수정 외에도 7.3.13부터 누적된 다수의 보안 취약점 패치를 포함합니다. CVE 지정 취약점이 여러 건 포함되어 있어 해당 버전대를 운영 중인 Laravel 애플리케이션은 즉각적인 업그레이드가 필요합니다. PHP 7.3 브랜치를 사용하는 팀은 이 릴리스를 통해 축적된 안정성 및 보안 개선 사항을 일괄 적용할 수 있습니다.


핵심 내용

🔐 보안 패치 (CVE 포함) — 최우선 검토 필요

7.3.19 릴리스에는 7.3.19 자체 수정 외에, 이전 버전들에서 수정된 CVE 지정 취약점이 누적 포함됩니다.

CVE 번호영향 모듈설명수정 버전
CVE-2019-11048Core긴 파일명/변수로 인한 OOM 및 임시 파일 미정리 (multipart/form-data)7.3.18
CVE-2020-7067Standardurldecode()의 OOB(Out-of-Bounds) 읽기7.3.17
CVE-2020-7064EXIF초기화되지 않은 값 사용 (Use-of-uninitialized-value)7.3.16
CVE-2020-7065MBStringmb_strtolower() (UTF-32LE) 스택 버퍼 오버플로우7.3.16
CVE-2020-7066Standardget_headers()의 Null 바이트 이후 묵시적 잘림7.3.16
CVE-2020-7063Phartar에 추가된 파일의 권한 전체 허용 문제7.3.15
CVE-2020-7061Pharphar_extract_file의 힙 버퍼 오버플로우7.3.15
CVE-2020-7062Session세션 업로드 진행 중 Null 포인터 역참조7.3.15
CVE-2020-7060Mbstringmbfl_filt_conv_big5_wchar의 글로벌 버퍼 오버플로우7.3.14
CVE-2020-7059Standardphp_strip_tags_ex의 OOB 읽기7.3.14
CVE-2019-11046Bcmathbc_shift_addsub의 버퍼 언더플로우7.3.13
CVE-2019-11044Corelink()의 Windows Null 바이트 묵시적 잘림7.3.13
CVE-2019-11045CoreDirectoryIterator의 Null 바이트 묵시적 잘림7.3.13
CVE-2019-11049Coremail() 이중 해제 가능성7.3.13
CVE-2019-11050EXIFUse-after-free (exif 파싱)7.3.13
CVE-2019-11047EXIF힙 버퍼 오버플로우 읽기7.3.13

⚠️ 특히 파일 업로드, 멀티바이트 문자열, EXIF 처리, Phar 아카이브를 사용하는 Laravel 애플리케이션은 위험 노출 가능성이 높습니다.


🐛 7.3.19 자체 버그 수정 (보안 외)

  • Core: Windows 환경에서 Private SHM이 실제로 private하지 않던 문제 수정 (버그 #79566), .user.ini 상속 문제 수정 (버그 #79489)
  • GD: GIF 헤더가 잘못 작성되던 문제 수정 (버그 #79615) — 이미지 처리 기능 사용 시 영향
  • MySQLnd: 특정 로케일에서 MySQL FLOAT 타입이 정수로 잘못 변환되던 문제 수정 (버그 #79596) — 수치 데이터 처리 시 주의
  • Opcache: 특정 optimization_level 설정 시 PHP 크래시 (버그 #79535), on/off 불리언 설정값 무시 문제 (버그 #79588)
  • Standard: dns_get_record() DNS_ALL 플래그 실패 수정 (버그 #79561)

🔧 이전 버전 주요 버그 수정 (누적 포함, 보안 외 선별)

  • Opcache: 특정 스크립트에서 100% CPU 점유 문제 (7.3.17, 버그 #79412) — 운영 서버 성능에 직결
  • Session: session_create_id() 활성 세션에서 실패 (7.3.17, 버그 #79413)
  • Date: DST(일광절약시간) 전환 시 DateTime 시간 오류 (7.3.17, 버그 #79396)
  • PCRE: preg_replace/preg_replace_callback 유니코드 메모리 손상 (7.3.16, 버그 #79188)
  • MySQLnd: MYSQLI_BOTH 사용 시 잘못된 컬럼 인덱스 반환 (7.3.15, 버그 #79084)
  • OpenSSL: 메모리 누수 (7.3.15), TLS 요청이 다른 암호화 연결에 영향을 주는 문제 (7.3.12)
  • Phar: 중복 메타데이터 메모리 누수 (7.3.18)

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

Laravel 버전별 호환성

PHP 7.3.x는 Laravel 6.x(LTS), 7.x 를 지원하는 버전입니다. 해당 Laravel 버전을 유지보수 중인 프로젝트라면 이 업그레이드가 직접적으로 적용됩니다.

참고: PHP 7.3은 2021년 12월에 공식 EOL(End of Life)이 도래합니다. 이번 패치를 적용하더라도 PHP 8.x 마이그레이션 계획을 병행하는 것을 권장합니다.

영향도가 높은 사용 패턴

사용 패턴관련 CVE/버그위험도
파일 업로드 처리 (multipart/form-data)CVE-2019-11048🔴 높음
한국어/다국어 문자열 처리 (mb_* 함수)CVE-2020-7060, CVE-2020-7065🔴 높음
EXIF 데이터 처리 (이미지 갤러리 등)CVE-2020-7064, CVE-2019-11047, CVE-2019-11050🔴 높음
Phar 패키지 사용 (Composer 캐시 포함)CVE-2020-7063, CVE-2020-7061🟠 중간
세션 업로드 진행 추적CVE-2020-7062🟠 중간
strip_tags() 로 HTML 화이트리스트 처리버그 #78814🟡 낮음~중간

한국 환경 특이사항

  • MBString 취약점 (CVE-2020-7060, CVE-2020-7065): 한국어(EUC-KR, UTF-8) 처리가 많은 레거시 Laravel 프로젝트는 mb_strtolower(), mb_convert_encoding() 등 MBString 함수를 광범위하게 사용합니다. 이 취약점의 영향을 받을 가능성이 타 언어권 대비 높습니다.
  • MySQLnd FLOAT 로케일 버그: ko_KR 로케일 설정 서버에서 소수점 구분자 처리 차이로 인해 MySQL FLOAT 값이 정수로 잘못 변환될 수 있는 버그가 수정되었습니다 (버그 #79596). 재무/통계 데이터를 다루는 서비스는 반드시 확인하세요.

로컬 개발 환경 (Valet, Sail, Docker)

  • Laravel Valet (macOS): valet use php@7.3 환경에서 Homebrew를 통해 brew upgrade php@7.3으로 업데이트합니다. Valet 서비스를 재시작해야 합니다 (valet restart).
  • Laravel Sail: docker-compose.yml에서 사용 중인 PHP 이미지 태그를 확인하세요. php:7.3-fpm 또는 laravelsail/php73 이미지를 사용 중이라면 docker pull로 최신 이미지를 받아야 합니다.
  • Docker 직접 운영: 베이스 이미지를 명시적 태그(7.3.18, 7.3.19)로 고정한 경우, DockerfileFROM 라인을 php:7.3.19-fpm으로 업데이트하고 재빌드가 필요합니다.
  • 공유 호스팅/cPanel: 호스팅 제공업체의 PHP 버전 선택 패널에서 7.3.19 이상이 제공되는지 확인하고, 미제공 시 업데이트를 요청하거나 호스팅 이전을 검토하세요.

실무 체크리스트

로컬 개발 환경

  • 현재 PHP 버전 확인: php -v
  • Homebrew(macOS): brew update && brew upgrade php@7.3
  • apt(Ubuntu/Debian): sudo apt-get update && sudo apt-get install --only-upgrade php7.3
  • Docker: docker pull php:7.3.19-fpm (또는 해당 태그) 후 컨테이너 재빌드
  • 업그레이드 후 PHP 버전 재확인: php -vPHP 7.3.19 표시 여부 확인
  • php -m으로 주요 모듈 (mbstring, opcache, pdo_mysql 등) 로드 확인

스테이징 환경

  • PHP 업그레이드 후 php -i | grep -E "(opcache|mbstring|mysqlnd)" 설정값 확인
  • Opcache 관련 버그 수정으로 인해 opcache 캐시를 초기화하고 애플리케이션 동작 테스트: php artisan opcache:clear 또는 서버 재시작
  • 파일 업로드 기능 전체 흐름 테스트 (CVE-2019-11048 관련)
  • 한국어 문자열 처리 로직 단위 테스트 실행 (mb_* 함수 관련 CVE)
  • 이미지 EXIF 처리 기능이 있다면 다양한 이미지 파일로 테스트
  • MySQL FLOAT 컬럼을 사용하는 데이터 조회/저장 로직 검증
  • strip_tags() 를 사용하는 입력값 필터링 로직의 화이트리스트 우회 가능성 재검토 (버그 #78814)
  • dns_get_record() 또는 세션 관련 기능 사용 시 해당 기능 통합 테스트 실행

운영 환경 (프로덕션)

  • 배포 전 스테이징 테스트 완료 확인
  • 배포 시간: 트래픽이 적은 시간대 선택
  • PHP-FPM 사용 시 업그레이드 후 재시작: sudo systemctl restart php7.3-fpm
  • Nginx/Apache 웹서버 재시작 또는 reload 여부 확인
  • Opcache 캐시 초기화: 배포 스크립트에 opcache_reset() 호출 또는 PHP-FPM 재시작 포함
  • 배포 후 애플리케이션 에러 로그 즉시 모니터링 (5~10분간 집중 확인)
  • APM(New Relic, Datadog 등) 또는 Sentry에서 에러율 급증 여부 확인
  • 롤백 계획: 이전 PHP 버전 패키지 또는 Docker 이미지 태그 준비

장기 계획

  • PHP 7.3 EOL(2021년 12월) 도래 전 PHP 8.0 또는 8.1 마이그레이션 로드맵 수립
  • Laravel 버전이 6.x 또는 7.x라면 Laravel 9.x(PHP 8.0+) 업그레이드 계획 검토
  • composer.json"php": "^7.3" 제약 조건 검토 및 업데이트 계획 포함