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

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

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

발행: 2026년 8월 6일

## 요약

요약

PHP 7.4.28은 2022년 2월 17일 릴리스된 보안 패치로, php_filter_float() 함수에서 정수 처리 실패 시 발생하는 UAF(Use-After-Free) 취약점(버그 #81708)을 수정합니다. PHP 7.4 브랜치는 보안 지원이 제한적으로 유지되는 단계이므로, 해당 버전을 사용 중인 Laravel 프로젝트는 즉각적인 업그레이드와 함께 PHP 8.x 마이그레이션 계획 수립이 필요합니다.


핵심 내용

🔴 보안 취약점: UAF in php_filter_float() (버그 #81708)

  • 영향 컴포넌트: PHP Filter 확장
  • 취약점 유형: UAF (Use-After-Free) — 메모리 손상 계열 취약점으로, 공격자가 조건을 충족할 경우 임의 코드 실행(RCE) 또는 프로세스 크래시로 이어질 수 있습니다.
  • 발생 조건: php_filter_float()가 정수(int) 입력을 처리하다 실패하는 경우 메모리 해제 후 접근이 발생합니다.
  • Laravel 관련성: Laravel의 Request::validate(), filter_var(), FILTER_VALIDATE_FLOAT 등을 활용하는 입력 검증 로직이 간접적으로 영향을 받을 수 있습니다.
// 아래와 같은 float 필터를 사용하는 코드가 영향 범위에 해당 filter_var($input, FILTER_VALIDATE_FLOAT); // Laravel Validation에서도 내부적으로 유사한 필터를 활용 $request->validate([ 'price' => 'numeric', ]);

⚠️ 주의: UAF 취약점은 단순한 기능 버그가 아닙니다. 외부 입력을 float 필터로 처리하는 엔드포인트가 존재한다면, 해당 취약점은 실질적인 공격 벡터가 됩니다.


📋 7.4.27 이하 버전에서 누적된 주요 수정 사항 (참고)

7.4.28로 한 번에 업그레이드하는 경우, 아래 수정 사항도 함께 반영됩니다.

버전컴포넌트내용
7.4.27FPM힙 오버플로우 가능성 수정 (zlog)
7.4.27PCRE범위 초과(Out of Bounds) 수정
7.4.26Core기본 MIME 타입/문자셋을 통한 헤더 인젝션 수정
7.4.26XMLCVE-2021-21707 특수문자 경로 처리 수정
7.4.26MBString이전 요청의 포인터 재사용 가능성 수정
7.4.25FPMCVE-2021-21703 root 프로세스 권한 상승 취약점 수정
7.4.24ZipCVE-2021-21706 압축 해제 경로 탈출 취약점 수정
7.4.21CoreCVE-2021-21705 FILTER_VALIDATE_URL SSRF 우회 수정
7.4.21PDO_FirebirdCVE-2021-21704 스택 버퍼 오버플로우 수정

현재 7.4.27 이하를 사용 중이라면 단일 취약점이 아닌 다수의 보안 이슈에 노출된 상태입니다.


⚠️ PHP 7.4 생명주기 현황

  • PHP 7.4의 Active Support는 2021년 11월 28일 종료되었습니다.
  • Security Support는 2022년 11월 28일 종료 예정입니다 (릴리스 당시 기준).
  • 즉, 7.4.28은 사실상 PHP 7.4의 마지막 보안 패치들 중 하나에 해당합니다.
  • PHP 8.0, 8.1 등으로의 마이그레이션이 장기적으로 필수입니다.

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

Laravel 버전별 호환성

Laravel 버전PHP 7.4 지원 여부권장 PHP
Laravel 8.x✅ 지원8.0 이상 권장
Laravel 9.x❌ 미지원PHP 8.0 필수
Laravel 10.x❌ 미지원PHP 8.1 필수

Laravel 8.x를 PHP 7.4에서 운영 중인 팀은 이번 업그레이드를 기점으로 Laravel 9/10 + PHP 8.1 마이그레이션 로드맵 수립을 권장합니다.


로컬 개발 환경별 업그레이드 가이드

Laravel Valet (macOS)

# Homebrew를 통한 PHP 업그레이드brew upgrade php@7.4# 버전 확인php -v# Valet 재시작valet restart

Homebrew의 PHP 7.4 포뮬러는 관리가 축소되고 있으므로, shivammathur/php tap 사용을 권장합니다.

brew tap shivammathur/phpbrew install shivammathur/php/php@7.4brew link --overwrite --force shivammathur/php/php@7.4

Laravel Sail (Docker)

docker-compose.yml 또는 Laravel Sail의 Dockerfile 이미지 태그를 확인하세요.

# docker-compose.yml 예시 services: laravel.test: build: context: ./vendor/laravel/sail/runtimes/7.4 # → 8.1 또는 8.2로 변경 권장
# 이미지 재빌드./vendor/bin/sail build --no-cache./vendor/bin/sail up -d

서버 환경 (Ubuntu/CentOS)

# Ubuntu — ondrej/php PPA 활용sudo add-apt-repository ppa:ondrej/phpsudo apt updatesudo apt install php7.4  #    upgrade # 버전 확인php7.4 -v

보안 위험도 평가

항목평가
취약점 심각도🔴 높음 (UAF, 메모리 손상 계열)
외부 입력 노출 여부프로젝트별 판단 필요
패치 긴급도즉각 적용 권장
PHP 7.4 장기 사용 위험🔴 높음 (EOL 임박)

실무 체크리스트

🖥️ 로컬 환경

  • php -v 명령으로 현재 PHP 버전 확인
  • PHP 7.4.28로 업그레이드 (Homebrew, shivammathur/php tap, MAMP Pro 등 환경에 맞게 적용)
  • 업그레이드 후 php -v7.4.28 적용 확인
  • composer install 재실행 및 의존성 이상 여부 확인
  • php artisan --version 정상 동작 확인
  • FILTER_VALIDATE_FLOAT 또는 filter_var(..., FILTER_VALIDATE_FLOAT) 사용 코드 검색 및 동작 테스트
# 코드베이스 내 filter 관련 사용 검색 grep -rn "FILTER_VALIDATE_FLOAT\|filter_var" app/ --include="*.php"

🧪 스테이징 환경

  • 스테이징 서버 PHP를 7.4.28로 업그레이드
  • phpinfo() 또는 php -v로 버전 반영 확인
  • PHP-FPM 재시작 (sudo systemctl restart php7.4-fpm)
  • 숫자/float 입력을 처리하는 API 엔드포인트 기능 테스트
  • Laravel 로그(storage/logs/laravel.log) 오류 모니터링
  • 결제, 수량, 가격 등 numeric 검증 로직 중점 회귀 테스트

🚀 프로덕션 환경

  • 배포 전 스테이징 환경에서 이상 없음을 반드시 확인
  • 서버 PHP 패키지 업그레이드 (운영 환경 패키지 관리자에 맞게)
# Ubuntu 예시sudo apt-get updatesudo apt-get install --only-upgrade php7.4 php7.4-fpm php7.4-common# 업그레이드 후 PHP-FPM 재시작sudo systemctl restart php7.4-fpm# 버전 확인php7.4 -v
  • Nginx / Apache 웹 서버 재시작 (필요 시)
  • 배포 후 에러율, 응답 시간 모니터링 (Sentry, Datadog, CloudWatch 등)
  • opcache_reset() 또는 PHP-FPM reload로 OPcache 갱신

🗺️ 중장기 마이그레이션 권고

PHP 7.4는 보안 지원 종료가 가까워진 버전입니다. 이번 업그레이드를 임시 조치로 적용하되, PHP 8.1 이상 + Laravel 10.x 마이그레이션 계획을 팀 내부에서 수립하세요.

# PHP 8.1 호환성 사전 점검 (Rector 활용)composer require rector/rector --dev./vendor/bin/rector process --dry-run

📝 편집자 주: 이 문서는 초안입니다. PHP 7.4의 정확한 보안 지원 종료일 및 각 서버 환경별 업그레이드 명령어는 운영 환경에 따라 다를 수 있으므로 검토 후 보완이 필요합니다.