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

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

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

발행: 2026년 8월 6일

## 요약

요약

PHP 7.1.20은 2018년 7월 19일에 릴리스된 보안 패치 버전으로, EXIF 힙 오버플로우, FPM stdin 취약점, GMP 정수 언더플로우 등 실제 공격에 악용될 수 있는 심각한 보안 결함을 포함하고 있습니다. PHP 7.1 브랜치를 운영 중인 Laravel 애플리케이션이라면 즉각적인 업그레이드가 필요하며, 참고로 PHP 7.1은 현재 공식 지원이 종료(EOL)된 버전입니다.


핵심 내용

🔴 보안 취약점 (즉각 대응 필요)

EXIF 힙 오버플로우 — 2건 (Bug #76423, #76557)

  • exif_thumbnail_extract()에서 정수 오버플로우로 인한 힙 오버플로우 발생 가능
  • 악성 이미지 파일 업로드 시 원격 코드 실행(RCE) 또는 서버 충돌로 이어질 수 있는 고위험 취약점
  • Laravel에서 Intervention Image, exif_read_data(), 이미지 업로드 처리 로직을 사용하는 경우 직접적인 영향권에 해당

PHP-FPM stdin 비차단 취약점 (Bug #73342)

  • FPM 환경에서 stdin을 논블로킹으로 변경함으로써 발생하는 취약점
  • Nginx + PHP-FPM 조합으로 서비스 중인 대부분의 한국 Laravel 프로덕션 환경에 해당
  • 권한 상승 또는 서비스 거부(DoS) 공격으로 이어질 수 있음

GMP 정수 언더플로우 (Bug #74670)

  • unserialize() 시 GMP 및 일부 클래스에서 정수 언더플로우 발생
  • Laravel의 캐시, 세션, 큐 시스템 등 unserialize()를 내부적으로 사용하는 컴포넌트와 연계될 경우 위험

Windows linkinfo openbasedir 미검사 (Bug #76459)

  • Windows 환경에서 linkinfo()open_basedir 제한을 우회 가능
  • Windows Server 기반 Laravel 운영 환경에 해당

🟡 안정성 버그 수정

컴포넌트버그 번호영향
Core#76534에러 핸들러 내 문자열 오프셋 접근 시 PHP 무한 행
Core#76502예외/에러 혼합 체인의 직렬화 오류
Reflection#76536에러 핸들러에서 예외 발생 시 코어 덤프
Reflection#75231상속 클래스에서 ReflectionProperty#getValue() 오작동
Standard#76505array_merge_recursive() 서브 배열 키 중복 버그
mbstring#76532mb_strimwidth()의 정수 오버플로우 및 과도한 메모리 사용
Date#76462DateInterval::$f 미정의 프로퍼티 오류
PGSQL#76548pg_fetch_result()가 다음 행을 가져오지 않는 버그

Laravel 개발자 관점에서 주목할 버그

  • array_merge_recursive() 키 중복 버그 (#76505): Laravel의 config 배열 병합, Arr::mergeRecursive() 패턴을 사용하는 코드에서 예기치 않은 데이터 구조를 반환할 수 있었음. 설정 오버라이드 로직에서 디버그하기 어려운 버그의 원인이 될 수 있음.
  • mb_strimwidth() 메모리 오버플로우 (#76532): 한국어, 중국어 등 멀티바이트 문자를 처리하는 애플리케이션에서 공격자가 조작한 문자열로 메모리 고갈 유도 가능.
  • Reflection 크래시 (#76536): Laravel의 서비스 컨테이너, 미들웨어 파이프라인, app()->make() 등 Reflection을 내부적으로 활용하는 핵심 기능과 연관될 수 있음.

⚠️ PHP 7.1 EOL 경고

PHP 7.1의 공식 보안 지원은 2019년 12월 1일에 종료되었습니다. 이 릴리스(7.1.20)는 2018년 7월에 출시된 것으로, 현재 시점에서 PHP 7.1을 사용 중이라면 단순 패치 적용이 아닌 PHP 8.2 또는 8.3으로의 마이그레이션이 우선 과제입니다.


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

호환성 및 마이그레이션

  • Laravel 버전과의 관계: PHP 7.1을 요구했던 Laravel 5.5(LTS) 및 5.6 버전대 애플리케이션이 영향을 받음. 해당 버전의 Laravel 역시 현재 EOL 상태.
  • 현재 권장 경로: PHP 7.1PHP 8.2/8.3 + Laravel 10/11 마이그레이션. 중간 단계로 PHP 7.4를 거치는 것도 가능하나 7.4 역시 EOL.

국내 인프라별 긴급도

환경긴급도비고
Nginx + PHP-FPM (온프레미스)🔴 매우 높음FPM 취약점 직접 해당
AWS EC2 / NHN Cloud / Naver Cloud🔴 매우 높음EXIF, FPM 취약점 해당
Laravel Sail (Docker)🟠 높음이미지 PHP 버전 확인 필요
Laravel Valet (macOS 개발)🟡 중간로컬 개발 환경이나 이미지 업로드 테스트 시 위험
공유 호스팅 (카페24, 가비아 등)🔴 매우 높음호스팅사의 PHP 버전 업데이트 요청 필요

이미지 업로드 기능 운영 서비스 — 즉각 조치 필요

한국 서비스 중 사용자 프로필 사진, 상품 이미지, 게시판 첨부 기능 등 이미지 업로드를 허용하는 모든 서비스는 EXIF 취약점(#76423, #76557)으로 인해 악성 이미지 파일을 통한 공격에 노출될 수 있습니다.

멀티바이트 처리 — 한국어 서비스 특이사항

mb_strimwidth() 메모리 오버플로우 버그(#76532)는 한국어(EUC-KR, UTF-8) 문자열을 처리하는 서비스에서 특히 주의가 필요합니다. 게시판 제목 truncate, 알림 메시지 요약 등에서 이 함수를 직접 또는 간접적으로 사용하는 경우가 많습니다.


실무 체크리스트

🔍 현재 환경 점검

# PHP 버전 확인 php -v # PHP-FPM 버전 확인 php-fpm -v # 로드된 모듈 확인 (exif, gmp 포함 여부) php -m | grep -E "exif|gmp|mbstring|intl" # Laravel Sail 사용 시 컨테이너 내부 확인 ./vendor/bin/sail php -v

📋 로컬/스테이징 환경

  • php -v로 현재 PHP 버전 확인
  • PHP 7.1을 사용 중이라면 7.1.20 미만인지 확인 (단, EOL 버전이므로 마이그레이션 계획 수립 권장)
  • composer.jsonrequire.php 버전 제약 조건 확인
  • EXIF 관련 기능 사용 여부 코드 검색:
    grep -r "exif_read_data\|exif_thumbnail\|Intervention" app/ --include="*.php"
  • mb_strimwidth() 사용 여부 확인:
    grep -r "mb_strimwidth" app/ resources/ --include="*.php"
  • array_merge_recursive() 사용 코드의 출력 결과 검증

🚀 프로덕션 배포 전

  • 패키지 관리자를 통한 PHP 업데이트 (또는 PHP 8.x 마이그레이션)
    # Ubuntu/Debian (PHP 7.1.20으로 업데이트) sudo apt update && sudo apt upgrade php7.1 php7.1-fpm # CentOS/RHEL (Remi 저장소 사용) sudo yum update php71
  • PHP-FPM 서비스 재시작
    sudo systemctl restart php7.1-fpmsudo systemctl status php7.1-fpm
  • Nginx 설정 reload
    sudo nginx -t && sudo systemctl reload nginx
  • 업데이트 후 Laravel 헬스체크 엔드포인트 확인
  • 이미지 업로드 기능 동작 테스트 (EXIF 관련 버그 수정 검증)

🐳 Laravel Sail / Docker 환경

# Dockerfile에서 PHP 버전 명시적으로 고정 FROM php:7.1.20-fpm # 또는 마이그레이션이 가능하다면 FROM php:8.2-fpm
# Sail 환경 재빌드./vendor/bin/sail build --no-cache./vendor/bin/sail up -d# 컨테이너 내 버전 재확인./vendor/bin/sail php -v

📅 중장기 마이그레이션 계획 (강력 권장)

PHP 7.1은 EOL 버전입니다. 보안 패치 자체가 더 이상 공식 제공되지 않으므로, 아래 로드맵을 수립하세요.

  • 1단계: PHP 7.1 → 7.4 마이그레이션 (deprecation 경고 확인)
  • 2단계: PHP 7.4 → 8.1/8.2 마이그레이션
  • 3단계: Laravel 5.x → Laravel 10/11 업그레이드
  • PHP 호환성 검사 도구 활용:
    composer require --dev phpcompatibility/php-compatibility./vendor/bin/phpcs --standard=PHPCompatibility --runtime-set testVersion 8.2 app/

📌 편집자 주: 이 문서는 PHP 7.1.20 릴리스 데이터를 기반으로 작성된 초안입니다. PHP 7.1은 현재 EOL 상태이므로, 실제 권고 사항은 최신 PHP 버전으로의 마이그레이션입니다. 각 취약점의 CVE 번호는 원본 릴리스 노트에 명시되어 있지 않아 별도 기재하지 않았으며, 발행 전 NVD 또는 PHP 보안 공지를 통해 CVE를 추가 확인하시기 바랍니다.