PHP 7.3.33 업데이트 — 한국 Laravel 개발자 영향 분석
작성: 라라벨 코리아 (초안)
발행: 2026년 8월 6일
## 요약
요약
PHP 7.3.33은 2021년 11월 18일에 릴리스된 보안 패치 버전으로, XML 확장의 특수 문자 처리 취약점(CVE-2021-21707)을 수정합니다. PHP 7.3 브랜치의 마지막 보안 릴리스 중 하나이며, 해당 버전을 운영 중인 한국 Laravel 개발자라면 즉각적인 대응이 필요합니다. PHP 7.3은 2021년 12월 31일부로 공식 지원이 종료(EOL)되었으므로, 이번 업데이트를 계기로 PHP 8.x 마이그레이션 계획을 수립하는 것을 강력히 권장합니다.
핵심 내용
🔴 CVE-2021-21707 — XML 특수 문자 경로 처리 취약점 (7.3.33)
- 대상 컴포넌트: PHP XML 확장 (
ext/xml) - 취약점 요약: 특수 문자가 포함된 입력값이 XML 함수 내부의 경로(path) 처리를 비정상적으로 종료시키는 버그입니다.
- 영향 범위:
simplexml_load_file(),DOMDocument::load(),XMLReader::open()등 파일 경로를 인자로 받는 XML 관련 함수 전반에 영향을 줄 수 있습니다. - Laravel 연관성: XML 기반 API 연동(SOAP, RSS 피드 파싱, 공공 API 등),
Storage::get()으로 불러온 XML 파일 처리 로직에서 잠재적 위험이 존재합니다.
📋 7.3.33 이전 주요 보안 수정 이력 요약
PHP 7.3.33 릴리스 노트에는 이전 마이너 버전들의 변경 이력도 함께 포함되어 있습니다. 보안 관련 항목만 정리하면 다음과 같습니다.
| 버전 | CVE | 영향 컴포넌트 | 심각도 수준 |
|---|---|---|---|
| 7.3.32 | CVE-2021-21703 | PHP-FPM | 매우 높음 (권한 상승) |
| 7.3.31 | CVE-2021-21706 | Zip | 높음 (경로 탈출) |
| 7.3.29 | CVE-2021-21705 | FILTER_VALIDATE_URL | 중간 (SSRF) |
| 7.3.29 | CVE-2021-21704 | PDO_Firebird | 높음 (스택 오버플로우) |
| 7.3.27 | CVE-2021-21702 | SOAP | 중간 (Null 역참조) |
| 7.3.26 | CVE-2020-7071 | FILTER_VALIDATE_URL | 중간 |
| 7.3.23 | CVE-2020-7070 | Cookie 처리 | 중간 |
| 7.3.23 | CVE-2020-7069 | OpenSSL | 높음 |
| 7.3.21 | CVE-2020-7068 | Phar | 중간 |
| 7.3.18 | CVE-2019-11048 | Core (multipart) | 높음 (OOM/DoS) |
⚠️ 주의: PHP-FPM을 사용하는 서비스에서 7.3.32 미만 버전을 운영 중이라면 CVE-2021-21703(root 프로세스 권한 상승)이 가장 위험합니다. 즉각적인 업데이트가 필요합니다.
🔍 Laravel 개발자가 특히 주목해야 할 버그 수정
SSRF 관련 (CVE-2021-21705, CVE-2020-7071)
FILTER_VALIDATE_URL을 사용한 URL 검증 우회 가능성이 수정되었습니다.- Laravel의
filter_var($url, FILTER_VALIDATE_URL)패턴이나 커스텀 Request Validation에서 URL 검증을 직접 구현한 경우 영향을 받을 수 있습니다.
ZipArchive 경로 탈출 (CVE-2021-21706)
ZipArchive::extractTo()가 지정된 목적지 디렉토리 외부로 파일을 추출하는 버그가 수정되었습니다.- Laravel의 파일 업로드 후 압축 해제 기능(
Storage, 커스텀 Artisan 명령어 등)에서 직접적으로 영향을 받습니다.
imap_mail_compose() 헤더 인젝션
- IMAP을 통한 메일 발송 로직에서 헤더 인젝션이 가능했던 버그가 수정되었습니다.
- Laravel Mail과 직접 연관되지는 않지만, PHP IMAP 확장을 직접 사용하는 레거시 코드가 있다면 검토가 필요합니다.
한국 Laravel 개발자에게 미치는 영향
⏰ EOL 경고 — 가장 중요한 메시지
PHP 7.3은 2021년 12월 31일부로 공식 지원이 완전히 종료되었습니다. 7.3.33은 사실상 이 브랜치의 마지막 보안 패치에 해당합니다. 현재 PHP 7.3을 사용 중이라면 보안 패치를 받을 수 없는 상태입니다.
PHP 7.3 EOL: 2021-12-31 ← 현재 모든 신규 취약점에 무방비 상태
PHP 7.4 EOL: 2022-11-28 ← 마찬가지로 EOL
PHP 8.0 EOL: 2023-11-26 ← EOL
PHP 8.1 보안 지원: 2025-12-31
PHP 8.2 활성 지원: 2025-12-31
PHP 8.3 활성 지원: 2026-12-31 (권장)Laravel 버전 호환성
| Laravel 버전 | 최소 PHP 요구사항 | PHP 7.3 지원 |
|---|---|---|
| Laravel 6.x (LTS) | PHP 7.2+ | ✅ (단, Laravel 6.x도 EOL) |
| Laravel 7.x | PHP 7.2.5+ | ✅ (EOL) |
| Laravel 8.x | PHP 7.3+ | ✅ (EOL) |
| Laravel 9.x | PHP 8.0+ | ❌ |
| Laravel 10.x | PHP 8.1+ | ❌ |
| Laravel 11.x | PHP 8.2+ | ❌ |
PHP 7.3을 사용 중이라면 Laravel 8.x 이하 버전만 사용 가능하며, 이 모든 버전은 현재 공식 보안 지원이 종료된 상태입니다.
로컬 개발 환경별 업그레이드 경로
Laravel Valet (macOS)
# 현재 PHP 버전 확인php -v# Homebrew를 통한 PHP 업그레이드brew upgrade php # 최신 안정 버전으로 업그레이드# 또는 특정 버전 지정brew install php@8.3valet use php@8.3Laravel Sail (Docker)
# docker-compose.yml 또는 .env 수정
# SAIL_PHP_VERSION=8.3 으로 변경 후
./vendor/bin/sail build --no-cacheDocker 직접 사용 시
# FROM php:7.3-fpm → 변경
FROM php:8.3-fpmAWS EC2 / 카페24 / NHN Cloud 등 한국 클라우드 환경
- Amazon Linux 2:
amazon-linux-extras install php8.2또는 Remi 저장소 활용 - Ubuntu:
ondrej/phpPPA를 통한 업그레이드 권장 - 카페24 호스팅: 관리 패널 내 PHP 버전 변경 기능 확인 필요 (7.3 고정인 경우 호스팅사 문의)
실무 체크리스트
📍 즉시 확인 (오늘)
- 운영 서버의 PHP 버전 확인:
php -v또는phpinfo()출력 확인 - PHP 7.3.x 사용 중이라면 현재 버전이 7.3.33인지 확인
- PHP-FPM 사용 여부 확인 — CVE-2021-21703 (권한 상승) 해당 여부 즉시 점검
-
ZipArchive::extractTo()를 사용하는 코드 존재 여부 검색:grep -r "extractTo" app/ --include="*.php" -
FILTER_VALIDATE_URL을 사용한 URL 검증 코드 검색:grep -r "FILTER_VALIDATE_URL" app/ --include="*.php"
🖥️ 로컬/스테이징 환경
- PHP 8.1 이상으로 업그레이드 테스트 환경 구성
-
composer.json의require.php버전 제약 조건 확인 및 업데이트 -
php artisan명령으로 deprecated 경고 확인:php artisan about - PHP 8.x에서 제거된 기능 사용 여부 점검 (
each(),create_function(),split()등) - PHPStan 또는 Rector를 활용한 코드 호환성 자동 분석:
composer require --dev rector/rectorvendor/bin/rector process --dry-run - 테스트 스위트 전체 실행하여 호환성 이슈 확인:
php artisan test
🚀 운영(Production) 환경
- PHP 7.3 사용 중이고 즉시 업그레이드가 불가한 경우: PHP 7.3.33으로 최소한 패치 업데이트 적용
- 시스템 패키지 관리자를 통한 업데이트:
# Ubuntu/Debian (ondrej/php PPA 사용 시) sudo apt update && sudo apt upgrade php7.3 # CentOS/RHEL (Remi 저장소 사용 시) sudo yum update php73 - PHP-FPM 서비스 재시작 확인:
sudo systemctl restart php7.3-fpm# 또는sudo service php-fpm restart - 업데이트 후 애플리케이션 정상 동작 확인 (헬스체크 엔드포인트 활용)
- 중장기 계획: PHP 8.2 또는 8.3 + Laravel 10/11 마이그레이션 로드맵 수립
- 담당자 지정 및 마이그레이션 일정 문서화
- 스테이징 환경에서 PHP 8.x 호환성 검증 선행
🔒 보안 강화 추가 조치
- XML 파싱 코드에서 외부 입력을 경로로 사용하는 경우 입력값 화이트리스트 검증 추가
-
ZipArchive사용 시 추출 경로를realpath()로 검증하는 로직 추가:// 예시: 경로 탈출 방지 $extractPath = realpath($destination); if (strpos($extractPath, $allowedBasePath) !== 0) { throw new \RuntimeException('허용되지 않은 경로입니다.'); } - WAF(웹 방화벽) 또는 보안 그룹 규칙에서 비정상적인 XML 요청 모니터링 설정 검토
📝 편집자 주: 이 문서는 초안(draft)입니다. PHP 7.3 EOL 날짜 및 각 CVE의 CVSS 점수는 공식 PHP 보안 공지 및 NVD(National Vulnerability Database)에서 재확인을 권장합니다. 운영 환경 업그레이드 전에는 반드시 스테이징 환경에서 충분한 검증을 거치시기 바랍니다.