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

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

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

발행: 2026년 8월 6일

## 요약

요약

PHP 7.2.27은 2020년 1월 23일 릴리스된 PHP 7.2 브랜치의 보안 패치 버전입니다. 이번 릴리스에는 원격 코드 실행 가능성이 있는 버퍼 오버플로우 및 메모리 안전성 관련 CVE 취약점 2건이 포함되어 있으며, PHP 7.2 브랜치를 운영 중인 Laravel 프로젝트라면 즉시 업그레이드를 고려해야 합니다. 단, PHP 7.2는 이미 공식 지원이 종료된(End of Life) 버전임을 함께 인지해야 합니다.


핵심 내용

🔴 PHP 7.2.27에서 수정된 보안 취약점 (CVE)

CVE-2020-7060 — Mbstring 전역 버퍼 오버플로우

  • 영향 함수: mbfl_filt_conv_big5_wchar (내부 함수, mb_convert_encoding() 등 mbstring 함수 호출 시 연관)
  • 위험도: 공격자가 조작된 Big5 인코딩 문자열을 입력하면 전역 버퍼 오버플로우를 유발할 수 있음
  • Laravel 영향: 다국어 처리, 한국어/중국어/일본어 등 멀티바이트 문자열을 다루는 애플리케이션에서 특히 주의 필요. mb_convert_encoding(), mb_detect_encoding() 등을 사용하는 코드에서 외부 입력을 그대로 넘기는 경우 위험

CVE-2020-7059 — Standard 라이브러리 OOB(Out-of-Bounds) 읽기

  • 영향 함수: php_strip_tags_ex 내부 구현, 즉 strip_tags() 함수와 연관
  • 위험도: 경계 밖 메모리 읽기(OOB Read)로 정보 유출 가능성
  • Laravel 영향: strip_tags() 또는 이를 래핑한 헬퍼/Blade 출력 처리 시 사용자 입력이 직접 전달되는 경우

추가 수정 — Session 힙 Use-After-Free

  • 영향 함수: session_create_id()
  • CVE 번호 미부여이나 힙 메모리 해제 후 재사용 버그(Use-After-Free)로 잠재적 메모리 손상 가능
  • Laravel의 세션 매니저는 기본적으로 session_create_id()를 내부적으로 활용할 수 있으므로 간접적 영향 존재

📋 PHP 7.2 브랜치 누적 보안 이력 요약

제공된 changelog를 기준으로 7.2.19 이후 수정된 주요 CVE를 정리하면:

버전CVE영향 컴포넌트위험 유형
7.2.27CVE-2020-7060Mbstring전역 버퍼 오버플로우
7.2.27CVE-2020-7059Standard (strip_tags)OOB 읽기
7.2.26CVE-2019-11046Bcmath버퍼 언더플로우
7.2.26CVE-2019-11044Core/Windowsnull 바이트 인젝션
7.2.26CVE-2019-11045DirectoryIteratornull 바이트 인젝션
7.2.26CVE-2019-11050EXIFUse-After-Free
7.2.26CVE-2019-11047EXIF힙 버퍼 오버플로우
7.2.24CVE-2019-11043FPMRCE (원격 코드 실행)
7.2.21CVE-2019-11042EXIF힙 버퍼 오버플로우
7.2.21CVE-2019-11041EXIF힙 버퍼 오버플로우
7.2.19CVE-2019-11040EXIF힙 버퍼 오버플로우
7.2.19CVE-2019-11039IconvOOB 읽기
7.2.19CVE-2019-11038GD초기화되지 않은 읽기

주목할 점: CVE-2019-11043 (FPM RCE)은 CVSS 9.8의 치명적 취약점으로, nginx + php-fpm 조합을 사용하는 한국 내 Laravel 프로덕션 환경에서 매우 높은 위험도를 가집니다. 7.2.27 미만 버전을 운영 중이라면 이 취약점에도 노출되어 있습니다.


⚠️ PHP 7.2 End of Life 안내

PHP 7.2는 2020년 11월 30일부로 공식 지원이 완전히 종료되었습니다. 7.2.27은 EOL 이전 마지막 보안 릴리스 중 하나이며, 이후 이 브랜치에는 어떠한 보안 패치도 제공되지 않습니다.

현재 PHP 7.2를 사용 중이라면 단순 패치 업그레이드가 아니라 PHP 8.x 또는 최소 7.4로의 마이그레이션 계획 수립이 필수입니다.


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

호환성 및 마이그레이션 부담

  • Laravel 버전별 PHP 요구사항: Laravel 6.x는 PHP 7.2를 지원하지만, Laravel 8.x부터는 PHP 7.3 이상을 요구합니다. 여전히 Laravel 5.x 또는 6.x에서 PHP 7.2를 사용하는 레거시 프로젝트가 존재할 수 있습니다.
  • PHP 7.2 → 7.4 마이그레이션은 상대적으로 부담이 적으나, PHP 8.0/8.1/8.2 마이그레이션 시에는 deprecated 함수 제거, named arguments, union type 등 코드 변경이 필요합니다.

보안 긴급도

  • 즉시 대응 필요 (High Priority): CVE-2020-7060, CVE-2020-7059는 외부 입력 처리 경로에 직접 노출될 수 있으며, 특히 한국어 서비스에서 EUC-KR, Big5, UTF-8 변환 처리를 하는 애플리케이션은 CVE-2020-7060에 취약할 가능성이 있습니다.
  • strip_tags()는 Laravel에서 XSS 방어를 위해 종종 Blade나 미들웨어에서 사용되므로 CVE-2020-7059도 무시할 수 없습니다.

로컬 개발 환경별 조치

Laravel Valet (macOS)

# Homebrew를 통한 PHP 버전 확인php --version# PHP 7.4 이상으로 전환 (예시)brew install php@8.1valet use php@8.1# 또는 특정 사이트별 버전 고정cd ~/Sites/my-projectvalet isolate php@8.1

Laravel Sail (Docker)

docker-compose.yml 또는 docker/8.x/Dockerfile 내 PHP 버전을 직접 수정하거나 sail:publish 후 이미지를 재빌드합니다.

# Sail 이미지 재빌드./vendor/bin/sail build --no-cache

Sail은 기본적으로 최신 PHP 버전을 사용하므로, PHP 7.2 기반 커스텀 Dockerfile을 사용 중이 아닌 한 최신 Sail 사용자는 영향을 받지 않습니다.

서버/Docker 프로덕션 환경

  • nginx + php-fpm 구성에서 CVE-2019-11043 (RCE) 패치 여부 반드시 확인
  • AWS EC2, NCloud, Cafe24 등 국내 호스팅 환경에서 직접 PHP를 관리하는 경우 패키지 관리자를 통한 업그레이드 또는 수동 컴파일 필요

실무 체크리스트

🔍 현재 환경 점검

  • php --version 명령으로 현재 PHP 버전 확인
  • PHP 7.2.x 사용 중이라면 7.2.27 미만인지 확인
  • phpinfo() 또는 php -m | grep mbstring으로 mbstring 확장 활성화 여부 확인
  • 애플리케이션에서 mb_convert_encoding(), mb_detect_encoding(), strip_tags(), session_create_id() 사용 여부 코드 검색
# 프로젝트 내 취약 함수 사용 코드 검색 grep -rn "mb_convert_encoding\|mb_detect_encoding\|strip_tags\|session_create_id" \ app/ resources/ --include="*.php"

🛠️ 단기 조치 (PHP 7.2를 계속 사용해야 하는 경우)

  • 패키지 관리자를 통해 PHP 7.2.27로 즉시 업그레이드
    # Ubuntu/Debian (ondrej/php PPA 기준) sudo apt update && sudo apt upgrade php7.2 # CentOS/RHEL (Remi 저장소 기준) sudo yum update php72
  • 업그레이드 후 PHP 버전 재확인: php --version
  • Laravel 애플리케이션 기본 동작 테스트 (로그인, 세션, 다국어 처리)
  • php-fpm 재시작: sudo systemctl restart php7.2-fpm

🚀 중장기 조치 (강력 권장)

  • PHP 8.1 또는 8.2로의 마이그레이션 계획 수립
  • composer require 시 PHP 버전 제약 조건 확인: composer check-platform-reqs
  • 주요 패키지 호환성 확인 (Laravel, Doctrine, 내부 패키지 등)
  • 스테이징 환경에서 PHP 업그레이드 후 전체 기능 회귀 테스트 실행
  • CI/CD 파이프라인의 PHP 버전 매트릭스 업데이트

📋 프로덕션 배포 전 확인

  • WAF(웹 애플리케이션 방화벽)에서 mbstring 관련 비정상 입력 차단 규칙 적용 여부 확인
  • EXIF 파싱 기능(exif_read_data())을 사용하는 이미지 업로드 기능이 있다면 입력 검증 강화
  • strip_tags() 사용 시 허용 태그 화이트리스트 명시적 지정 여부 확인 (보안 강화 목적)
  • 배포 후 PHP 오류 로그(/var/log/php7.2-fpm.log) 모니터링

편집자 주: 이 문서는 드래프트이며, PHP 7.2.27 공식 릴리스 노트 및 php.net 보안 공지를 기반으로 작성되었습니다. CVE 위험도 등급(CVSS Score)은 본 릴리스 데이터에 명시되어 있지 않으므로, 정확한 위험도 평가는 NVD(국가 취약점 데이터베이스)를 별도로 참조하시기 바랍니다.