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-11048 | Core | 긴 파일명 또는 긴 변수명이 multipart/form-data로 전송될 때 OOM 및 임시 파일 미삭제 |
| CVE-2020-7067 | Standard | urldecode()에서 Out-of-Bounds Read |
| CVE-2020-7066 | Standard | get_headers()가 null 바이트 이후를 무음으로 잘라냄 |
| CVE-2020-7065 | MBstring | mb_strtolower(UTF-32LE)에서 스택 버퍼 오버플로우 |
| CVE-2020-7064 | EXIF | 초기화되지 않은 값 사용(use-of-uninitialized-value) |
| CVE-2020-7063 | Phar | buildFromIterator()로 추가된 파일에 전체 권한 부여 |
| CVE-2020-7062 | Session | 세션 업로드 진행 중 Null Pointer Dereference |
| CVE-2020-7061 | Phar | phar_extract_file에서 힙 버퍼 오버플로우 |
| CVE-2020-7060 | Mbstring | mbfl_filt_conv_big5_wchar에서 전역 버퍼 오버플로우 |
| CVE-2020-7059 | Standard | php_strip_tags_ex에서 Out-of-Bounds Read |
| CVE-2019-11050 | EXIF | exif 파싱 중 use-after-free |
| CVE-2019-11049 | Core | mail()이 refcount==1인 문자열을 이중 해제 |
| CVE-2019-11047 | EXIF | 힙 버퍼 오버플로우 READ |
| CVE-2019-11046 | Bcmath | bc_shift_addsub에서 버퍼 언더플로우 |
| CVE-2019-11045 | Core | DirectoryIterator가 null 바이트 이후를 무음으로 잘라냄 |
| CVE-2019-11044 | Core | link()가 Windows에서 null 바이트 이후를 잘라냄 |
| CVE-2019-11043 | FPM | fpm_main.c의 env_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.3후valet 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 이상으로의 마이그레이션 계획도 병행 검토하시기 바랍니다.