PHP 7.3.29 업데이트 — 한국 Laravel 개발자 영향 분석
작성: 라라벨 코리아 (초안)
발행: 2026년 8월 6일
## 요약
요약
PHP 7.3.29는 2021년 7월 1일에 릴리스된 PHP 7.3 브랜치의 보안 패치 버전입니다. FILTER_VALIDATE_URL을 통한 SSRF 우회 취약점(CVE-2021-21705)과 PDO_Firebird 익스텐션의 스택 버퍼 오버플로우 및 다수의 세그멘테이션 폴트(CVE-2021-21704)가 수정되었습니다. PHP 7.3은 이미 공식 지원이 종료된 버전이므로, 이 릴리스를 사용 중인 팀은 즉각적인 업그레이드와 함께 PHP 8.x로의 마이그레이션 계획 수립을 강력히 권장합니다.
핵심 내용
보안 취약점 수정 (CVE)
CVE-2021-21705 — FILTER_VALIDATE_URL SSRF 우회
- 영향 컴포넌트: Core (
filter확장) - 취약점 유형: SSRF(Server-Side Request Forgery) 우회
- 버그 번호: #81122
- 설명:
FILTER_VALIDATE_URL필터가 특정 형식의 URL을 정상으로 판단하여, 공격자가 이를 이용해 서버 내부 네트워크 자원에 요청을 유도할 수 있는 취약점입니다. - Laravel 관련성:
filter_var($url, FILTER_VALIDATE_URL)을 직접 사용하거나, 이를 내부적으로 활용하는 유효성 검사 로직(예:url밸리데이션 룰의 특정 구현 경로)에 영향을 줄 수 있습니다. 외부 URL을 입력받아 HTTP 요청을 수행하는 기능(웹훅, 외부 API 연동,Http::get()래퍼 등)에서 특히 주의가 필요합니다.
CVE-2021-21704 — PDO_Firebird 다중 메모리 안전성 취약점
- 영향 컴포넌트:
PDO_Firebird익스텐션 - 취약점 유형: 스택 버퍼 오버플로우, SIGSEGV(세그멘테이션 폴트), 크래시
- 버그 번호: #76448, #76449, #76450, #76452
- 설명: Firebird 데이터베이스를 PDO로 연결 시
firebird_info_cb,firebird_handle_doer,firebird_stmt_execute,firebird_fetch_blob함수들에서 메모리 관련 충돌이 발생할 수 있습니다. - Laravel 관련성: Firebird DB를 사용하는 한국 Laravel 프로젝트는 드물지만, 레거시 ERP 연동 등 특수한 환경에서 사용하는 경우 즉시 패치가 필수입니다.
PHP 7.3의 생명주기 현황
⚠️ 중요: PHP 7.3의 공식 활성 지원(Active Support)은 2020년 12월 6일에 종료되었으며, 보안 지원(Security Support)도 2021년 12월 6일에 종료됩니다. PHP 7.3.29는 사실상 이 브랜치의 마지막 보안 릴리스 중 하나가 될 가능성이 높습니다.
| PHP 버전 | 활성 지원 종료 | 보안 지원 종료 | Laravel 지원 여부 |
|---|---|---|---|
| 7.3 | 2020-12-06 | 2021-12-06 | Laravel 8까지 (제한적) |
| 7.4 | 2021-11-28 | 2022-11-28 | Laravel 9까지 |
| 8.0 | 2022-11-26 | 2023-11-26 | Laravel 9, 10 |
| 8.1 | 2023-11-25 | 2025-12-31 | Laravel 10, 11 ✅ |
| 8.2 | 2024-12-31 | 2026-12-31 | Laravel 11 ✅ |
한국 Laravel 개발자에게 미치는 영향
보안 위험도 평가
SSRF(CVE-2021-21705)는 한국 개발 환경에서 실질적 위협입니다. 특히 다음 시나리오에서 노출 가능성이 높습니다:
- 사용자가 입력한 URL로 외부 이미지나 데이터를 가져오는 기능
- 웹훅(Webhook) URL 등록 및 검증 시
FILTER_VALIDATE_URL사용 - 내부 관리 API가 공개 서버와 같은 네트워크 세그먼트에 존재하는 환경
호환성 및 마이그레이션 부담
- Laravel 8 이하: PHP 7.3에서 실행 중인 경우 이번 패치 적용 후 PHP 8.1+ 및 Laravel 10/11 마이그레이션을 로드맵에 반드시 포함시켜야 합니다.
- Laravel 9+: 공식적으로 PHP 8.0 이상을 요구하므로, PHP 7.3을 아직 사용 중이라면 이미 최신 Laravel 기능을 사용하지 못하고 있는 상태입니다.
로컬 개발 환경별 업그레이드 경로
Laravel Valet (macOS)
# Homebrew를 통한 PHP 버전 업그레이드
brew upgrade php@8.2
valet use php@8.2
# 또는 특정 프로젝트에 .valetrc 사용
echo "php=php@8.2" > .valetrcLaravel Sail (Docker 기반)
docker-compose.yml 또는 docker/8.2/Dockerfile 경로를 확인하고, Sail이 제공하는 PHP 버전 설정을 변경합니다:
# sail:publish 후 Dockerfile에서 PHP 버전 변경php artisan sail:publish# docker/8.x 디렉토리의 Dockerfile 수정 후./vendor/bin/sail build --no-cache직접 Docker 운영 환경
# 7.3 → 8.2 변경 예시
FROM php:8.2-fpm-alpineForge / Envoyer 사용 시
- Forge 서버 패널 → PHP 버전 관리에서 신규 버전 설치 후 사이트 별 PHP 버전 전환
- Envoyer 배포 훅에서
php바이너리 경로 확인 필요
실무 체크리스트
즉시 조치 (24시간 이내)
- 현재 운영 서버의 PHP 버전 확인:
php -v - PHP 7.3을 사용 중인 서버 목록 파악 (모니터링 대시보드, Forge 패널 등)
-
FILTER_VALIDATE_URL을 직접 사용하는 코드 검색:grep -rn "FILTER_VALIDATE_URL" app/ config/ routes/ - Laravel의
url밸리데이션 룰 및 커스텀 밸리데이터에서 URL 검증 로직 점검 - Firebird DB 연동 여부 확인 (
config/database.php)
스테이징 환경 (이번 주 내)
- PHP 7.3.29로 패치 적용 테스트 (현재 7.3.x 유지 시)
# Ubuntu/Debian (ondrej/php PPA 사용 시) sudo apt update && sudo apt upgrade php7.3 php -v # 7.3.29 확인 - 패치 후 애플리케이션 기능 회귀 테스트 실행:
php artisan test - URL 관련 유효성 검사 기능 통합 테스트 추가 검토
중기 마이그레이션 계획 (1~3개월)
- PHP 8.1 또는 8.2 로컬 개발 환경 구성
-
composer.json의require.php버전 제약 조건 확인 및 업데이트"require": { "php": "^8.1" } - PHP 8.x 호환성 점검 도구 실행:
composer require --dev rector/rector# 또는composer require --dev phpcompatibility/php-compatibility -
Deprecated경고를E_ALL수준으로 활성화하여 코드 호환성 문제 조기 발견; php.ini (개발 환경) error_reporting = E_ALL - Laravel 버전 업그레이드 로드맵 수립 (8 → 10 → 11 순차 또는 직접 마이그레이션)
운영 배포 시
- 배포 전 PHP 버전 명시적 고정 (패키지 버전 핀닝)
- 무중단 배포(Rolling Deploy) 또는 Blue-Green 배포 전략 적용
- 배포 후 에러 로그 집중 모니터링 (Sentry, Bugsnag, Laravel Telescope)
- PHP-FPM 재시작 확인:
sudo systemctl restart php7.3-fpm
편집자 주: 이 문서는 PHP 7.3.29 공식 릴리스 체인지로그를 기반으로 작성된 초안입니다. PHP 7.3 보안 지원 종료일(2021년 12월 6일)을 감안할 때, 단순 패치 적용보다 PHP 8.x 마이그레이션을 우선 검토하시기 바랍니다. Laravel 버전별 PHP 요구사항은 laravel.com/docs 공식 문서에서 최신 정보를 확인하세요.