PHP 7.3.12 업데이트 — 한국 Laravel 개발자 영향 분석
작성: 라라벨 코리아 (초안)
발행: 2026년 8월 6일
## 요약
요약
PHP 7.3.12는 2019년 11월 21일 릴리스된 보안 및 버그 수정 업데이트입니다. Core, OpCache, OpenSSL, Date, Sockets 등 다양한 영역에서 메모리 손상, 세그폴트, TLS 관련 보안 취약점이 수정되었으며, 이전 버전(7.3.11 포함)에서 발견된 심각한 원격 코드 실행(RCE) 취약점(CVE-2019-11043)도 누적 포함되어 있습니다. Laravel 애플리케이션을 PHP 7.3.x 계열로 운영 중이라면 즉시 업그레이드를 강력히 권장합니다.
핵심 내용
🔴 보안 취약점 (즉시 대응 필요)
PHP 7.3.12는 단독 보안 패치 외에도, 7.3.11에서 수정된 CVE-2019-11043을 포함합니다. 이 취약점은 PHP-FPM + Nginx 환경에서 원격 코드 실행(RCE)이 가능한 심각도 높은 취약점으로, 공개 익스플로잇 코드가 존재합니다.
| CVE | 영향 버전 | 수정 버전 | 설명 |
|---|---|---|---|
| CVE-2019-11043 | 7.3.11 미만 | 7.3.11+ | PHP-FPM env_path_info 언더플로우로 인한 RCE |
| CVE-2019-13224 | 7.3.9 미만 | 7.3.9+ | Oniguruma 6.9.3 CVE 수정 (MBString) |
| CVE-2019-11042 | 7.3.8 미만 | 7.3.8+ | EXIF heap-buffer-overflow |
| CVE-2019-11041 | 7.3.8 미만 | 7.3.8+ | EXIF heap-buffer-overflow |
| CVE-2019-11040 | 7.3.6 미만 | 7.3.6+ | EXIF heap-buffer-overflow |
| CVE-2019-11039 | 7.3.6 미만 | 7.3.6+ | Iconv 정수 오버플로우로 인한 OOB 읽기 |
| CVE-2019-11038 | 7.3.6 미만 | 7.3.6+ | GD 미초기화 읽기 |
| CVE-2019-11036 | 7.3.5 미만 | 7.3.5+ | EXIF heap-buffer-overflow |
⚠️ PHP 7.3.11 이하를 운영 중인 서버는 CVE-2019-11043에 실제로 노출된 상태입니다. 공개 PoC가 존재하므로 즉각적인 패치가 필요합니다.
🟠 7.3.12 신규 버그 수정 상세 분석
Core
- Bug #78658:
Closure::bindTo()사용 시 메모리 손상 → Laravel의Container바인딩, 미들웨어 클로저 등에서 잠재적으로 영향 가능 - Bug #78752: GC(가비지 컬렉터)가 Generator 스택 프레임 해제 중 트리거될 때 세그폴트 → Laravel의
LazyCollection이나 Generator 기반 청크 처리에서 간헐적 크래시 원인이 될 수 있음 - Bug #78689:
Closure::fromCallable([Closure, '__invoke'])미처리 → 일부 이벤트 리스너나 커스텀 callable 등록 방식에서 영향 가능 - Bug #78656: Parse 오류가 최고 로그 레벨로 분류되는 문제 → Sentry, 로그 모니터링 도구에서 불필요한 알림이 발생했을 가능성
OpCache
- Bug #78654: 비ASCII 문자가 포함된 파일의 OpCache 체크섬 오계산 → 한국어 주석이나 한글 문자열이 포함된 PHP 파일에서 OpCache가 올바르게 동작하지 않았을 수 있음 (한국 개발자 직접 영향)
- Bug #78747: OpCache가 커스텀 확장의 반환 결과를 손상시키는 문제
OpenSSL
- Bug #78775: HTTP 요청의 TLS 문제가 다른 암호화 연결에 영향 → 외부 HTTPS API 호출(결제 게이트웨이, 소셜 로그인 등)이 포함된 서비스에서 간헐적 TLS 오류의 원인이었을 수 있음
Date
- Bug #70153:
\DateInterval역직렬화 오류 → 세션이나 캐시에 DateInterval 객체를 저장하는 경우 영향 - Bug #78751:
DatePeriod직렬화 시DateTimeImmutable이 변환되는 문제 → 불변 날짜 객체를 사용하는 코드에서 직렬화/역직렬화 시 예상치 못한 타입 변환 발생
Sockets
- Bug #78665: 멀티캐스트 사용 시 메모리 누수 → 장기 실행 큐 워커나 소켓 기반 서비스에서 점진적 메모리 증가의 원인이 될 수 있음
한국 Laravel 개발자에게 미치는 영향
호환성 및 긴급도
| 영역 | 영향 | 긴급도 |
|---|---|---|
| PHP-FPM + Nginx 운영 환경 | CVE-2019-11043 RCE 취약점 직접 노출 | 🔴 즉시 패치 |
| 한글 주석/문자열이 포함된 PHP 파일 | OpCache 체크섬 오계산으로 캐시 오동작 | 🟠 높음 |
| 외부 HTTPS API 연동 | TLS 오류로 인한 결제·OAuth 장애 가능 | 🟠 높음 |
| LazyCollection / Generator 사용 | GC 트리거 시 세그폴트 | 🟡 중간 |
| 이미지 업로드 처리 (EXIF) | 힙 버퍼 오버플로우 (7.3.8 이전) | 🔴 즉시 패치 |
| 날짜/시간 직렬화 캐시 | DateInterval, DatePeriod 역직렬화 오류 | 🟡 중간 |
도구별 고려사항
Laravel Valet (macOS)
- Valet은 Homebrew를 통해 PHP를 관리합니다.
brew upgrade php@7.3명령으로 업그레이드할 수 있으나, 2019년 릴리스 버전이므로 Homebrew에서 해당 버전을 직접 지원하지 않을 수 있습니다. 현재 PHP 7.3 EOL(2021년 12월) 이후이므로, 가능하면 PHP 8.x로 마이그레이션을 검토하세요.
Laravel Sail (Docker)
docker-compose.yml의 PHP 이미지 태그를7.3.12이상으로 명시적으로 지정하거나,docker pull후docker-compose build --no-cache를 실행하세요.- 공식
php:7.3-fpm이미지가 최신 패치를 반영하고 있는지 Docker Hub에서 확인하세요.
운영 서버 (Ubuntu/CentOS)
- Ubuntu:
apt update && apt upgrade php7.3 - CentOS/RHEL:
yum update php또는 Remi Repository 사용 시yum update php73 - 패치 후 PHP-FPM 재시작 필수:
systemctl restart php7.3-fpm
⚠️ 주의: PHP 7.3은 2021년 12월에 공식 지원이 종료(EOL)되었습니다. 이 문서는 해당 버전을 아직 운영 중인 팀을 위한 긴급 대응 가이드이며, PHP 8.1 이상으로의 업그레이드 계획 수립을 강력히 권장합니다.
실무 체크리스트
🖥️ 로컬 환경
-
php -v명령으로 현재 PHP 버전 확인 - PHP 7.3.12 미만이라면 즉시 업그레이드 진행
- Valet 사용 시:
valet stop → brew upgrade → valet start순서로 진행 - Sail 사용 시:
docker-compose down && docker-compose build --no-cache && docker-compose up -d - 한글 주석이 많은 프로젝트라면 OpCache 캐시 초기화:
php artisan opcache:clear또는 PHP-FPM 재시작
🧪 스테이징 환경
- PHP 버전 업그레이드 후 전체 테스트 스위트 실행:
php artisan test -
LazyCollection이나 Generator를 사용하는 커맨드/Job 집중 테스트 - 외부 HTTPS API 연동 엔드포인트 동작 확인 (결제, OAuth, 외부 서비스)
- 날짜 직렬화를 사용하는 캐시 키 초기화 후 재테스트:
php artisan cache:clear - 이미지 업로드 EXIF 처리 기능 테스트
- OpCache 설정 확인:
php -i | grep opcache
🚀 운영(Production) 환경
- 배포 전 반드시 스테이징에서 검증 완료
- 유지보수 모드 활성화:
php artisan down - 시스템 패키지 업그레이드:
# Ubuntu/Debian sudo apt update && sudo apt upgrade php7.3 php7.3-fpm php7.3-cli # CentOS/RHEL (Remi) sudo yum update php73 - PHP-FPM 재시작:
sudo systemctl restart php7.3-fpm# 또는sudo service php7.3-fpm restart - 버전 확인:
php -v→PHP 7.3.12출력 확인 - OpCache 캐시 워밍업 또는 초기화
- 유지보수 모드 해제:
php artisan up - 배포 후 에러 로그 모니터링 (최소 30분):
tail -f storage/logs/laravel.log - CVE-2019-11043 대응 완료 여부 확인: Nginx
PATH_INFO설정 점검# 취약한 설정 예시 (fastcgi_split_path_info 관련 설정 검토) # 참고: https://bugs.php.net/bug.php?id=78599
📋 장기 계획
- PHP 7.3 EOL(2021년 12월) 대응 로드맵 수립
- PHP 8.1 또는 8.2 업그레이드 계획 수립 및 호환성 테스트 시작
-
composer.json의require.php버전 제약 검토:"php": "^8.1"목표 설정
📝 편집자 주: 이 문서는 드래프트입니다. CVE-2019-11043의 Nginx 설정 관련 내용은 운영 환경의 실제 Nginx 구성에 따라 추가 검토가 필요합니다. PHP 7.3은 현재 EOL 상태이므로, 독자에게 장기 마이그레이션의 필요성을 강조하는 방향으로 최종 편집을 권장합니다.