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

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

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

발행: 2026년 8월 6일

## 요약

요약

PHP 7.3.15는 2020년 2월 20일에 릴리스된 보안 패치 버전으로, 3개의 CVE 취약점(CVE-2020-7061, CVE-2020-7062, CVE-2020-7063)을 포함한 다수의 버그 수정이 포함되어 있습니다. 특히 Phar, Session, OpenSSL 등 실무에서 자주 사용되는 핵심 컴포넌트에서 메모리 손상 및 권한 관련 취약점이 패치되었습니다. 현재 PHP 7.3 계열을 사용 중인 Laravel 프로젝트라면 즉시 업그레이드를 검토해야 합니다.


핵심 내용

🔴 보안 취약점 (CVE) — 즉시 주의 필요

이번 7.3.15 릴리스에서 수정된 CVE는 다음 3가지입니다.

CVE-2020-7063 — Phar 파일 권한 문제

  • 버그 번호: #79082
  • 설명: Phar::buildFromIterator()로 tar 아카이브에 파일을 추가할 때 모든 파일에 **전체 접근 권한(all-access permissions)**이 설정되는 문제
  • 실무 영향: Laravel 패키지 배포 시 Phar 아카이브를 직접 생성하거나, Composer 의존성 관련 커스텀 빌드 스크립트를 운영하는 환경에서 의도치 않게 과도한 파일 권한이 부여될 수 있음

CVE-2020-7062 — Session Upload Progress에서 Null Pointer Dereference

  • 버그 번호: #79221
  • 설명: PHP 세션 업로드 진행 상태(session.upload_progress) 기능에서 Null Pointer Dereference 발생 가능
  • 실무 영향: session.upload_progress.enabled = On 상태에서 파일 업로드 기능이 있는 Laravel 애플리케이션(예: 미디어 업로드, 문서 관리 시스템)은 서버 크래시 위험에 노출될 수 있음. php.ini 설정 확인 필수

CVE-2020-7061 — Phar 추출 시 Heap Buffer Overflow

  • 버그 번호: #79171
  • 설명: phar_extract_file() 내부에서 heap-buffer-overflow 발생
  • 실무 영향: 악의적으로 조작된 Phar 파일을 처리하는 경우 공격자가 메모리를 오염시킬 수 있음. 외부에서 업로드된 Phar 파일을 처리하는 워크플로우에서 특히 위험

🟠 주요 버그 수정 (보안 외)

Core

  • htmlspecialchars()에서 특정 charset 처리 시 메모리 손상 발생하던 버그 수정 (#71876)
  • 이미 소멸된 backtrace 인자에 접근 시 발생하던 Use-after-free 수정 (#76047) — 디버깅 도구나 예외 핸들러를 커스터마이징한 환경에서 안정성 향상

CURL

  • curl_multi_add_handle()에서 발생 가능한 Use-after-free 수정 (#79078) — Laravel의 Http::pool() 등 동시 HTTP 요청 처리 시 안정성에 영향

MySQLnd

  • MYSQLI_BOTH 사용 시 잘못된 컬럼 인덱스를 반환하던 버그 수정 (#79084) — mysqli_fetch_array()를 직접 사용하는 레거시 코드나 특정 DB 드라이버 레이어에서 데이터 정합성 문제가 해소됨

OpenSSL

  • OpenSSL 메모리 누수 수정 (#79145) — 장기 실행 프로세스(큐 워커, 데몬)에서 HTTPS 통신이 많을수록 메모리 점진적 증가 현상이 완화됨

MBString

  • mb_convert_encoding()$from_encoding 파라미터를 의도치 않게 변경하던 버그 수정 (#79154) — 한국어 인코딩(EUC-KR, CP949 ↔ UTF-8) 변환 로직이 있는 레거시 애플리케이션에서 사이드 이펙트 해소 가능성 있음

SPL

  • SplDoublyLinkedList 반복자에서 heap use-after-free 발생하던 버그 수정 (#79151) — SplStack, SplQueue를 자료구조로 활용하는 커스텀 서비스 컨테이너 구현체에 영향

📋 7.3.14 및 이전 버전의 누적 보안 패치 (참고)

7.3.15 이전 버전에도 아래와 같은 보안 관련 수정이 포함되어 있었습니다. 만약 7.3.14 미만 버전을 사용 중이라면 아래 CVE들도 함께 해소됩니다.

CVE버전영역설명
CVE-2020-70607.3.14MBStringmbfl_filt_conv_big5_wchar에서 global buffer-overflow
CVE-2020-70597.3.14Standardphp_strip_tags_ex에서 OOB(Out-of-Bounds) 읽기
CVE-2019-110437.3.11FPMfpm_main.cenv_path_info 언더플로우로 인한 원격 코드 실행(RCE)
CVE-2019-110467.3.13Bcmathbuffer underflow in bc_shift_addsub
CVE-2019-11044/457.3.13CoreWindows에서 null 바이트 이후 경로 절단
CVE-2019-110497.3.13Coremail() double-free
CVE-2019-11050/477.3.13EXIFUse-after-free 및 Heap-buffer-overflow
CVE-2019-132247.3.9MBString/OnigurumaOniguruma 6.9.3 보안 패치
CVE-2019-11041/427.3.8EXIFHeap-buffer-overflow

⚠️ **특히 CVE-2019-11043(FPM RCE)**은 Nginx + PHP-FPM 조합 환경에서 원격 코드 실행이 가능한 심각한 취약점입니다. 7.3.10 이하 버전 사용자는 즉각적인 업그레이드가 필요합니다.


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

Laravel 버전 호환성

PHP 7.3.15는 기존 PHP 7.3.x 계열과 완전 호환됩니다. Laravel 6.x(LTS) 및 Laravel 7.x 프로젝트에서 별도의 코드 변경 없이 PHP 바이너리만 교체하면 됩니다.

Laravel 버전PHP 7.3 지원 여부비고
Laravel 6.x (LTS)✅ 지원2022년 9월까지 보안 지원 (당시 기준)
Laravel 7.x✅ 지원PHP 7.2.5 이상 요구
Laravel 8.x✅ 지원PHP 7.3 이상 요구

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

Laravel Valet (macOS)

# Homebrew를 통한 PHP 업그레이드brew upgrade php@7.3# Valet 재시작valet restartvalet use php@7.3# 버전 확인php -v

Laravel Sail (Docker)

docker-compose.yml 또는 Sail 설정에서 PHP 이미지 태그를 확인하세요. 공식 laravelsail/php73-composer 이미지를 사용하는 경우 최신 이미지를 풀(pull)해야 합니다.

# 이미지 재빌드./vendor/bin/sail build --no-cache# 또는 직접 Docker 이미지 갱신docker pull laravelsail/php73-composer:latest./vendor/bin/sail up -d

일반 Docker 환경

# Dockerfile 예시 — 7.3.15 이상 명시 FROM php:7.3.15-fpm-alpine

특정 마이너 버전을 고정하지 않고 php:7.3-fpm 태그를 사용한다면, Docker Hub에서 자동으로 최신 7.3.x 이미지를 가져옵니다. 다만 CI/CD 환경에서는 재현 가능성을 위해 버전을 명시하는 것을 권장합니다.

Ubuntu/Debian 서버 (AWS EC2, NCP 등)

# ondrej/php PPA 사용 시sudo apt updatesudo apt install --only-upgrade php7.3# 버전 확인php7.3 -v# PHP-FPM 재시작sudo systemctl restart php7.3-fpm

CentOS/RHEL (Remi 저장소 사용 시)

sudo yum update php73-php# 또는sudo dnf update php73-phpsudo systemctl restart php-fpm

한국어 처리 관련 특이사항

이번 7.3.15에서 mb_convert_encoding()$from_encoding 파라미터 변조 버그가 수정되었습니다. EUC-KR 또는 CP949로 저장된 레거시 데이터를 UTF-8로 변환하는 코드가 있다면 업그레이드 후 변환 결과를 재검증하는 것을 권장합니다. 기존에 버그로 인한 우회 코드가 있었다면 제거 여부를 검토하세요.

또한 7.3.13에서 Oniguruma 6.9.4로 번들 업그레이드가 이루어졌습니다. mb_ereg* 계열 함수를 사용하는 한글 정규식 처리 로직도 안정성이 개선됩니다.

보안 위험도 평가

취약점위험도서비스 영향 범위
CVE-2019-11043 (FPM RCE)🔴 심각Nginx + FPM 조합 전체
CVE-2020-7061 (Phar heap-overflow)🟠 높음Phar 처리 애플리케이션
CVE-2020-7062 (Session null dereference)🟠 높음파일 업로드 기능 전반
CVE-2020-7063 (Phar 권한 오설정)🟡 중간Phar 생성 워크플로우

실무 체크리스트

로컬 환경

  • php -v 명령으로 현재 PHP 버전 확인
  • Valet, Sail, Docker 등 사용 환경에 맞는 업그레이드 명령 실행
  • 업그레이드 후 php -v로 7.3.15 적용 확인
  • composer install 재실행하여 의존성 재검증
  • php artisan --version 및 기본 라우트 동작 확인
  • mb_convert_encoding() 활용 코드가 있다면 한국어 인코딩 변환 결과 테스트
  • session.upload_progress.enabled 설정 값 확인 (php.ini 또는 .env)

스테이징 환경

  • PHP 7.3.15 패키지 업그레이드 적용
  • PHP-FPM 프로세스 재시작 후 phpinfo() 또는 php -v 확인
  • 파일 업로드 기능 E2E 테스트 실행 (CVE-2020-7062 관련)
  • HTTPS API 호출이 많은 기능 테스트 (OpenSSL 메모리 누수 수정 검증)
  • Http::pool() 또는 동시 cURL 요청 로직 테스트 (CVE-2020-7078 관련)
  • Phar 관련 빌드 스크립트가 있다면 생성된 아카이브의 파일 권한 확인
  • 기존 PHPUnit 테스트 스위트 전체 실행 및 통과 확인
  • 에러 로그(storage/logs/laravel.log) 이상 여부 모니터링

프로덕션 환경

  • 점검 시간 또는 배포 윈도우 확보 (PHP-FPM 재시작 시 순간적인 요청 처리 중단 발생 가능)
  • 블루-그린 배포 또는 롤링 업데이트 방식으로 PHP 교체 적용
  • 로드밸런서 헬스체크 엔드포인트로 정상 응답 확인
  • PHP-FPM 재시작: sudo systemctl restart php7.3-fpm
  • 애플리케이션 모니터링(New Relic, Datadog, Sentry 등)에서 에러율 증가 여부 확인
  • OPcache 캐시 갱신: php artisan opcache:clear 또는 FPM 재시작으로 처리
  • session.upload_progress 관련 설정이 프로덕션 php.ini에 적절히 구성되어 있는지 최종 확인
  • CVE-2019-11043 대응 여부 확인 — Nginx fastcgi_split_path_info 설정을 사용하는 경우 서버 설정도 함께 재검토할 것
  • 배포 완료 후 최소 30분간 서버 메모리 사용량 추이 모니터링 (OpenSSL 메모리 누수 수정 효과 확인)

📌 참고: PHP 7.3은 현재 공식 지원이 종료된 버전입니다. 장기적으로는 PHP 8.1 이상으로의 마이그레이션을 계획하는 것을 권장하며, 보안 유지보수 측면에서 Laravel 10.x 이상과 PHP 8.1+로의 전환 로드맵을 수립하시기 바랍니다.