PHP 7.3.20 업데이트 — 한국 Laravel 개발자 영향 분석
작성: 라라벨 코리아 (초안)
발행: 2026년 8월 6일
## 요약
요약
PHP 7.3.20은 2020년 7월 9일 출시된 보안 및 버그 수정 릴리스입니다. Filter 확장의 메모리 접근 오류, SPL의 세그폴트, Standard 라이브러리의 스트림 관련 버그 등 안정성에 직접 영향을 미치는 문제들이 수정되었습니다. PHP 7.3 시리즈를 운영 중인 한국 Laravel 개발자라면 가능한 한 빠른 업그레이드를 권장합니다.
핵심 내용
PHP 7.3.20 직접 수정 사항 (2020-07-09)
-
Core
php-win.exe100% CPU 락업 버그 수정 (#79650) — Windows 환경에서 PHP 프로세스가 CPU를 독점하는 심각한 문제get_defined_functions(true)호출 시 일부 함수가 누락되는 버그 수정 (#79668)
-
Filter ⚠️
php_filter_strip내 잘못된 메모리 접근(Invalid memory access) 수정 (#73527) — 입력값 필터링 시 메모리 손상 가능성 존재, 보안 관련 주의 필요
-
GD
imagescale()함수에서IMG_BICUBIC옵션 사용 시 이미지에 검은 테두리가 생기는 버그 수정 (#79676)
-
OpenSSL
default_socket_timeout=-1설정 시 연결이 즉시 타임아웃되는 버그 수정 (#62890)
-
PDO SQLite
- 빈 결과셋에서
PDOStatement::getColumnMeta()가 실패하는 버그 수정 (#79664)
- 빈 결과셋에서
-
SPL ⚠️
- GC(가비지 컬렉션) 실행 중
SplFileObject관련 에러 핸들러에서 재현 가능한 세그폴트 수정 (#79710) — 파일 처리 중 예기치 않은 프로세스 종료 가능성
- GC(가비지 컬렉션) 실행 중
-
Standard
- 스트림과 잘못된 데이터 처리 시 세그폴트 수정 (#74267)
- ZTS(Thread-Safe) 빌드에서
posix_getgrgid등의 함수가ERANGE를 올바르게 처리하지 못하는 버그 수정 (#79579)
이전 릴리스에서 누적된 주요 보안 수정 (업그레이드 전 버전이라면 함께 적용됨)
아직 7.3.20 미만을 사용하고 있다면, 아래 CVE 수정 사항도 함께 챙겨야 합니다.
| 버전 | CVE | 영향 범위 |
|---|---|---|
| 7.3.18 | CVE-2019-11048 | 긴 파일명/폼 변수로 OOM 및 임시 파일 미삭제 (파일 업로드 처리) |
| 7.3.17 | CVE-2020-7067 | urldecode()의 OOB Read |
| 7.3.16 | CVE-2020-7064 | EXIF 파싱 시 미초기화 값 사용 |
| 7.3.16 | CVE-2020-7065 | mb_strtolower() 스택 버퍼 오버플로우 (UTF-32LE) |
| 7.3.16 | CVE-2020-7066 | get_headers() null 바이트 이후 묵시적 절단 |
| 7.3.15 | CVE-2020-7063 | Phar tar 파일 추가 시 잘못된 퍼미션 설정 |
| 7.3.15 | CVE-2020-7062 | 세션 업로드 진행 시 Null Pointer Dereference |
| 7.3.15 | CVE-2020-7061 | Phar 파일 추출 시 힙 버퍼 오버플로우 |
| 7.3.14 | CVE-2020-7060 | MBString 글로벌 버퍼 오버플로우 |
| 7.3.14 | CVE-2020-7059 | php_strip_tags_ex OOB Read |
| 7.3.13 | CVE-2019-11046 | Bcmath 버퍼 언더플로우 |
| 7.3.13 | CVE-2019-11044/45 | null 바이트 파일명 처리 오류 (Windows) |
| 7.3.13 | CVE-2019-11047/50 | EXIF 힙 버퍼 오버플로우 및 Use-after-free |
⚠️ 보안 관점 요약: MBString, EXIF, Phar, Standard 라이브러리에 걸쳐 다수의 메모리 안전성 취약점이 존재했습니다. 파일 업로드, 이미지 처리, 문자열 인코딩을 다루는 Laravel 애플리케이션은 특히 영향을 받을 수 있습니다.
한국 Laravel 개발자에게 미치는 영향
Laravel 버전별 호환성
- PHP 7.3은 Laravel 6.x(LTS), Laravel 7.x에서 공식 지원되는 버전입니다.
- Laravel 8.x는 PHP 7.3도 지원하지만, 가능하다면 PHP 7.4 또는 8.x로의 전환도 함께 검토하세요.
- 이번 수정 사항은 Laravel의 파일 업로드(
UploadedFile), 이미지 처리(Intervention Image등 GD 기반), 다국어 처리(MBString), HTTPS 요청(OpenSSL) 등 실무에서 자주 사용하는 기능과 직접 연관됩니다.
로컬/스테이징 도구별 업그레이드 방법
Laravel Valet (macOS)
# Homebrew를 통해 PHP 업그레이드brew upgrade php@7.3valet restartphp -v # 버전 확인Laravel Sail (Docker 기반)
# docker-compose.yml의 PHP 이미지 버전 확인 후docker-compose downdocker-compose pulldocker-compose up -ddocker-compose exec laravel.test php -vDocker 직접 운영 시
# Dockerfile에서 이미지 태그 명시 권장
FROM php:7.3.20-fpm-alpine태그를
php:7.3-fpm처럼 마이너 버전 없이 사용 중이라면,docker pull만으로도 최신 패치 버전이 적용됩니다. 단, 의도하지 않은 업데이트를 방지하려면7.3.20처럼 정확한 버전을 명시하는 것을 권장합니다.
Ubuntu/Debian 서버 (Ondrej PPA 사용 시)
sudo apt updatesudo apt upgrade php7.3 php7.3-fpm php7.3-cliphp -vsudo systemctl restart php7.3-fpmCentOS/RHEL (Remi 저장소 사용 시)
sudo yum update php73php -vsudo systemctl restart php-fpm한국 특수 환경 고려사항
- EUC-KR, CP949 등 레거시 인코딩 사용 환경: MBString 관련 버퍼 오버플로우 수정(CVE-2020-7060, CVE-2020-7065)은 한국어 인코딩 처리와 관련될 수 있습니다.
mb_convert_encoding(),mb_strtolower()등을 사용하는 경우 특히 주의가 필요합니다. - 정부24, 공공 API 등 인증서 연동: OpenSSL 타임아웃 버그(#62890) 수정으로
default_socket_timeout=-1설정 후에도 정상 연결이 가능해집니다. - 이미지 처리 서비스: GD 라이브러리 버그 수정으로
imagescale()사용 시 이미지 품질 문제가 해소됩니다.
실무 체크리스트
로컬 개발 환경
-
php -v명령으로 현재 PHP 버전 확인 - Valet, Sail, 또는 직접 설치된 PHP를 7.3.20으로 업데이트
- 업데이트 후
php -v로 버전 재확인 -
composer check-platform-reqs로 의존성 호환성 확인 - MBString, GD, OpenSSL, PDO SQLite 관련 기능을 사용하는 경우 로컬 테스트 실행
스테이징 환경
- PHP 업그레이드 후 전체 PHPUnit 테스트 스위트 실행
php artisan test - 파일 업로드 기능 E2E 테스트 (CVE-2019-11048 관련)
- 이미지 처리 기능 동작 확인 (GD
imagescale수정) - HTTPS/TLS 외부 API 연동 테스트 (OpenSSL 수정)
- 한국어 문자열 인코딩 변환 기능 테스트 (MBString 수정)
-
php-fpm재시작 후 로그에서 에러 여부 확인
운영(Production) 환경
- 업그레이드 전 스냅샷 또는 이미지 백업 생성
- 유지보수 모드 전환
php artisan down --message="시스템 업그레이드 중입니다. 잠시 후 다시 접속해 주세요." - PHP 패키지 업그레이드 실행 (운영체제 패키지 매니저 사용)
- PHP-FPM 또는 웹서버(Nginx/Apache) 재시작
- Opcache 캐시 초기화
# PHP-FPM 재시작으로 Opcache 자동 초기화 또는php artisan opcache:clear # 별도 패키지 설치 시 - 애플리케이션 캐시 재생성
php artisan config:cachephp artisan route:cachephp artisan view:cache - 유지보수 모드 해제
php artisan up - 모니터링 도구(Sentry, Bugsnag, 로그 등)에서 업그레이드 후 에러 급증 여부 확인 (최소 30분)
-
php -v및phpinfo()페이지(관리자 전용)로 최종 버전 확인
보안 우선순위 판단 기준
| 상황 | 권장 조치 |
|---|---|
| 파일 업로드 기능 운영 중 | 즉시 업그레이드 (CVE-2019-11048) |
| 이미지 업로드/EXIF 처리 중 | 즉시 업그레이드 (CVE-2019-11047/50) |
| Phar 파일 사용 중 | 즉시 업그레이드 (CVE-2020-7061/63) |
| MBString 기반 한국어 처리 중 | 조속히 업그레이드 (CVE-2020-7060/65) |
| 외부 URL 요청/스크래핑 중 | 조속히 업그레이드 (CVE-2020-7059/66/67) |
| 세션 기반 인증 사용 중 | 조속히 업그레이드 (CVE-2020-7062) |
편집자 주: 이 문서는 초안(Draft)입니다. PHP 7.3 시리즈는 이미 2021년 12월에 공식 지원이 종료(EOL)되었습니다. 신규 프로젝트 또는 장기 운영 중인 서비스라면, PHP 8.1 이상으로의 마이그레이션 계획을 병행하여 수립하시길 권장합니다.