PHP 7.3.23 업데이트 — 한국 Laravel 개발자 영향 분석
작성: 라라벨 코리아 (초안)
발행: 2026년 8월 6일
## 요약
요약
PHP 7.3.23이 2020년 10월 1일 릴리스되었으며, 쿠키 파싱 관련 보안 취약점(CVE-2020-7070)과 OpenSSL AES-CCM 암호화 취약점(CVE-2020-7069)을 포함한 보안 패치가 포함되어 있습니다. 단순 버그 수정을 넘어 프로덕션 환경에서 즉각적인 영향을 줄 수 있는 취약점이 포함되어 있으므로, PHP 7.3 계열을 사용 중인 Laravel 프로젝트는 즉시 업그레이드를 검토해야 합니다. 이 글에서는 변경 사항의 실질적인 영향과 한국 Laravel 개발자를 위한 업그레이드 가이드를 제공합니다.
핵심 내용
🔴 보안 취약점 (즉시 대응 필요)
CVE-2020-7070 — 악성 __Host- 쿠키 파싱 우회
- 영향 범위: PHP의 쿠키 이름 디코딩 로직이 인코딩된 쿠키 이름을 파싱하면서
__Host-접두사 검증을 우회할 수 있는 취약점 - 실제 위험: 공격자가 조작된 쿠키 이름을 전송해 세션 관련 보안 정책(
__Host-쿠키의 호스트 고정 특성)을 무력화할 수 있음 - Laravel 연관성: Laravel의
EncryptCookies미들웨어,cookie()헬퍼, 세션 쿠키 처리 전반에 잠재적 영향이 있을 수 있음. 특히__Host-또는__Secure-접두사를 쿠키에 활용하는 프로젝트는 우선 점검 필요
CVE-2020-7069 — OpenSSL AES-CCM 12바이트 IV 암호화 오류
- 영향 범위: AES-CCM 모드에서 12바이트 IV 사용 시 잘못된 암호문/태그가 생성되는 버그
- 실제 위험: 암호화 결과의 무결성 보장 불가.
openssl_encrypt()/openssl_decrypt()를 직접 사용하는 코드에서 데이터 복호화 실패 또는 무결성 검증 오류 발생 가능 - Laravel 연관성: Laravel 기본 암호화(
Crypt파사드)는 AES-256-CBC를 사용하므로 직접적인 영향은 낮으나, 사용자 정의 암호화 로직에서 AES-CCM을 사용하는 경우 즉시 확인 필요
🟡 주요 버그 수정
OPcache 관련 수정 (성능/안정성)
- Bug #80002: 신규 인터닝(interned) 문자열 공간 계산 오류 수정 — OPcache 활성화 환경에서 메모리 할당 불일치로 인한 예기치 않은 동작 가능성이 있었음
- Bug #79825:
opcache.file_cache사용 시 커스텀 opcode 핸들러 변경으로 SIGSEGV 발생 — 파일 기반 OPcache 캐시를 사용하는 프로덕션 서버에서 PHP 프로세스 비정상 종료로 이어질 수 있었던 심각한 버그
실무 팁: Laravel 프로젝트는 대부분 OPcache를 활성화하므로 이 수정은 안정성 측면에서 중요합니다.
opcache.file_cache를 별도로 설정한 환경(일부 Shared Hosting, 커스텀 Docker 이미지)에서는 특히 주의하세요.
PDO 성능 개선
- Bug #80027: 다수의 바인드 파라미터를 사용하는 쿼리에서
$query->fetch()성능이 극단적으로 저하되는 문제 수정 - Laravel 연관성: Eloquent ORM이 복잡한
where()체인이나 대량 바인딩을 사용하는 쿼리에서 체감 성능 향상을 기대할 수 있음. 특히 Reporting/통계 쿼리처럼 다수의 바인드 파라미터를 사용하는 경우 효과적
Core 메모리 누수 수정
- Bug #80049: 가변 인자(variadic argument)를 통해 정수를 문자열로 강제 변환 시 메모리 누수 발생 — 장기 실행 프로세스(Laravel Queue Worker, Octane 등)에서 점진적 메모리 증가로 이어질 수 있었던 문제
Standard 라이브러리
- Bug #79986:
str_ireplace()에서 발음 구별 기호(diacritics) 문자 처리 오류 수정 — 다국어 콘텐츠를 다루는 프로젝트에서 예상치 못한 문자열 치환 오동작이 있었을 수 있음
PHP 7.3 생명주기 참고
⚠️ 중요: PHP 7.3은 2021년 12월에 공식 지원이 종료(EOL)됩니다. 7.3.23은 사실상 해당 브랜치의 후기 릴리스에 해당합니다. 보안 패치 적용과 함께 PHP 8.0 또는 8.1로의 마이그레이션 계획을 병행하는 것을 강력히 권장합니다.
한국 Laravel 개발자에게 미치는 영향
호환성
| 항목 | 내용 |
|---|---|
| Laravel 6.x (LTS) | PHP 7.3 지원 — 직접적인 영향권, 즉시 업그레이드 대상 |
| Laravel 7.x | PHP 7.3 지원 — 동일하게 적용 |
| Laravel 8.x | PHP 7.3 지원 — 동일하게 적용 |
| Laravel 9.x+ | PHP 8.0 이상 요구 — 해당 없음 |
마이그레이션 노력
- 패치 자체의 난이도: 낮음. PHP 버전 업그레이드만으로 패치 적용 완료
- 코드 변경 필요 여부: 없음. 7.3.x → 7.3.23은 패치 버전 업그레이드이므로 하위 호환성 유지
- 예외 케이스: AES-CCM 암호화를 직접 사용하는 코드는 업그레이드 전후 동작 검증 필요
보안 긴급도
🔴 높음 — CVE-2020-7070은 쿠키 기반 인증 우회와 직결될 수 있으므로 프로덕션 환경에서는 가능한 한 빠른 적용을 권장합니다.
로컬 개발 환경별 업그레이드 방법
Laravel Valet (macOS)
# Homebrew를 통한 PHP 업그레이드brew updatebrew upgrade php@7.3# Valet 재시작valet restartLaravel Sail (Docker)
docker-compose.yml의 PHP 이미지 태그를 명시적으로 고정한 경우:
# docker-compose.yml
services:
laravel.test:
build:
context: ./vendor/laravel/sail/runtimes/7.3
# 또는 커스텀 Dockerfile에서 php:7.3.23-fpm 으로 업데이트docker-compose build --no-cachedocker-compose up -d커스텀 Docker 이미지
# Dockerfile
FROM php:7.3.23-fpm-alpine
# 또는
FROM php:7.3.23-fpm서버 직접 운영 (Ubuntu/CentOS)
# Ubuntu + Ondřej PPA 사용 시sudo add-apt-repository ppa:ondrej/phpsudo apt-get updatesudo apt-get install php7.3=7.3.23*# 버전 확인php -v실무 체크리스트
로컬 환경
-
php -v명령으로 현재 PHP 버전 확인 - Valet, Sail, DDEV 등 사용 중인 로컬 도구에서 PHP 7.3.23으로 업그레이드
- 업그레이드 후
php -v로 버전 재확인 -
composer install및 기본 유닛 테스트 실행으로 동작 이상 없음 확인 - AES-CCM 암호화를 직접 사용하는 코드가 있다면 암호화/복호화 로직 테스트
스테이징 환경
- PHP 패키지 업그레이드 (배포 파이프라인 또는 수동)
-
php -r "echo PHP_VERSION;"으로 버전 확인 - OPcache 설정 확인:
php -i | grep opcache.file_cache— 파일 캐시 사용 중이라면 캐시 디렉터리 초기화# OPcache 파일 캐시 초기화sudo rm -rf /tmp/opcache/* # 경로는 환경마다 다를 수 있음sudo systemctl restart php7.3-fpm - Laravel Queue Worker 재시작 (메모리 누수 수정 적용 확인)
php artisan queue:restart - 쿠키 기반 인증 흐름 (로그인, Remember Me, 세션 갱신) 통합 테스트
- PDO 다중 파라미터 쿼리 성능 측정 (가능하다면)
프로덕션 환경
- 배포 전 스테이징에서 충분한 검증 완료 여부 확인
- 배포 시간대를 트래픽이 낮은 시간으로 설정
- PHP-FPM 재시작 전 현재 처리 중인 요청 완료 대기 (Graceful Reload)
sudo systemctl reload php7.3-fpm# 또는sudo kill -USR2 $(cat /run/php/php7.3-fpm.pid) - OPcache 캐시 초기화 (파일 캐시 사용 시)
- Laravel Horizon 또는 Queue Worker 재시작
php artisan horizon:terminate # Horizon 사용 시php artisan queue:restart # 일반 Queue Worker - 배포 후 애플리케이션 에러 로그 모니터링 (5~10분)
tail -f storage/logs/laravel.log -
php -v로 프로덕션 서버 버전 최종 확인 - 중장기 계획: PHP 8.0 이상으로의 마이그레이션 일정 수립 (PHP 7.3 EOL: 2021년 12월)
편집자 주: 이 문서는 초안입니다. PHP 7.3 EOL 일자 및 각 호스팅 환경별 패키지 업그레이드 명령어는 배포 시점에 재확인을 권장합니다. CVE 관련 세부 영향 범위는 프로젝트별 코드를 직접 점검하시기 바랍니다.