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

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

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

발행: 2026년 8월 6일

## 요약

요약

PHP 7.3.4가 2019년 4월 4일 릴리스되었습니다. 이번 업데이트는 EXIF 확장의 힙 버퍼 오버플로우를 포함한 보안 취약점 수정과 더불어, Core·MySQLi·Opcache·Sodium 등 다양한 컴포넌트의 안정성 버그를 해결합니다. 특히 직전 버전인 7.3.3에서 MySQL LOCAL INFILE 기본값 변경이 이루어진 만큼, Laravel 애플리케이션에서 DB 설정을 검토하는 것이 권장됩니다.


핵심 내용

🔐 보안 관련 수정 (우선순위 높음)

  • EXIF 힙 버퍼 오버플로우 2건 (bug #77753, #77831)

    • php_ifd_get32sexif_iif_add_value 함수에서 발생하는 힙 버퍼 오버플로우 취약점이 수정되었습니다.
    • 사용자로부터 이미지 업로드를 허용하는 모든 Laravel 서비스에서 즉시 업그레이드가 필요합니다.
    • Intervention/Image, spatie/laravel-medialibrary 등 이미지 처리 패키지를 사용하는 경우 특히 영향을 받습니다.
  • Sodium sign_detached() 문자열 미종료 버그 (bug #77646)

    • 서명 문자열이 null byte로 올바르게 종료되지 않는 문제가 수정되었습니다.
    • Laravel의 암호화·서명 기능과 간접적으로 연관될 수 있습니다.

🐛 안정성 및 런타임 버그 수정

  • Core 세그멘테이션 폴트 다수 수정

    • break 2147483648 구문으로 인한 세그폴트 (bug #77660): 비정상적인 break 표현식으로 인한 충돌 수정
    • 순환 참조 가비지 컬렉션 중 스택 오버플로우 (bug #77345): 복잡한 객체 그래프를 사용하는 Laravel 애플리케이션에서 드물게 발생 가능했던 문제
    • 익명 클래스가 인터페이스 정보를 잃는 버그 (bug #77652): PHP 7.3에서 익명 클래스를 적극 활용하는 코드에서 발생 가능
  • MySQLi mysqli_fetch_field 행 멈춤 현상 (bug #77597)

    • 스크립트가 무한정 hang되는 심각한 버그 수정
    • PDO를 주로 사용하는 Laravel의 경우 직접 영향은 낮지만, MySQLi를 직접 사용하는 레거시 코드가 있다면 주의
  • CLI 서버 $_SERVER['REMOTE_ADDR'] 오류 (bug #77722)

    • localhost 환경에서 REMOTE_ADDR에 잘못된 IP가 설정되던 문제 수정
    • php artisan serve 사용 시 IP 기반 접근 제어 로직이 있는 개발 환경에서 영향을 줄 수 있었음
  • Opcache pi 노드 삽입 오류 (bug #77743)

    • Opcache 활성화 환경에서 JIT 최적화 관련 잘못된 코드 생성 수정
    • 프로덕션 환경에서 Opcache를 사용하는 대부분의 Laravel 앱에 해당
  • Bcmath bcpow() GCC 최적화 관련 오류 (bug #77742)

    • 금융 계산, 정밀 수치 연산에 bcmath를 사용하는 경우 잘못된 결과를 반환할 수 있었음
  • Standard extract() 충돌 (bug #77669), var_export() PHP_INT_MIN 오류 (bug #76717)

    • extract()로 배열을 덮어쓸 때 충돌 발생 수정
    • PHP_INT_MIN 값이 var_export()로 파싱 불가능한 값을 생성하던 문제 수정

📦 SQLite3 신규 기능

  • sqlite3.defensive INI 지시어 추가
    • SQLite3 데이터베이스의 보안 모드를 강화하는 옵션
    • SQLite를 테스트 DB로 사용하는 Laravel 환경(DB_CONNECTION=sqlite)에서 활용 가능

⚠️ 7.3.3에서의 중요 변경사항 (7.3.4 적용 시 함께 확인 필요)

  • MySQL LOCAL INFILE 기본값 비활성화 (bug #77630 관련)
    • mysqli.allow_local_infile (MySQLi) 또는 PDO::MYSQL_ATTR_LOCAL_INFILE (PDO MySQL)을 명시적으로 설정해야 LOAD DATA LOCAL INFILE 사용 가능
    • 데이터 마이그레이션 스크립트나 대용량 CSV 임포트 기능이 있는 프로젝트에서 반드시 확인 필요

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

호환성

  • Laravel 5.7 / 5.8 사용자: PHP 7.3.x가 공식 지원 범위이므로 7.3.4로의 패치 업그레이드 적용이 권장됩니다.
  • Composer 의존성: PHP 버전 패치 업그레이드는 minor/major 변경이 아니므로 패키지 호환성 문제가 발생할 가능성이 거의 없습니다.

보안 긴급도

취약점영향긴급도
EXIF 힙 버퍼 오버플로우 (#77753, #77831)이미지 업로드 기능 보유 서비스🔴 높음
Sodium sign_detached 미종료 (#77646)서명 검증 기능🟡 중간
Core 세그폴트 다수운영 안정성🟡 중간

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

  • Laravel Valet (macOS)

    • brew upgrade php 또는 brew upgrade php@7.3 명령으로 업데이트 후 valet restart 실행
    • Valet이 사용하는 PHP-FPM 소켓 재시작 필요
  • Laravel Sail (Docker)

    • sail/8.0, sail/7.4 등 공식 이미지를 사용 중이라면 기반 이미지 업데이트 여부 확인
    • 커스텀 Dockerfile에서 php:7.3-fpm 기반 이미지를 사용 중이라면 docker pull php:7.3.4-fpm 후 재빌드
    docker pull php:7.3-fpm./vendor/bin/sail build --no-cache
  • Docker 직접 운영

    • 운영 이미지에서 php --version으로 현재 버전 확인 후 기반 이미지 업데이트 적용

국내 호스팅 환경 주의사항

  • 카페24, 가비아 등 공유 호스팅을 사용하는 경우 관리자 패널에서 PHP 버전 변경 옵션을 확인하거나, 고객센터를 통해 패치 적용 여부를 문의하세요.
  • AWS Elastic Beanstalk, NHN Cloud, KT Cloud 등 매니지드 환경에서는 플랫폼 업데이트 정책에 따라 패치 시점이 다를 수 있습니다.

실무 체크리스트

로컬 환경

  • php --version 명령으로 현재 PHP 버전 확인
  • Homebrew(macOS): brew upgrade php@7.3 실행
  • phpenv / anyenv 사용자: phpenv install 7.3.4phpenv global 7.3.4 또는 .php-version 파일 업데이트
  • Valet 사용자: valet restart 실행 후 valet php --version 재확인
  • EXIF 관련 코드 점검: exif_read_data(), Intervention/Image, spatie/laravel-medialibrary 등 이미지 처리 기능 테스트

스테이징 환경

  • PHP 7.3.4 업그레이드 적용
  • php-fpm 재시작 확인: sudo systemctl restart php7.3-fpm
  • Opcache 캐시 초기화: php artisan opcache:clear 또는 opcache_reset() 호출
  • LOCAL INFILE 사용 여부 확인: LOAD DATA LOCAL INFILE을 사용하는 마이그레이션 또는 Artisan 명령 테스트
    • MySQLi: php.inimysqli.allow_local_infile = On 추가 필요
    • PDO: 연결 시 PDO::MYSQL_ATTR_LOCAL_INFILE => true 옵션 추가 필요
  • bcmath를 사용하는 금융/정밀 계산 로직의 결과값 정합성 테스트
  • CLI 빌트인 서버 사용 환경: REMOTE_ADDR 기반 미들웨어 동작 확인

프로덕션 환경

  • 배포 전 스테이징에서 전체 테스트 스위트 (php artisan test) 통과 확인
  • 무중단 배포 시: 새 PHP 버전으로 PHP-FPM 풀 재시작 (nginx와 연동된 경우 graceful reload)
    sudo systemctl reload php7.3-fpm# 또는sudo service php7.3-fpm reload
  • Opcache 상태 확인: Laravel Telescope 또는 phpinfo() 페이지로 버전 및 Opcache 활성화 상태 점검
  • 이미지 업로드 기능이 있는 서비스: 취약점 패치 적용 후 보안 로그 모니터링
  • php.ini 변경사항 (sqlite3.defensive, mysqli.allow_local_infile) 필요 여부 검토 후 적용
  • 배포 후 에러 로그 (storage/logs/laravel.log) 및 서버 에러 로그 모니터링 (최소 1시간)

주의: 이 문서는 초안(Draft)입니다. 게시 전 PHP 공식 릴리스 페이지(https://www.php.net/releases/7_3_4.php)에서 최신 정보를 재확인하고, 환경별 테스트를 반드시 수행하시기 바랍니다.