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

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

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

발행: 2026년 8월 6일

## 요약

요약

PHP 7.2.25는 2019년 11월 21일에 릴리즈된 PHP 7.2 브랜치의 보안 및 버그 수정 릴리즈입니다. OpCache 손상, OpenSSL TLS 연결 문제, 제너레이터 관련 세그폴트 등 실무에 직접 영향을 줄 수 있는 버그들이 수정되었습니다. 특히 이전 버전인 7.2.24에 포함된 CVE-2019-11043(FPM RCE 취약점) 패치를 아직 적용하지 않은 환경이라면 즉시 업그레이드가 필요합니다.


핵심 내용

🔴 보안 관련 (이전 버전 포함 누적 확인 필수)

PHP 7.2.25 자체에는 별도로 지정된 CVE가 없지만, 7.2.24 이하 버전에서 이전된 심각한 보안 취약점이 존재하므로 반드시 확인이 필요합니다.

  • CVE-2019-11043 (PHP 7.2.24): fpm_main.cenv_path_info 언더플로우로 인한 원격 코드 실행(RCE) 취약점. Nginx + PHP-FPM 조합에서 특정 URL 패턴으로 공격 가능. CVSS 점수가 매우 높아 즉각적인 패치가 요구됩니다.
  • CVE-2019-11042 / CVE-2019-11041 (PHP 7.2.21): EXIF 처리 중 힙 버퍼 오버플로우. 이미지 업로드 기능이 있는 서비스에서 위험.
  • CVE-2019-11040 / CVE-2019-11039 / CVE-2019-11038 / CVE-2019-11036 / CVE-2019-11035 / CVE-2019-11034: EXIF, GD, Iconv 등에서 발생하는 힙 버퍼 오버플로우 및 범위 초과 읽기.

⚠️ 현재 PHP 7.2.23 이하를 사용 중이라면 CVE-2019-11043 RCE 취약점에 노출된 상태입니다. 즉시 7.2.25로 업그레이드하세요.


🟠 PHP 7.2.25의 주요 버그 수정

Core

  • Bug #78752: GC(가비지 컬렉션)가 제너레이터 스택 프레임 소멸 중에 트리거될 때 세그폴트 발생 수정. yield를 활용하는 Laravel 큐 워커, Artisan 커맨드, 스트림 처리 코드에서 간헐적 크래시를 경험했다면 이 버그가 원인일 수 있습니다.
  • Bug #78656: 파스(parse) 오류가 가장 높은 로그 레벨로 분류되던 문제 수정. 로그 모니터링 알람이 과도하게 발생했을 수 있습니다.
  • Bug #78689: Closure::fromCallable()[Closure, '__invoke'] 형태를 처리하지 못하던 문제 수정.

OpCache

  • Bug #78654: 비ASCII 문자(한글 포함)가 포함된 파일에서 OpCache 체크섬이 잘못 계산되는 문제 수정. 한국어 주석이나 문자열이 포함된 PHP 파일에서 OpCache가 올바르게 동작하지 않았을 가능성이 있습니다.
  • Bug #78747: OpCache가 커스텀 확장 모듈의 결과를 손상시키는 문제 수정.

OpenSSL

  • Bug #78775: HTTP 요청의 TLS 문제가 다른 암호화 연결에 영향을 주는 문제 수정. 동일 프로세스 내 다중 HTTPS 요청을 처리하는 환경(예: Guzzle을 통한 외부 API 호출)에서 간헐적 연결 실패를 경험했다면 이 버그와 관련이 있을 수 있습니다.

Date

  • Bug #78751: DatePeriod 직렬화 시 DateTimeImmutableDateTime으로 변환되는 문제 수정. Laravel의 Carbon 기반 날짜 직렬화 코드에 잠재적 영향.
  • Bug #70153: DateInterval 역직렬화 오류 수정.

Sockets

  • Bug #78665: 멀티캐스팅 시 메모리 누수 수정. 소켓 기반의 실시간 기능을 사용하는 경우 관련됩니다.

🟡 PHP 7.2.24 주요 버그 수정 (미적용 시 추가 확인)

  • Bug #76809 (MySQLi): 영구적(persistent) 연결 사용 시 SSL 설정이 무시되는 문제 수정. DB 연결에 SSL을 사용하는 프로덕션 환경에서 중요합니다.
  • Bug #78623 (PDO_MySQL): 스토어드 프로시저 호출 시 빈 결과 셋이 추가로 반환되던 회귀 버그 수정.
  • Bug #76342 (Standard): file_get_contents가 지정된 타임아웃의 두 배를 대기하는 버그 수정. 외부 API 연동 시 타임아웃 설정이 의도대로 동작하지 않았을 수 있습니다.

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

호환성 및 Laravel 버전

PHP 버전지원 Laravel 버전비고
PHP 7.2.xLaravel 5.6 ~ 6.xLaravel 7+ 부터는 PHP 7.2.5 이상 필요

PHP 7.2.25는 마이너 패치 릴리즈로 하위 호환성이 완전히 유지됩니다. API 변경이나 기능 추가 없이 버그 수정만 포함되어 있어 업그레이드 리스크가 낮습니다.

Laravel 실무 영향 분석

  1. OpCache 비ASCII 문자 체크섬 버그 (#78654)

    • 한국어 주석(예: // 사용자 인증 처리)이나 다국어 문자열 리터럴이 포함된 PHP 파일에서 OpCache가 잘못된 체크섬을 계산할 수 있었습니다.
    • 배포 후 php artisan opcache:clear 또는 서버 재시작을 해도 캐시가 예상과 다르게 동작하는 문제의 원인일 수 있습니다.
    • 업그레이드 후 OpCache를 반드시 초기화하세요.
  2. 제너레이터 세그폴트 (#78752)

    • Laravel 큐 워커(php artisan queue:work)는 내부적으로 제너레이터 패턴을 사용합니다. 장시간 실행되는 워커 프로세스에서 간헐적 크래시가 발생했다면 이 버그가 원인일 수 있습니다.
    • Supervisor로 관리되는 큐 워커 환경에서도 잦은 재시작이 발생했다면 확인이 필요합니다.
  3. OpenSSL TLS 연결 오염 (#78775)

    • Laravel에서 Guzzle HTTP 클라이언트나 Http:: 파사드를 통해 여러 외부 HTTPS API를 호출할 때, 한 요청의 TLS 오류가 이후 요청에 영향을 줄 수 있었습니다.
    • 간헐적인 외부 API 연결 실패 이슈를 경험한 경우 이 버그와 연관됩니다.
  4. DateTimeImmutable 직렬화 (#78751)

    • Laravel의 Eloquent 모델 캐스팅(datetime, immutable_datetime)과 Carbon을 함께 사용할 때 DatePeriod 직렬화/역직렬화 과정에서 DateTimeImmutableDateTime으로 변환될 수 있었습니다.
  5. file_get_contents 타임아웃 (#76342)

    • Laravel의 Http 파사드가 아닌 직접 file_get_contents()를 사용하는 레거시 코드나 패키지에서 타임아웃이 두 배로 적용되었을 수 있습니다.

로컬 개발 환경

  • Laravel Valet (macOS): brew upgrade php@7.2 또는 Homebrew의 PHP 탭을 통해 업그레이드 가능합니다. 업그레이드 후 valet restart를 실행하세요.
  • Laravel Sail / Docker: 공식 php:7.2-fpm Docker 이미지 태그를 사용하는 경우, 해당 이미지가 7.2.25 기준으로 업데이트되었는지 확인 후 docker pull을 다시 실행하세요. Dockerfile에 특정 버전을 고정한 경우 명시적으로 변경이 필요합니다.
  • Windows (XAMPP / Laragon): 각 툴의 공식 사이트에서 PHP 7.2.25가 포함된 최신 패키지를 확인하여 업데이트하세요.

보안 긴급도

🔴 긴급: CVE-2019-11043(RCE) 취약점을 포함한 여러 CVE가 7.2.24 이하에 존재합니다. PHP 7.2.23 이하 사용자는 즉시 업그레이드해야 합니다.

🟡 참고: PHP 7.2 브랜치는 2020년 11월에 공식 지원이 종료될 예정입니다. 장기적으로는 PHP 8.x로의 마이그레이션 계획을 수립하는 것을 권장합니다.


실무 체크리스트

로컬 환경

  • 현재 PHP 버전 확인: php -v
  • PHP 7.2.25로 업그레이드 수행
    • macOS (Homebrew): brew upgrade php@7.2valet restart
    • Ubuntu/Debian: sudo apt-get update && sudo apt-get upgrade php7.2
    • Docker/Sail: docker pull php:7.2-fpmdocker-compose up -d --build
  • 업그레이드 후 PHP 버전 재확인: php -vPHP 7.2.25 출력 확인
  • OpCache 설정 초기화: php artisan opcache:clear 또는 php -r "opcache_reset();"
  • 제너레이터, Closure, DateInterval을 사용하는 단위 테스트 재실행: php artisan test

스테이징 환경

  • PHP 7.2.25 업그레이드 후 전체 테스트 스위트 실행
  • Nginx + PHP-FPM 사용 환경: CVE-2019-11043 패치 적용 확인
    # Nginx 설정에서 취약한 패턴 점검 # PATH_INFO를 pass_through하는 location 블록 확인 grep -r "fastcgi_split_path_info\|PATH_INFO" /etc/nginx/
  • PHP-FPM 재시작 후 정상 동작 확인: sudo systemctl restart php7.2-fpm
  • OpCache 상태 확인: php -r "print_r(opcache_get_status());"
  • 외부 API(HTTPS) 연동 기능 통합 테스트 (OpenSSL TLS 버그 수정 검증)
  • 이미지 업로드 기능이 있는 경우 EXIF 처리 테스트 (CVE 패치 검증)
  • 한국어가 포함된 PHP 파일 OpCache 동작 확인

프로덕션 환경

  • 배포 전 반드시 스테이징에서 검증 완료
  • 배포 시간대: 트래픽이 낮은 시간대(예: 새벽) 배포 권장
  • PHP 업그레이드 적용
    # 업그레이드 전 현재 버전 백업/기록 php -v > /tmp/php_version_before.txt # Ubuntu 예시 sudo apt-get update sudo apt-get install --only-upgrade php7.2 php7.2-fpm php7.2-*
  • PHP-FPM 무중단 재시작 (graceful reload):
    sudo systemctl reload php7.2-fpm# 또는sudo kill -USR2 $(cat /var/run/php/php7.2-fpm.pid)
  • OpCache 초기화 (배포 스크립트에 포함):
    # Laravel Envoyer / Deployer 사용 시 hook에 추가php artisan opcache:clear# 또는 웹서버를 통한 초기화
  • 배포 후 에러 로그 모니터링 (최소 30분): tail -f /var/log/php7.2-fpm.log
  • APM(New Relic, Datadog 등) 사용 시 PHP 버전 변경 후 메트릭 이상 여부 확인
  • CVE-2019-11043 최종 확인: Nginx를 사용하는 경우 아래 설정이 없는지 검토
    # 아래와 같은 설정이 있다면 보안 검토 필요 fastcgi_split_path_info ^(.+?\.php)(/.*)$; fastcgi_param PATH_INFO $fastcgi_path_info;
  • 장기 계획: PHP 7.2 EOL(2020년 11월 예정)을 고려하여 PHP 8.x 마이그레이션 로드맵 수립

편집자 주: 이 문서는 초안입니다. CVE-2019-11043의 영향 범위 및 Nginx 설정 패턴에 대한 내용은 서버 환경에 따라 다를 수 있으므로, 실제 인프라 담당자와 함께 검토하시기 바랍니다. PHP 7.2 브랜치의 EOL 일정은 공식 PHP 지원 정책(https://www.php.net/supported-versions.php)을 반드시 확인하세요.