PHP 7.3.32 업데이트 — 한국 Laravel 개발자 영향 분석
작성: 라라벨 코리아 (초안)
발행: 2026년 8월 6일
## 요약
요약
PHP 7.3.32는 PHP-FPM의 루트 프로세스에서 발생하는 메모리 범위 외 읽기/쓰기(OOB R/W) 취약점(CVE-2021-21703)을 수정한 보안 릴리스입니다. 이 취약점은 권한 상승(privilege escalation)으로 이어질 수 있어 즉각적인 업그레이드가 필요합니다. PHP 7.3 브랜치는 현재 보안 수정만 제공되는 단계이므로, 장기적으로는 PHP 8.x로의 마이그레이션을 검토해야 합니다.
핵심 내용
CVE-2021-21703: PHP-FPM 권한 상승 취약점 (PHP 7.3.32의 핵심 수정)
- 영향 범위: PHP-FPM을 사용하는 모든 서버 환경
- 취약점 유형: OOB(Out-of-Bounds) 읽기/쓰기 — PHP-FPM 루트 프로세스에서 발생
- 위험도: 로컬 권한 상승(Local Privilege Escalation). 공격자가 서버에 대한 낮은 수준의 접근 권한만 있어도 루트 권한 탈취 가능
- 수정자: Jakub Zelenka (PHP 보안팀)
⚠️ 주의: PHP-FPM은 마스터 프로세스가 root 권한으로 실행되고 워커 프로세스는 낮은 권한 사용자(예:
www-data)로 실행되는 구조입니다. 이 취약점은 마스터 프로세스의 메모리를 조작할 수 있어, 결과적으로 루트 권한 실행이 가능해집니다.
7.3.31 이하의 주요 보안 수정 요약 (누적 패치)
현재 PHP 7.3.32 이전 버전을 사용 중이라면 아래 CVE들도 함께 해결됩니다:
| 버전 | CVE | 영향 컴포넌트 | 위험 내용 |
|---|---|---|---|
| 7.3.31 | CVE-2021-21706 | Zip | ZipArchive::extractTo() 경로 탈출(Path Traversal) — 지정 디렉터리 외부에 파일 생성 가능 |
| 7.3.29 | CVE-2021-21705 | Core (Filter) | FILTER_VALIDATE_URL의 SSRF 우회 |
| 7.3.29 | CVE-2021-21704 | PDO_Firebird | 스택 버퍼 오버플로우, SIGSEGV(다중 버그) |
| 7.3.27 | CVE-2021-21702 | SOAP | SoapClient Null 역참조 |
| 7.3.26 | CVE-2020-7071 | Standard (Filter) | FILTER_VALIDATE_URL 유효하지 않은 userinfo 수락 |
| 7.3.23 | CVE-2020-7070 | Core | 쿠키 이름 인코딩 파싱으로 __Host- 쿠키 위조 가능 |
| 7.3.23 | CVE-2020-7069 | OpenSSL | AES-CCM 12바이트 IV 암호화 오류 |
| 7.3.21 | CVE-2020-7068 | Phar | 해제된 해시 키 사용(Use-After-Free) |
| 7.3.18 | CVE-2019-11048 | Core | 멀티파트 폼 데이터 OOM 및 임시 파일 미삭제 |
PHP 7.3 브랜치 상태
- PHP 7.3은 2021년 12월 6일에 공식 지원 종료(EOL)가 예정되어 있습니다 (소스 데이터 기준, 7.3.32 출시 시점).
- 7.3.32 이후 다음 버전인 7.3.33도 changelog에 언급되어 있으나, 보안 수정이 있는 최신 안정 릴리스는 7.3.32입니다.
- EOL 이후에는 보안 패치가 제공되지 않으므로 PHP 8.0 또는 8.1로의 업그레이드 계획이 필요합니다.
한국 Laravel 개발자에게 미치는 영향
Laravel 버전 호환성
PHP 7.3은 Laravel 6.x(LTS), 7.x, 8.x 초기 버전을 지원합니다. 그러나 현재 시점에서:
- Laravel 8.x: PHP 7.3 지원하나, 최신 기능(특히 PHP 8.x 전용 문법)은 제한됨
- Laravel 9.x 이상: PHP 8.0 이상 필수 — PHP 7.3에서는 실행 불가
Laravel 8.x 이하를 PHP 7.3에서 운영 중이라면, 이번 보안 패치는 필수이며 동시에 PHP 8.x + Laravel 9.x/10.x 업그레이드 로드맵을 수립해야 합니다.
PHP-FPM 사용 환경별 위험도
| 환경 | 위험도 | 비고 |
|---|---|---|
| 공유 호스팅 (PHP-FPM) | 🔴 높음 | 타 테넌트가 권한 상승 공격 시도 가능 |
| 단독 서버 (PHP-FPM + Nginx/Apache) | 🟠 중간 | 외부 공격 경로가 제한적이나 내부 취약 앱이 있을 경우 위험 |
| Docker/Laravel Sail | 🟡 낮음~중간 | 컨테이너 격리로 위험 경감, 그러나 이미지 업데이트 권장 |
| Laravel Valet (macOS 개발) | 🟡 낮음 | 로컬 개발 환경, 외부 노출 없으면 즉각 위험 낮음. 단, 팀 공유 환경이면 업데이트 필요 |
Laravel Sail 사용자
sail 환경은 php:7.3-fpm 기반 Docker 이미지를 사용할 수 있습니다. Docker Hub의 공식 PHP 이미지가 7.3.32로 업데이트되었는지 확인 후 이미지를 재빌드해야 합니다.
# Sail 환경에서 이미지 재빌드./vendor/bin/sail build --no-cacheLaravel Valet 사용자
macOS에서 Homebrew로 PHP를 관리하는 경우:
brew upgrade php@7.3# 또는 PHP 8.x로 전환 검토brew install php@8.1valet use php@8.1FILTER_VALIDATE_URL SSRF 우회 (CVE-2021-21705) — Laravel 개발자 주목
Laravel에서 URL 유효성 검사 시 filter_var($url, FILTER_VALIDATE_URL)을 직접 사용하거나, 이를 내부적으로 사용하는 패키지가 있다면 SSRF 공격에 노출될 수 있습니다. Laravel의 url 검증 규칙도 내부적으로 이 함수를 활용하므로 확인이 필요합니다.
ZipArchive 경로 탈출 (CVE-2021-21706) — 파일 업로드 기능 주의
Laravel 애플리케이션에서 ZIP 파일 업로드 및 압축 해제 기능을 구현한 경우, 7.3.31 이하 버전에서는 악의적으로 조작된 ZIP 파일을 통해 서버의 임의 경로에 파일이 생성될 수 있습니다.
실무 체크리스트
로컬 개발 환경
-
php -v명령으로 현재 PHP 버전 확인 - PHP 7.3 사용 중이라면 7.3.32로 업데이트
# Ubuntu/Debian (Ondrej PPA) sudo apt update && sudo apt upgrade php7.3 # macOS Homebrew brew upgrade php@7.3 # CentOS/RHEL (Remi Repository) sudo yum update php73 - Laravel Sail 사용 시 Docker 이미지 재빌드
./vendor/bin/sail build --no-cache./vendor/bin/sail up -d - PHP 8.x 마이그레이션 계획 수립 (PHP 7.3 EOL 대비)
스테이징 환경
- PHP 버전 업데이트 후
php-fpm서비스 재시작 확인sudo systemctl restart php7.3-fpmsudo systemctl status php7.3-fpm - Laravel 애플리케이션 정상 동작 확인 (
php artisan config:cache,route:cache재실행) - ZIP 파일 업로드/해제 기능이 있다면 회귀 테스트 수행
-
FILTER_VALIDATE_URL을 사용하는 커스텀 유효성 검사 로직 재검토 - PHPUnit 테스트 전체 실행으로 회귀 이슈 확인
프로덕션 환경
- 즉시: PHP 7.3.32로 업데이트 — CVE-2021-21703(권한 상승)은 즉각 조치 필요
- 업데이트 전 스냅샷/백업 생성
- PHP-FPM 재시작 전 트래픽이 적은 시간대 선택 (무중단 배포 고려)
# 무중단 PHP-FPM 재시작 (graceful)sudo kill -USR2 $(cat /run/php/php7.3-fpm.pid)# 또는sudo systemctl reload php7.3-fpm - 업데이트 후
php -v로 버전 확인php -v# PHP 7.3.32 (cli) ... 확인 - Nginx/Apache 에러 로그 모니터링 (업데이트 직후 30분)
- Laravel 로그(
storage/logs/laravel.log) 이상 여부 확인 - 중장기: PHP 7.3 EOL(2021년 12월) 대비 PHP 8.0/8.1 마이그레이션 일정 확정
- Laravel 버전에 따른 PHP 8.x 호환성 확인
rector/rector패키지를 활용한 PHP 8.x 코드 자동 마이그레이션 검토phpstan또는larastan으로 타입 안전성 사전 점검
Docker/컨테이너 환경 추가 확인
-
Dockerfile에서 PHP 베이스 이미지 태그 확인# 버전을 고정하여 사용 중인 경우 업데이트 FROM php:7.3.32-fpm # 또는 PHP 8.x로 전환 검토 FROM php:8.1-fpm - CI/CD 파이프라인의 PHP 버전 고정 설정 업데이트
- Kubernetes/ECS 등 오케스트레이션 환경에서 롤링 업데이트 적용
⚠️ 편집자 검토 메모: PHP 7.3의 정확한 EOL 날짜(2021년 12월 6일)는 소스 데이터에 명시되지 않았으므로 공식 PHP 지원 일정(https://www.php.net/supported-versions.php)에서 재확인 후 본문에 반영하시기 바랍니다. Laravel 버전별 PHP 요구사항도 최신 공식 문서 기준으로 검토를 권장합니다.