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

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

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

발행: 2026년 8월 6일

## 요약

요약

PHP 7.2.31은 2020년 5월 14일 릴리스된 PHP 7.2 브랜치의 보안 패치 버전으로, 멀티파트 폼 데이터 처리 시 발생하는 OOM(Out-of-Memory) 및 임시 파일 미정리 취약점(CVE-2019-11048)을 수정합니다. PHP 7.2는 이미 공식 지원이 종료된 버전이지만, 일부 레거시 Laravel 프로젝트에서 여전히 사용 중일 수 있어 보안 위험에 노출될 수 있습니다. 이 글에서는 해당 취약점의 실무적 영향과 마이그레이션 방향을 한국 Laravel 개발자 관점에서 분석합니다.


핵심 내용

PHP 7.2.31 직접 수정 사항 (CVE-2019-11048)

PHP 7.2.31에서 직접 수정된 항목은 두 가지입니다.

  • Bug #78875: 긴 파일명을 가진 파일 업로드 요청 처리 시 OOM 발생 및 임시 파일 미정리
  • Bug #78876: multipart/form-data 요청에서 긴 변수명 처리 시 OOM 발생 및 임시 파일 미정리

두 버그 모두 동일한 CVE 번호(CVE-2019-11048)로 분류되며, 악의적인 공격자가 비정상적으로 긴 파일명 또는 폼 필드명을 포함한 multipart/form-data 요청을 반복적으로 전송해 서버 메모리를 소진시키거나 임시 파일을 정리하지 못하게 만들 수 있는 서비스 거부(DoS) 공격 벡터입니다. Laravel의 파일 업로드 기능($request->file(), $request->input())은 내부적으로 PHP의 multipart/form-data 파싱에 의존하므로 직접적인 영향을 받습니다.

7.2.24 ~ 7.2.30 주요 누적 보안 수정 사항

이전 패치 버전들에서도 다수의 중요 보안 수정이 있었습니다. 주요 항목을 정리합니다.

원격 코드 실행(RCE) 관련

  • CVE-2019-11043 (7.2.24): PHP-FPM fpm_main.cenv_path_info 언더플로우로 인한 RCE 취약점. Nginx + PHP-FPM 조합 환경에서 특정 설정 하에 원격 코드 실행 가능. Laravel Forge, Envoyer 등으로 배포된 Nginx 기반 서버에 직접 해당됩니다.

메모리 안전성 관련

  • CVE-2020-7060 (7.2.27): mbfl_filt_conv_big5_wchar의 전역 버퍼 오버플로우. 한국어/다국어 처리를 위해 mbstring을 사용하는 프로젝트에 영향 가능성 있음.
  • CVE-2019-11047, CVE-2019-11050 (7.2.26): EXIF 파싱 시 힙 버퍼 오버플로우 및 Use-after-free. 이미지 업로드 기능이 있는 서비스에 해당.
  • CVE-2019-11041, CVE-2019-11042 (7.2.21): EXIF 처리 시 힙 버퍼 오버플로우.

정보 누출 및 기타

  • CVE-2020-7066 (7.2.29): get_headers()의 null 바이트 이후 묵시적 문자열 절단.
  • CVE-2020-7064 (7.2.29): EXIF 처리 시 미초기화 메모리 사용.
  • CVE-2020-7063 (7.2.28): Phar buildFromIterator로 추가된 파일에 전체 접근 권한 부여.
  • CVE-2020-7062 (7.2.28): 세션 업로드 진행 처리 시 Null 포인터 역참조.
  • CVE-2020-7059 (7.2.27): php_strip_tags_ex의 OOB 읽기.
  • CVE-2019-11044, CVE-2019-11045 (7.2.26): Windows 환경에서 null 바이트 이후 파일 경로 묵시적 절단 (Windows 배포 환경 해당).
  • CVE-2019-11046 (7.2.26): bc_shift_addsub의 버퍼 언더플로우.

PHP 7.2의 지원 종료(EOL) 상태

PHP 7.2의 공식 보안 지원은 2020년 11월 30일 종료되었습니다. 즉, PHP 7.2.31은 사실상 7.2 브랜치의 마지막 공식 패치에 근접한 버전입니다. 이후 새롭게 발견되는 취약점에 대한 공식 수정 패치는 제공되지 않습니다.


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

호환성 및 Laravel 버전 연관성

PHP 7.2를 사용 중인 프로젝트는 주로 Laravel 5.8 ~ Laravel 6.x 범위에 해당합니다. Laravel 6.x 역시 2022년 9월 EOL이 도래했으므로, PHP 7.2 + Laravel 6.x 조합을 운영 중인 경우 PHP와 프레임워크 모두 지원이 종료된 이중 위험 상태입니다.

PHP 버전지원 종료주요 호환 Laravel 버전
7.22020년 11월Laravel 5.8, 6.x
7.42022년 11월Laravel 6.x ~ 8.x
8.12024년 11월Laravel 9.x ~ 10.x
8.22025년 12월Laravel 10.x ~ 11.x
8.32026년 12월 (예정)Laravel 11.x ~

보안 긴급도

긴급(High) 으로 평가합니다.

  • CVE-2019-11043(RCE)은 파급력이 매우 높으며, Nginx + PHP-FPM 환경에서 실질적인 공격 도구가 이미 공개되어 있습니다.
  • CVE-2019-11048(이번 릴리스)는 DoS 공격으로 활용 가능하며, 파일 업로드 기능이 있는 서비스는 즉각 대응이 필요합니다.
  • PHP 7.2 EOL 이후 신규 취약점에 대한 패치가 없으므로, 7.2.31로 업데이트하는 것은 임시방편이며 PHP 8.x로의 마이그레이션이 근본적인 해결책입니다.

로컬 개발 환경별 영향

Laravel Valet (macOS)

  • Homebrew를 통해 PHP 버전을 관리하는 경우, brew upgrade php@7.2로 업데이트 가능하나 Homebrew에서 7.2 포뮬러 지원이 중단되었을 가능성이 있습니다. valet use php@8.1 등으로 버전 전환을 권장합니다.

Laravel Sail (Docker)

  • docker/8.x 이미지를 사용하는 경우 해당 없습니다. 하지만 커스텀 DockerfileFROM php:7.2-fpm을 명시하고 있다면 즉시 수정이 필요합니다. Docker Hub의 php:7.2-fpm 이미지는 보안 업데이트가 중단되었습니다.

자체 서버 / AWS EC2 / 카페24 등 국내 호스팅

  • Ubuntu 18.04(Bionic) + ondrej/php PPA 환경에서 apt-get upgrade php7.2 명령으로 7.2.31 적용 가능하지만, 장기적으로 PHP 8.x 마이그레이션과 OS 업그레이드(Ubuntu 22.04 LTS)를 병행해야 합니다.
  • 국내 일부 공유 호스팅(카페24, 가비아 등)은 PHP 버전 선택이 제한적일 수 있으므로 호스팅 업체의 지원 PHP 버전 공지를 확인하세요.

실무 체크리스트

즉시 확인 (로컬/스테이징)

  • 현재 PHP 버전 확인: php -v 또는 phpinfo() 출력 확인
  • PHP 7.2를 사용 중이라면 7.2.31로 패치 적용 여부 확인
  • multipart/form-data 파일 업로드 엔드포인트 목록 파악 (CVE-2019-11048 영향 범위 확인)
  • Nginx + PHP-FPM 조합 사용 여부 확인 (CVE-2019-11043 영향 범위)
  • EXIF 데이터를 처리하는 이미지 업로드 기능 여부 확인 (다수의 EXIF CVE 해당)

단기 대응 (운영 서버 패치)

  • Ubuntu/Debian: sudo apt-get update && sudo apt-get upgrade php7.2 실행 후 php -v로 7.2.31 확인
  • CentOS/RHEL (Remi's RPM): sudo yum update php72 또는 sudo dnf update php7.2
  • Docker: php:7.2-fpm 베이스 이미지 사용 중이라면 이미지 재빌드 및 재배포
  • PHP-FPM 서비스 재시작: sudo systemctl restart php7.2-fpm
  • 웹 서버(Nginx/Apache) 재시작 또는 reload
  • 배포 후 phpinfo() 페이지(임시 생성 후 삭제) 또는 php -v로 버전 재확인

중기 대응 (PHP 버전 업그레이드 계획 수립)

  • 현재 프로젝트의 PHP 8.x 호환성 점검: composer require --dev phpcompatibility/php-compatibility 또는 PHP Compatibility Checker 활용
  • composer.jsonrequire.php 버전 제약 조건 확인 및 수정 계획 수립
  • 사용 중인 패키지들의 PHP 8.x 지원 여부 확인: composer outdated
  • Laravel 버전이 5.x ~ 6.x인 경우, Laravel 10.x 또는 11.x로의 마이그레이션 로드맵 수립
  • Laravel Shift(https://laravelshift.com) 등 자동화 마이그레이션 도구 검토

장기 대응 (아키텍처 개선)

  • PHP 8.1 이상 + Laravel 10.x 이상 조합으로 목표 버전 설정
  • CI/CD 파이프라인에 PHP 버전 고정 및 보안 스캔 도구 통합 (예: enlightn/security-checker, GitHub Dependabot)
  • 파일 업로드 기능에 대한 요청 크기 제한 설정 재검토 (upload_max_filesize, post_max_size, Nginx client_max_body_size)
  • WAF(웹 애플리케이션 방화벽) 또는 AWS Shield 등을 통한 비정상 대용량 요청 차단 정책 추가 검토

⚠️ 주의: PHP 7.2.31은 보안 패치를 적용한 최신 7.2 버전이지만, PHP 7.2 자체가 EOL 상태입니다. 이 업데이트는 현재 운영 중인 서비스의 즉각적인 위험을 줄이기 위한 임시 조치이며, PHP 8.x로의 전환이 장기적인 보안을 보장하는 유일한 방법입니다.