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.27 | FPM | 힙 오버플로우 가능성 수정 (zlog) |
| 7.4.27 | PCRE | 범위 초과(Out of Bounds) 수정 |
| 7.4.26 | Core | 기본 MIME 타입/문자셋을 통한 헤더 인젝션 수정 |
| 7.4.26 | XML | CVE-2021-21707 특수문자 경로 처리 수정 |
| 7.4.26 | MBString | 이전 요청의 포인터 재사용 가능성 수정 |
| 7.4.25 | FPM | CVE-2021-21703 root 프로세스 권한 상승 취약점 수정 |
| 7.4.24 | Zip | CVE-2021-21706 압축 해제 경로 탈출 취약점 수정 |
| 7.4.21 | Core | CVE-2021-21705 FILTER_VALIDATE_URL SSRF 우회 수정 |
| 7.4.21 | PDO_Firebird | CVE-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 restartHomebrew의 PHP 7.4 포뮬러는 관리가 축소되고 있으므로,
shivammathur/phptap 사용을 권장합니다.
brew tap shivammathur/phpbrew install shivammathur/php/php@7.4brew link --overwrite --force shivammathur/php/php@7.4Laravel 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 -v로7.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의 정확한 보안 지원 종료일 및 각 서버 환경별 업그레이드 명령어는 운영 환경에 따라 다를 수 있으므로 검토 후 보완이 필요합니다.