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

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

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

발행: 2026년 8월 6일

## 요약

요약

PHP 7.3.5는 2019년 5월 2일 릴리스된 보안 패치 및 버그 수정 버전입니다. EXIF 확장의 힙 버퍼 오버플로우(CVE-2019-11036)를 포함한 심각한 보안 취약점이 수정되었으며, MySQLi 메모리 누수, PDO 클론 비활성화 등 실무에서 자주 마주칠 수 있는 버그들도 함께 해결되었습니다. PHP 7.3 계열을 사용 중인 Laravel 프로젝트라면 즉시 업그레이드를 권장합니다.


핵심 내용

🔐 보안 취약점 수정 (즉시 대응 필요)

CVE-2019-11036 — EXIF 힙 버퍼 오버플로우 (PHP 7.3.5)

  • exif_process_IFD_TAG() 함수 내부의 _estrndup 호출 경로에서 힙 버퍼 오버플로우 발생
  • 악의적으로 조작된 이미지 파일을 업로드 허용하는 서비스에서 원격 공격자가 메모리를 손상시킬 수 있음
  • 사용자 이미지 업로드 기능이 있는 Laravel 애플리케이션은 직접적인 영향권

CVE-2019-11034 / CVE-2019-11035 — EXIF 힙 버퍼 오버플로우 (PHP 7.3.4에서 수정)

  • php_ifd_get32s()exif_iif_add_value()에서 각각 힙 버퍼 오버플로우 발생
  • 7.3.5 이전 버전에서 3개의 EXIF 관련 CVE가 누적 — 단순 업데이트 한 번으로 모두 해결 가능

⚠️ Laravel에서의 영향: Intervention Image, spatie/laravel-medialibrary 등 이미지 처리 패키지를 사용하고 PHP의 exif_read_data() 또는 관련 함수를 직간접적으로 호출하는 경우 취약합니다.


🐛 실무 관련 주요 버그 수정

MySQLi 메모리 누수 수정 (Bug #77773)

Fixed bug #77773 (Unbuffered queries leak memory - MySQLi / mysqlnd).
  • 버퍼링되지 않은 쿼리 실행 시 메모리 누수 발생
  • Laravel의 DB::select(), Eloquent raw 쿼리 등 대량 레코드를 처리하는 배치 작업이나 큰 결과셋을 다루는 코드에서 장시간 실행 시 메모리 사용량이 비정상적으로 증가할 수 있었던 문제 해결

PDO 객체 클론 비활성화 (Bug #77849)

Fixed bug #77849 (Disable cloning of PDO handle/connection objects).
  • PDO 커넥션 객체를 clone 할 경우 예기치 않은 동작 발생 가능성 차단
  • Laravel의 데이터베이스 연결 관리는 내부적으로 PDO를 사용하므로, 커스텀 서비스 프로바이더에서 PDO 객체를 직접 다루는 경우 주의 필요

ArrayIterator 반복 중단 버그 (Bug #77903)

Fixed bug #77903 (ArrayIterator stops iterating after offsetSet call).
  • offsetSet() 호출 후 ArrayIterator 반복이 멈추는 버그 수정
  • Laravel의 컬렉션(Collection)은 내부적으로 ArrayAccess를 구현하지만, ArrayIterator를 직접 사용하는 커스텀 이터레이터 구현에서 재현 가능했던 문제

mbstring 정규식 스택 제한 구현 (FR #72777)

Implemented FR #72777 (Implement regex stack limits for mbregex functions).
  • mb_ereg* 계열 함수에서 복잡한 정규식 패턴 처리 시 스택 오버플로우가 발생하는 취약점 완화
  • Laravel Validator에서 mb_ 함수 기반 검증 규칙을 사용하는 경우 안정성 향상

MySQL LOCAL INFILE 기본값 비활성화 (PHP 7.3.3에서 수정)

Disabled LOCAL INFILE by default, can be enabled using php.ini directive
mysqli.allow_local_infile for mysqli, or PDO::MYSQL_ATTR_LOCAL_INFILE attribute for pdo_mysql.
  • 보안 강화를 위해 LOCAL INFILE 기능이 기본적으로 비활성화됨
  • 데이터 임포트 스크립트나 마이그레이션에서 LOAD DATA LOCAL INFILE을 사용하는 경우 별도 활성화 필요

PCRE Bug 수정 (Bug #77827)

Fixed bug #77827 (preg_match does not ignore \r in regex flags).
  • preg_match() 사용 시 정규식 플래그에 \r(캐리지 리턴)이 포함될 경우 무시하지 않던 버그 수정
  • Windows 환경에서 작성된 정규식을 Linux 서버에 배포할 때 발생 가능한 미묘한 차이 해소

📋 기타 개선 사항

영역내용
LiteSpeed SAPI7.3.1로 업데이트, 프로세스 관리 개선, litespeed_finish_request() 신규 API 추가
IntlIntlDateFormatter::create()에서 $locale = null 시 strict mode 오류 수정
ReflectionReflectionClass::getMethods(null) 미동작 버그 수정
Standardextract() 세그멘테이션 폴트, parse_ini_string 크래시 등 다수 수정
MailTSendMail()의 잠재적 힙 손상 수정

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

호환성

  • PHP 7.3.x 계열 내 마이너 업데이트이므로 Laravel 5.7 / 5.8 / 6.x 모두 추가 코드 변경 없이 업그레이드 가능
  • composer.jsonrequire 블록에 PHP 버전 제약이 ^7.3으로 설정된 경우 영향 없음
  • LOCAL INFILE 비활성화(7.3.3~)는 기존 데이터 임포트 로직 검토 필요 — 특히 레거시 마이그레이션 스크립트 확인 권장

보안 긴급도

  • 긴급(High): 사용자 파일 업로드 기능이 있는 서비스는 CVE-2019-11034, CVE-2019-11035, CVE-2019-11036 모두 영향권 → 즉시 업그레이드 권장
  • php_exif 확장을 명시적으로 비활성화(extension=exif 제거)해도 일시적 완화는 가능하나, 이미지 메타데이터 처리가 필요한 서비스에서는 현실적이지 않음

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

Laravel Valet (macOS)

# Homebrew를 통한 PHP 업그레이드brew upgrade php@7.3valet restartphp -v  # 7.3.5 

Laravel Sail (Docker)

# docker-compose.yml 또는 Dockerfile에서 PHP 이미지 확인 # php:7.3.5-fpm 또는 php:7.3-fpm 이미지 재빌드 필요
sail downsail build --no-cachesail up -d

Docker 직접 운영

# php:7.3-fpm 이미지 재pulldocker pull php:7.3-fpm# 또는 고정 태그 사용 중이라면 php:7.3.5-fpm 으로 변경

💡 프로덕션 Dockerfile에 php:7.3-fpm처럼 floating 태그를 사용 중이라면, 재빌드만으로 최신 패치 반영 가능. 단, 재현성 보장을 위해 CI/CD에서는 php:7.3.5-fpm 고정 태그 사용 권장.


실무 체크리스트

로컬 환경

  • php -v 명령으로 현재 PHP 버전 확인
  • EXIF 확장 활성화 여부 확인: php -m | grep exif
  • 프로젝트에서 exif_read_data(), exif_imagetype() 직접 호출 또는 이미지 처리 패키지 사용 여부 점검
  • LOCAL INFILE을 사용하는 마이그레이션/시더 코드 존재 여부 확인
  • ArrayIterator를 직접 구현한 커스텀 컬렉션 클래스 여부 확인

스테이징 환경

  • PHP 7.3.5로 업그레이드 후 전체 테스트 스위트(php artisan test) 실행
  • 이미지 업로드 기능 E2E 테스트 (EXIF 파싱 포함)
  • 대용량 쿼리 메모리 사용량 모니터링 (MySQLi 메모리 누수 수정 검증)
  • PDO 객체를 직접 clone하는 코드 있다면 동작 검증
  • mb_ereg* 함수 사용 부분 정규식 동작 확인
  • LOCAL INFILE 사용 로직이 있다면 php.inimysqli.allow_local_infile = On 추가 및 동작 확인

프로덕션 배포

  • 배포 전 PHP 버전 업그레이드 계획 수립 (점진적 롤아웃 권장)
  • 배포 후 APM(New Relic, Datadog 등) 또는 Laravel Telescope에서 메모리 사용량 추이 확인
  • 보안 취약점 공시(CVE) 대응 완료 여부 내부 보안팀 공유
  • 업그레이드 완료 후 phpinfo() 출력 또는 php -v로 버전 재확인
  • Docker/Kubernetes 환경: 이미지 태그 변경 및 롤링 업데이트 적용
  • opcache.validate_timestamps가 비활성화된 프로덕션 환경에서는 OPcache 재시작(php artisan opcache:clear 또는 서버 재시작) 필수

작성 기준일: 이 문서는 PHP 7.3.5 공식 릴리스 노트(2019-05-02) 및 누적 변경사항(7.3.1~7.3.5)을 기반으로 작성된 초안입니다. 실제 운영 환경 적용 전 공식 PHP 릴리스 페이지(https://www.php.net/releases/7_3_5.php)를 반드시 참고하시기 바랍니다.