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 SAPI | 7.3.1로 업데이트, 프로세스 관리 개선, litespeed_finish_request() 신규 API 추가 |
| Intl | IntlDateFormatter::create()에서 $locale = null 시 strict mode 오류 수정 |
| Reflection | ReflectionClass::getMethods(null) 미동작 버그 수정 |
| Standard | extract() 세그멘테이션 폴트, parse_ini_string 크래시 등 다수 수정 |
TSendMail()의 잠재적 힙 손상 수정 |
한국 Laravel 개발자에게 미치는 영향
호환성
- PHP 7.3.x 계열 내 마이너 업데이트이므로 Laravel 5.7 / 5.8 / 6.x 모두 추가 코드 변경 없이 업그레이드 가능
composer.json의require블록에 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 -dDocker 직접 운영
# 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.ini에mysqli.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)를 반드시 참고하시기 바랍니다.