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

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

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

발행: 2026년 8월 6일

## 요약

요약

PHP 7.4.11이 2020년 10월 1일 릴리스되었습니다. 이번 업데이트에는 쿠키 보안 취약점(CVE-2020-7070)과 OpenSSL 암호화 취약점(CVE-2020-7069)을 포함한 보안 패치 2건과 다수의 안정성 버그 수정이 포함되어 있습니다. Laravel 애플리케이션을 운영 중인 개발자라면 보안 취약점 대응을 위해 즉시 업그레이드를 검토해야 합니다.


핵심 내용

🔐 보안 수정 사항 (즉시 주의 필요)

CVE-2020-7070 — 악성 __Host- 쿠키 파싱 취약점

  • 영향 영역: Core / 쿠키 처리
  • PHP가 인코딩된 쿠키 이름을 파싱하는 과정에서 __Host- 접두사를 가진 악성 쿠키가 전송될 수 있는 취약점입니다.
  • __Host- 쿠키는 보안 강화 목적으로 도메인 고정(host-only) 및 Secure 플래그가 강제되어야 하나, 이 취약점으로 인해 우회가 가능했습니다.
  • Laravel 관련성: cookie() 헬퍼, Cookie 파사드, 세션 쿠키, CSRF 토큰 쿠키 등 쿠키를 적극 활용하는 Laravel 애플리케이션 전반에 영향을 미칩니다. 특히 금융, 인증 등 민감한 세션 관리가 필요한 서비스에서 주의가 필요합니다.

CVE-2020-7069 — OpenSSL AES-CCM 암호화 IV 처리 오류

  • 영향 영역: OpenSSL 확장
  • 12바이트 IV를 사용하는 AES-CCM 모드 암호화에서 잘못된 암호문(ciphertext) 및 인증 태그(tag)가 생성되는 버그입니다.
  • openssl_encrypt() / openssl_decrypt()를 직접 호출하거나, 이를 내부적으로 사용하는 패키지(예: JWT 라이브러리, 암호화 관련 패키지)를 사용하는 경우 영향을 받을 수 있습니다.
  • Laravel 관련성: Laravel의 Crypt 파사드는 기본적으로 AES-256-CBC를 사용하므로 직접적인 영향은 낮으나, 커스텀 암호화 로직이나 서드파티 패키지에서 AES-CCM을 사용하는 경우 반드시 확인이 필요합니다.

🐛 주요 버그 수정

Core

버그 번호설명Laravel 관련성
#79979CUFA(call_user_func_array)를 통해 참조 파라미터에 값 전달 시 크래시call_user_func_array() 활용 코드에서 안정성 향상
#80037__get() 선언 시 초기화 전 typed property 접근 오류PHP 7.4 typed property 사용 시 관련
#80049가변 인자(variadic)를 통한 정수→문자열 강제 변환 시 메모리 누수장기 실행 큐 워커, Octane 환경에서 유의

OPcache

  • opcache.file_cache 사용 시 커스텀 opcode 핸들러 변경으로 인한 SIGSEGV(세그멘테이션 폴트) 수정 (#79825)
  • SWITCH_STRING 최적화 관련 FREE 명령어 오류 수정 (#80046)
  • 새 인터닝 문자열의 여유 공간 계산 오류 수정 (#80002)
  • Laravel 관련성: php.ini에서 opcache.file_cache를 활성화한 환경(특히 Docker/Sail 기반 개발 환경)에서 안정성이 크게 향상됩니다.

PDO

  • 많은 수의 바인드 파라미터를 사용하는 쿼리에서 $query->fetch() 성능 저하 수정 (#80027)
  • Laravel 관련성: Eloquent ORM이나 Query Builder에서 복잡한 쿼리(whereIn() 등 다수의 바인딩 사용)를 실행할 때 성능 개선 효과를 기대할 수 있습니다.

Standard

  • str_ireplace() 함수에서 발음 구별 기호(diacritics) 문자 처리 버그 수정 (#79986)
  • Laravel 관련성: 다국어(i18n/l10n) 지원, 특히 베트남어·프랑스어·스페인어 등 발음 구별 기호가 포함된 언어를 처리하는 애플리케이션에서 유의미합니다. 한국어 직접 영향은 낮으나 다국어 서비스 운영 시 확인 권장.

📋 7.4.8 ~ 7.4.10의 누적 주요 수정 (미적용 시 함께 반영됨)

7.4.11 이전 버전에서 업그레이드하는 경우 아래 수정 사항도 함께 적용됩니다.

  • CVE-2020-7067 (7.4.5): urldecode()에서 OOB(out-of-bounds) 읽기 취약점
  • CVE-2020-7068 (7.4.9): Phar 파싱 중 해제된 해시 키 사용(use-after-free) 취약점
  • LDAP 메모리 누수 수정 (7.4.10): LDAP 인증을 사용하는 엔터프라이즈 환경에 영향
  • array_merge_recursive() 크래시 (7.4.10): 단일 참조를 포함하는 배열 사용 시 크래시 수정
  • str_replace() 빈 문자열 메모리 누수 (7.4.10): 장기 실행 프로세스에서 메모리 사용량에 영향
  • MySQLnd FLOAT 로케일 문제 (7.4.7): 일부 로케일에서 MySQL FLOAT 값이 정수로 잘리는 버그 수정 — 한국 서버 환경(ko_KR.UTF-8 로케일)에서도 잠재적 영향 가능성이 있었음

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

보안 긴급도: ⚠️ 높음

CVE-2020-7070(쿠키 파싱)은 웹 애플리케이션의 세션 보안과 직결되므로, 운영 환경 즉시 패치를 강력히 권장합니다.

호환성

  • PHP 7.4.x 마이너 업데이트로, 하위 호환성 파괴(breaking change)는 없습니다.
  • Laravel 6.x(LTS), 7.x, 8.x 모두 PHP 7.4를 지원하므로 별도의 코드 수정 없이 PHP만 업데이트하면 됩니다.
  • Composer 의존성 재설치는 불필요합니다.

Laravel Sail (Docker 환경)

# sail 이미지에서 PHP 버전 확인./vendor/bin/sail php -v# 이미지 재빌드가 필요한 경우./vendor/bin/sail build --no-cache
  • Sail의 공식 Docker 이미지(laravelsail/php74-composer)가 7.4.11 이상으로 업데이트되었는지 확인하세요.
  • 로컬 개발 환경에서는 docker pull로 최신 이미지를 가져온 후 컨테이너를 재시작하면 됩니다.

Laravel Valet (macOS)

# Homebrew를 통한 PHP 업데이트brew upgrade php@7.4# Valet 재시작valet restart
  • valet use php@7.4 명령으로 PHP 버전을 명시적으로 지정한 경우, Homebrew 업데이트 후 valet 서비스를 재시작해야 반영됩니다.

Docker 기반 운영 환경

  • php:7.4-fpm 또는 php:7.4-cli 공식 Docker 이미지는 7.4.11로 태그가 업데이트되어 있으니, docker pull php:7.4-fpm 후 컨테이너를 재배포하세요.
  • php:7.4.11-fpm과 같이 명시적 버전 태그를 사용하는 경우, Dockerfile의 이미지 태그를 직접 수정해야 합니다.

opcache.file_cache 사용자 주의

  • 7.4.11에서 file cache 관련 SIGSEGV 버그가 수정되었으므로, 기존에 이 옵션을 비활성화했던 경우 재활성화를 고려할 수 있습니다.
  • 업데이트 후 기존 opcache 캐시를 초기화하는 것을 권장합니다.

실무 체크리스트

로컬 개발 환경

  • 현재 PHP 버전 확인: php -v
  • Homebrew(macOS): brew upgrade php@7.4 실행 후 php -v로 7.4.11 확인
  • Sail(Docker): ./vendor/bin/sail build --no-cache 또는 최신 이미지 pull
  • 직접 설치: 공식 패키지 관리자(apt, yum 등)로 업데이트
  • Valet 사용 시 valet restart 실행
  • php artisan serve로 애플리케이션 정상 구동 확인
  • OPcache file cache 사용 시 캐시 디렉토리 초기화

스테이징 환경

  • PHP 7.4.11 업데이트 적용
  • OPcache 캐시 플러시: php artisan opcache:clear 또는 PHP-FPM 재시작
  • 쿠키 관련 기능 테스트 (로그인, 세션, CSRF)
  • PDO를 사용하는 복잡한 쿼리 성능 회귀 테스트
  • OpenSSL 암호화를 직접 사용하는 기능 테스트 (AES-CCM 사용 여부 확인)
  • str_ireplace()를 사용하는 다국어 처리 기능 테스트 (해당 시)
  • 큐 워커 장기 실행 시 메모리 사용량 모니터링
  • 애플리케이션 로그에서 새로운 에러/경고 발생 여부 확인

운영(프로덕션) 환경

  • 배포 전 반드시 스테이징에서 검증 완료
  • 배포 시간대 선정 (트래픽 최소 시간대 권장)
  • PHP 업데이트 전 현재 PHP 버전 스냅샷/기록
  • PHP 7.4.11 패키지 업데이트:
    # Ubuntu/Debian (ondrej/php PPA 기준)sudo apt-get updatesudo apt-get install --only-upgrade php7.4 php7.4-fpm php7.4-common# CentOS/RHEL (Remi 레포지토리 기준)sudo yum update php74
  • PHP-FPM 재시작:
    sudo systemctl restart php7.4-fpm
  • Nginx/Apache 설정 변경 없이 PHP-FPM만 재시작으로 충분한지 확인
  • OPcache 캐시 초기화 (PHP-FPM 재시작으로 자동 처리되나, file cache 사용 시 별도 삭제 필요)
  • 업데이트 후 헬스체크 엔드포인트 및 주요 기능 스모크 테스트
  • 에러 모니터링 도구(Sentry, Bugsnag 등)에서 이상 징후 모니터링 (최소 30분)
  • 롤백 플랜 준비: 이전 PHP 버전 패키지 보관 또는 스냅샷

⚠️ 주의: 이 문서는 드래프트로 작성되었으며, 실제 배포 전 공식 PHP 변경 로그 및 자사 애플리케이션 특성에 맞게 추가 검토를 권장합니다. AES-CCM 사용 여부 및 __Host- 쿠키 활용 여부는 코드베이스에 따라 영향도가 달라집니다.