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

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

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

발행: 2026년 8월 6일

## 요약

요약

PHP 7.4.14가 2021년 1월 7일에 릴리스되었습니다. 이번 업데이트는 보안 취약점 패치(CVE-2020-7071)를 포함하여 PDO MySQL, Phar, Core, FPM 등 다양한 영역의 버그가 수정되었습니다. Laravel 애플리케이션에서 자주 사용되는 PDO MySQL과 관련된 수정 사항이 다수 포함되어 있어 실무 적용 시 주의 깊게 검토할 필요가 있습니다.


핵심 내용

🔒 보안 수정 (CVE-2020-7071)

  • FILTER_VALIDATE_URL이 잘못된 userinfo를 포함한 URL을 허용하던 취약점이 수정되었습니다 (Bug #77423).
  • Laravel에서 filter_var($url, FILTER_VALIDATE_URL) 또는 Request::url() 검증 로직에 이를 의존하는 경우, 기존에 통과하던 일부 URL이 이제 유효하지 않은 것으로 처리될 수 있습니다.
  • 사용자 입력 URL을 검증하는 코드가 있다면 반드시 동작 변경 여부를 확인해야 합니다.

⚠️ 이 CVE는 이전 릴리스(7.4.11의 CVE-2020-7070, 7.4.10의 CVE-2020-7069, 7.4.9의 CVE-2020-7068)에 이어 연속된 보안 패치의 일환입니다. 7.4.8 이하 버전을 사용 중이라면 여러 CVE에 동시에 노출되어 있을 수 있습니다.


🗄️ PDO MySQL 다중 버그 수정 (Laravel Eloquent/Query Builder 영향)

이번 릴리스에서 PDO MySQL 관련 수정이 가장 많습니다. Laravel의 데이터베이스 레이어는 PDO에 전적으로 의존하므로 실무 영향이 큽니다.

버그 번호내용Laravel 영향
#80458PDOStatement::fetchAll()이 upsert 쿼리에서 예외를 던지던 문제upsert() 사용 시 예외 발생 가능성 해소
#63185nextRowset()이 네이티브 prepared statement에서 MySQL 에러를 무시하던 문제스토어드 프로시저 호출 시 에러 누락 위험 해소
#78152PDO::exec()에서 다중 명령 실행 시 잘못된 에러 처리마이그레이션/시드에서 다중 SQL 실행 시 영향 가능
#70066unbuffered 쿼리 오류 "Cannot execute queries while other unbuffered queries" 오탐복잡한 쿼리 체인에서 발생하던 의문의 에러 해소
#71145init command에서 다중 구문 사용 시 unbuffered 쿼리 오류 트리거DB 연결 초기화 커스터마이징 시 영향
#76815PROCEDURE resultset SIGNAL 시 PDOStatement GC 불가스토어드 프로시저 사용 환경에서 메모리 누수 가능성 해소

🧩 Core 버그 수정

  • Bug #74558: Closure::fromCallable()로 반환된 클로저를 bindTo()로 재바인딩할 수 없던 문제 수정. Laravel의 서비스 컨테이너 바인딩이나 매크로(Macroable) 패턴 사용 시 관련될 수 있습니다.
  • Bug #77069: 스트림 필터에서 마지막 데이터 블록이 손실되던 문제 수정. 파일 처리, 스트리밍 응답 등에서 데이터 유실 가능성 해소.
  • Bug #80411: null로 직렬화된 객체 참조가 serialize()를 깨뜨리던 문제 수정. 세션, 캐시 직렬화 관련 버그에 영향 가능.

🐘 FPM 수정

  • Bug #69625: SCRIPT_FILENAME 환경 변수 없이 요청이 올 경우 PHP-FPM이 200 상태 코드를 반환하던 문제 수정. Nginx + PHP-FPM 조합에서 잘못된 설정이 있을 때 오류가 조용히 묻히던 현상 해소.

📦 Phar 수정

  • Bug #73809: Phar Zip 파싱 시 mmap 실패로 크래시 발생 문제 수정.
  • Bug #75102: 유효한 tar 파일에 대해 PharData가 잘못된 체크섬 오류를 반환하던 문제 수정.
  • Bug #77322: PharData::addEmptyDir('/') 호출 시 정수 오버플로우 가능성 수정.
  • Composer 패키지 및 Laravel Zero 등 Phar 기반 배포를 사용하는 환경에서 안정성이 향상됩니다.

🔐 OpenSSL

  • Bug #80368: LibreSSL 빌드 시 OCB 미지원으로 OpenSSL 익스텐션 빌드 실패 문제 수정. Alpine Linux 기반 Docker 이미지(LibreSSL 사용)에서 빌드 오류를 겪던 개발자에게 직접적인 영향을 줍니다.

🗂️ Fileinfo

  • Bug #77961: finfo_open()에서 조작된 magic 파일 파싱 시 SIGABRT(비정상 종료) 가능성 수정. 파일 업로드 MIME 타입 검사에 finfo를 사용하는 경우 보안적으로 주의할 필요가 있습니다.

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

호환성

  • PHP 7.4.14는 이전 7.4.x 버전과 완전히 하위 호환됩니다. 코드 변경 없이 업그레이드 가능합니다.
  • 단, FILTER_VALIDATE_URL 동작이 변경되었으므로 URL 유효성 검사 로직은 반드시 재테스트가 필요합니다.

마이그레이션 부담

  • 낮음: 패치 버전 업그레이드이므로 breaking change는 없습니다. 단순 바이너리/패키지 교체로 업그레이드 가능합니다.

보안 긴급도

  • 중간~높음: CVE-2020-7071은 URL 유효성 검증 우회 취약점입니다. 외부 입력 URL을 직접 FILTER_VALIDATE_URL로 검증하는 코드가 있다면 즉시 업그레이드를 권장합니다.
  • 7.4.9~7.4.13 사이 버전에서는 이미 이전 CVE들이 수정되었으므로, 7.4.8 이하를 사용 중이라면 복수의 CVE에 노출된 상태입니다.

로컬 도구 (Valet, Sail, Docker)

Laravel Valet (macOS)

# Homebrew로 PHP 업그레이드brew upgrade php@7.4valet restart
  • Homebrew에서 php@7.4 포뮬러가 7.4.14로 업데이트된 이후 적용 가능합니다. 업데이트 이전이라면 직접 빌드 또는 대기가 필요합니다.

Laravel Sail / Docker

# PHP 7.4 공식 이미지 태그 확인 FROM php:7.4.14-fpm-alpine
  • php:7.4-fpm 등의 floating 태그를 사용하는 경우, 이미지 재pull 시 자동으로 반영됩니다.
  • Alpine 기반 이미지에서 LibreSSL 관련 OpenSSL 빌드 문제(Bug #80368)가 수정되었으므로, 기존에 Alpine PHP 7.4 빌드에서 오류를 겪었다면 이번 버전으로 해소될 수 있습니다.

Ubuntu/Debian 서버 (운영 환경)

# ondrej/php PPA 사용 시 sudo apt update && sudo apt upgrade php7.4 sudo systemctl restart php7.4-fpm

실무 체크리스트

로컬 개발 환경

  • PHP 버전 확인: php -v → 7.4.14 이상 여부 확인
  • FILTER_VALIDATE_URL을 사용하는 커스텀 유효성 검사 규칙, Form Request, 미들웨어 코드 검색
    grep -rn "FILTER_VALIDATE_URL" app/ config/ routes/
  • Closure::fromCallable() + bindTo()/bind() 패턴 사용 여부 확인 (매크로, 서비스 컨테이너 관련)
  • PDO MySQL 관련 스토어드 프로시저, upsert, 다중 SQL 실행 코드 테스트

스테이징 환경

  • PHP 7.4.14로 업그레이드 후 전체 테스트 스위트 실행: php artisan test
  • 파일 업로드 기능이 있는 경우 finfo 관련 동작 검증
  • Phar 기반 배포 도구(Composer, Laravel Zero 등) 정상 동작 확인
  • Nginx + PHP-FPM 환경에서 SCRIPT_FILENAME 누락 요청 처리 동작 확인
  • 스트림 필터 사용 코드(파일 암호화, 스트리밍 다운로드 등) 데이터 무결성 테스트

운영 환경

  • 배포 전 스테이징 테스트 완료 확인
  • 업그레이드 전 PHP-FPM 설정 백업
  • 롤링 배포 또는 점검 시간 중 업그레이드 적용
  • 업그레이드 후 PHP-FPM 재시작: sudo systemctl restart php7.4-fpm
  • 에러 로그 모니터링 (업그레이드 직후 1~2시간): /var/log/php7.4-fpm.log
  • OPcache 초기화: php artisan opcache:clear 또는 PHP-FPM 재시작으로 캐시 무효화
  • FILTER_VALIDATE_URL 동작 변경으로 인한 기존 사용자 데이터 영향 여부 검토

📝 편집자 주: 이 문서는 초안입니다. CVE-2020-7071의 실제 악용 가능성 및 Laravel 유효성 검사 레이어(Illuminate\Validation)와의 구체적인 연관성은 추가 검증이 필요합니다. Homebrew 포뮬러의 7.4.14 업데이트 시점은 공식 채널에서 별도 확인을 권장합니다.