PHP 7.3.3 업데이트 — 한국 Laravel 개발자 영향 분석
작성: 라라벨 코리아 (초안)
발행: 2026년 8월 6일
## 요약
요약
PHP 7.3.3은 2019년 3월 7일에 릴리스된 보안 패치 버전으로, EXIF 처리 취약점, 버퍼 오버플로우, MySQL LOCAL INFILE 기본값 변경 등 다수의 보안 이슈를 포함합니다. 특히 MySQL LOCAL INFILE이 기본적으로 비활성화되는 **동작 변경(Breaking Change)**이 포함되어 있어 기존 Laravel 애플리케이션에 영향을 줄 수 있습니다. 가능한 한 빠른 업그레이드를 강력히 권장합니다.
핵심 내용
🔒 보안 취약점 수정
EXIF 모듈 — 다수의 초기화되지 않은 메모리 읽기 취약점
- #77509
exif_process_IFD_in_TIFF내 초기화되지 않은 메모리 읽기 - #77540
exif_process_SOFn내 잘못된 메모리 읽기 - #77563, #77659
exif_process_IFD_in_MAKERNOTE내 초기화되지 않은 메모리 읽기
사용자 업로드 이미지(JPEG, TIFF 등)를 처리하는 Laravel 애플리케이션에서 악의적으로 조작된 이미지 파일을 통해 메모리 정보 노출이 가능합니다.
intervention/image,spatie/laravel-medialibrary등 이미지 처리 패키지를 사용하는 서비스에서 특히 주의가 필요합니다.
Core — 버퍼 오버플로우 및 세그폴트
- #77329 지나치게 긴 오류 메시지로 인한 버퍼 오버플로우
- #77589 숫자형 섹션이 포함된
parse_ini_string호출 시 코어 덤프 발생 - #77630 장치 간
rename()호출 중 의도치 않은 파일 접근 허용 → 파일 처리 보안 취약점
PHAR — 버퍼 오버플로우
- #77396
phar_create_or_parse_filename에서 Null 포인터 역참조 - #77586
phar_tar_writeheaders_int()에서 버퍼 오버플로우
Composer 및 Laravel artisan 명령어 실행 환경에서 악성 PHAR 파일을 통한 공격 가능성이 있습니다.
Mbstring
- #77514
mb_ereg_replace()에서 후행 백슬래시로 인한 null 바이트 삽입 문제
⚠️ 동작 변경 (Breaking Change) — MySQL LOCAL INFILE 기본값 변경
MySQL: Disabled LOCAL INFILE by default
이번 릴리스에서 가장 주의해야 할 변경 사항입니다.
| 구분 | 변경 전 | 변경 후 |
|---|---|---|
mysqli | LOCAL INFILE 기본 활성화 | 기본 비활성화 |
pdo_mysql | LOCAL INFILE 기본 활성화 | 기본 비활성화 |
재활성화 방법:
php.ini에서 mysqli 사용 시:
mysqli.allow_local_infile = Onpdo_mysql 사용 시 (Laravel DB 연결 설정):
// config/database.php
'mysql' => [
// ...
'options' => [
PDO::MYSQL_ATTR_LOCAL_INFILE => true,
],
],
LOAD DATA LOCAL INFILE을 이용한 대용량 데이터 임포트나 Seeder를 운영 중인 팀은 이 변경으로 인해 즉각적인 오류가 발생할 수 있습니다.
🐛 기타 주요 버그 수정
OpenSSL
- #77390 TLS 스트림에서 단편화된 TLS 레코드로 인해
feof()가 무한 대기하는 문제 수정 → HTTPS 외부 API 호출(Http::get(), Guzzle)에서 간헐적으로 발생하던 행(hang) 현상 해결 가능
Standard
- #77612
setcookie()에서 모든 옵션을 채울 경우SameSite헤더가 잘못 설정되는 버그 수정 → CSRF 보호 관련 쿠키 설정 오작동 수정
SPL
- #77431
openFile()이 null 바이트 이후 내용을 자동으로 잘라버리는 문제 수정
한국 Laravel 개발자에게 미치는 영향
호환성 및 마이그레이션 부담
| 항목 | 영향도 | 비고 |
|---|---|---|
| MySQL LOCAL INFILE 비활성화 | 높음 | LOAD DATA INFILE 사용 시 즉시 오류 발생 |
| EXIF 취약점 | 높음 (보안) | 이미지 업로드 기능이 있는 모든 서비스 |
setcookie() SameSite 오류 수정 | 중간 | Laravel 세션·쿠키 동작 검증 필요 |
| OpenSSL TLS hang 수정 | 중간 | 외부 API 연동 서비스 안정성 향상 |
| PHAR 버퍼 오버플로우 | 중간 (보안) | Composer 사용 환경 전반 |
로컬 개발 도구별 업그레이드 방법
Laravel Valet (macOS)
# Homebrew를 통한 PHP 업그레이드brew upgrade php@7.3valet restartphp -v # 7.3.3 확인Laravel Sail (Docker)
# docker-compose.yml 또는 Dockerfile에서 PHP 이미지 태그 확인
# php:7.3-fpm 이미지를 사용하는 경우 최신 이미지 pull
docker pull php:7.3-fpm
docker-compose down && docker-compose up -d --buildUbuntu 서버 (운영 환경 — Ondřej PPA)
sudo apt updatesudo apt upgrade php7.3 php7.3-fpm php7.3-mysqlsudo systemctl restart php7.3-fpmphp -v보안 업그레이드 긴급도
이미지 업로드 기능이 있는 서비스(커머스, SNS, 파일 공유 서비스 등)는 EXIF 관련 취약점으로 인해 즉시 업그레이드를 권장합니다. 그 외 서비스도 버퍼 오버플로우 및 PHAR 취약점이 포함되어 있으므로 정기 점검 일정을 앞당기는 것을 검토하십시오.
실무 체크리스트
로컬 환경
-
php -v명령으로 현재 PHP 버전 확인 - Homebrew 또는 패키지 관리자를 통해 PHP 7.3.3으로 업그레이드
-
LOCAL INFILE관련 Seeder 또는 마이그레이션 스크립트가 있다면 동작 여부 확인 -
php.ini에서mysqli.allow_local_infile설정 필요 여부 검토
스테이징 환경
- PHP 7.3.3 업그레이드 후 전체 테스트 스위트 (
php artisan test) 실행 - 이미지 업로드 및 EXIF 처리 관련 기능 통합 테스트 수행
-
setcookie()/ 세션 쿠키(SameSite속성) 동작 브라우저에서 재확인 - 외부 HTTPS API 호출(
Http::get(), Guzzle)의 타임아웃·응답 정상 여부 확인 - MySQL
LOAD DATA LOCAL INFILE사용 여부 전수 조사:grep -rn "LOCAL INFILE\|LOAD DATA" database/ app/
운영(Production) 환경
- 점검 시간대 또는 블루-그린 배포 전략으로 PHP 업그레이드 적용
- php-fpm 재시작 후
phpinfo()또는php -v로 버전 확인 - 애플리케이션 오류 로그(
storage/logs/laravel.log) 및 php-fpm 오류 로그 모니터링 -
LOCAL INFILE재활성화가 필요한 경우config/database.php또는php.ini반영 후 배포 - 업그레이드 후 Datadog, Sentry 등 APM 도구로 에러율 및 응답 시간 이상 여부 최소 30분 모니터링
⚠️ 드래프트 검토 참고: MySQL LOCAL INFILE 기본값 변경은 공식 changelog에 명시된 사실이나, 실제 서비스 환경에서의 영향 범위는 사용 중인 MySQL 버전 및 드라이버 설정에 따라 다를 수 있습니다. 운영 적용 전 스테이징에서 반드시 검증하십시오.