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

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

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

발행: 2026년 8월 6일

## 요약

요약

PHP 7.3.16은 2020년 3월 19일 릴리스된 보안 패치 버전으로, EXIF, MBString, Standard 라이브러리에서 CVE로 등록된 3개의 보안 취약점을 포함한 다수의 버그를 수정합니다. Laravel 애플리케이션에서 파일 업로드, 멀티바이트 문자열 처리, HTTP 요청을 사용하는 경우 직접적인 영향을 받을 수 있으므로 즉각적인 업그레이드를 권장합니다.


핵심 내용

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

PHP 7.3.16에는 다음 3개의 CVE가 패치되었습니다.

CVE-2020-7064 — EXIF 미초기화 값 사용 (Use-of-uninitialized-value)

  • 영향 컴포넌트: ext/exif
  • 버그 번호: #79282
  • 설명: EXIF 파싱 과정에서 초기화되지 않은 메모리 값을 읽는 취약점입니다. 악의적으로 조작된 이미지 파일을 서버에 업로드하거나 처리할 때 정보 노출로 이어질 수 있습니다.
  • Laravel 영향: exif_read_data() 또는 이를 내부적으로 호출하는 이미지 처리 패키지(Intervention Image 등)를 사용하는 경우 해당됩니다.

CVE-2020-7065 — MBString 스택 버퍼 오버플로우

  • 영향 컴포넌트: ext/mbstring
  • 버그 번호: #79371
  • 설명: mb_strtolower() 함수에서 UTF-32LE 인코딩 문자열 처리 시 스택 버퍼 오버플로우가 발생합니다. 원격 코드 실행(RCE) 가능성을 배제할 수 없는 심각한 취약점입니다.
  • Laravel 영향: 한국어를 포함한 멀티바이트 문자열을 mb_strtolower(), Str::lower() 등으로 처리하는 로직에 영향을 미칩니다. Laravel의 Str 헬퍼는 내부적으로 mbstring 함수를 활용하므로 주의가 필요합니다.

CVE-2020-7066 — get_headers() 널 바이트 이후 묵시적 절단

  • 영향 컴포넌트: ext/standard
  • 버그 번호: #79329
  • 설명: get_headers() 함수가 URL에 포함된 널 바이트(\0) 이후의 문자열을 조용히 무시(truncate)합니다. 공격자가 URL을 조작하여 의도치 않은 호스트에 요청을 보내는 우회 공격에 악용될 수 있습니다.
  • Laravel 영향: HTTP 클라이언트 관련 로직에서 외부 입력을 URL로 사용하는 경우 영향을 받을 수 있습니다.

🟡 주요 버그 수정

컴포넌트버그 번호설명
Core#63206restore_error_handler()가 이전 에러 마스크를 올바르게 복원하지 못하는 문제 수정
DOM#77569DomImplementation에서 쓰기 접근 위반(Write Access Violation) 수정
DOM#79271DOMDocumentType::$childNodes가 NULL을 반환하는 문제 수정
PCRE#79188preg_replace/preg_replace_callback에서 유니코드 처리 시 메모리 손상 수정
Standard#79265fopen()을 이용한 HTTP 요청에서 Host 헤더가 잘못 주입되는 문제 수정
Standard#79254getenv() 인수 없이 호출 시 환경 변수 변경사항이 반영되지 않는 문제 수정
COM#79332, #79333php_istreams 미해제 및 com_print_typeinfo() 메모리 누수 수정
PDO_ODBC#79038PDOStatement::nextRowset() 컬럼 값 누수 수정
SQLite3#79294SQLite3Stmt::reset() 이후 columnType() 실패 문제 수정

📋 이전 릴리스의 주요 보안 패치 요약 (참고)

이번 7.3.16 이전 릴리스에도 다수의 CVE가 포함되어 있었습니다. 아직 업그레이드하지 않은 경우 아래 취약점들도 함께 해소됩니다.

  • CVE-2020-7063 (7.3.15): Phar tar 파일 권한 설정 오류 — Phar::buildFromIterator()로 추가된 파일에 전체 접근 권한이 부여되는 문제
  • CVE-2020-7062 (7.3.15): Session 업로드 진행 중 Null Pointer Dereference
  • CVE-2020-7061 (7.3.15): Phar 압축 해제 시 힙 버퍼 오버플로우
  • CVE-2020-7060 (7.3.14): MBString mbfl_filt_conv_big5_wchar 전역 버퍼 오버플로우
  • CVE-2020-7059 (7.3.14): php_strip_tags_ex에서 범위 이탈 읽기(OOB Read)
  • CVE-2019-11043 (7.3.11): PHP-FPM fpm_main.cenv_path_info 언더플로우 → 원격 코드 실행(RCE) 가능성

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

멀티바이트 문자열 처리 (CVE-2020-7065)

한국어 서비스 특성상 UTF-8 및 멀티바이트 문자열 처리가 빈번합니다. Laravel의 Str::lower(), Str::upper(), Str::slug() 등은 내부적으로 mb_* 계열 함수를 호출합니다. UTF-32LE 인코딩이 아닌 UTF-8이 주로 사용되더라도, 외부 입력 데이터의 인코딩을 보장할 수 없는 환경이라면 즉시 업그레이드해야 합니다.

이미지 업로드 기능 (CVE-2020-7064)

한국 서비스에서 흔히 사용하는 프로필 사진, 상품 이미지 업로드 기능에서 exif_read_data()를 직접 또는 간접적으로 호출하는 경우가 많습니다. Intervention Image, Spatie Media Library 등을 사용 중이라면 취약점 노출 여부를 반드시 확인하세요.

Laravel Valet (macOS 개발 환경)

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

⚠️ Homebrew의 php@7.3 포뮬라가 7.3.16으로 업데이트되었는지 먼저 확인하세요(brew info php@7.3).

Laravel Sail / Docker 환경

공식 PHP Docker 이미지(php:7.3-fpm)의 7.3.16 태그 또는 그 이상 버전 사용 여부를 확인합니다.

# 현재 컨테이너 PHP 버전 확인 docker exec <container_name> php -v # docker-compose.yml의 이미지 태그를 최신으로 업데이트 후 docker-compose pull docker-compose up -d --build

호환성

  • PHP 7.3.x → 7.3.16: 하위 호환성 유지. 함수 시그니처나 동작 방식 변경 없음. 버그 수정 및 보안 패치만 포함되므로 업그레이드 리스크는 낮습니다.
  • Laravel 6.x (LTS), Laravel 7.x 모두 PHP 7.3을 지원하므로 추가적인 프레임워크 변경은 불필요합니다.

실무 체크리스트

로컬 개발 환경

  • php -v 명령으로 현재 PHP 버전 확인
  • Homebrew(brew upgrade php@7.3) 또는 패키지 매니저를 통해 7.3.16으로 업그레이드
  • Laravel Valet 사용 시 valet restart 실행
  • Docker/Sail 사용 시 베이스 이미지 태그 업데이트 후 컨테이너 재빌드

스테이징 환경

  • PHP 버전 업그레이드 후 전체 테스트 스위트(php artisan test) 실행
  • 이미지 업로드/처리 기능 동작 확인
  • 한국어 문자열 처리 로직(회원가입, 검색, 슬러그 생성 등) 동작 확인
  • preg_replace(), preg_replace_callback() 관련 로직 회귀 테스트

프로덕션 환경

  • 서버 OS 패키지 매니저로 PHP 업그레이드
    # Ubuntu/Debian (ondrej/php PPA 사용 시)sudo apt-get updatesudo apt-get upgrade php7.3# CentOS/RHEL (Remi 저장소 사용 시)sudo yum update php73
  • PHP-FPM 재시작
    sudo systemctl restart php7.3-fpm
  • OPcache 초기화 확인 (재시작 시 자동 초기화)
  • 업그레이드 후 php -v 및 애플리케이션 헬스 체크 엔드포인트 확인
  • 에러 로그(storage/logs/laravel.log, PHP-FPM 에러 로그) 이상 여부 모니터링 (최소 30분)
  • EXIF 처리, MBString, HTTP 요청 관련 기능 스모크 테스트 실행

보안 검토 (권장)

  • 애플리케이션 내 exif_read_data() 직접 호출 코드 확인
  • mb_strtolower() 등 mbstring 함수에 외부 입력이 직접 전달되는 경우 입력값 인코딩 검증 로직 추가 검토
  • get_headers() 사용 시 URL 파라미터 유효성 검사 여부 재확인
  • Phar 기반 패키지 배포 환경이라면 CVE-2020-7063, CVE-2020-7061 영향 범위 검토

편집자 주: 이 문서는 초안입니다. PHP 7.3 브랜치는 현재 보안 수정만 제공되는 상태이므로, 장기적으로는 PHP 8.x로의 마이그레이션 계획을 수립하시기를 권장합니다. PHP 7.3의 공식 지원 종료(EOL) 일정도 함께 확인하세요.