업데이트phplaravel업데이트
PHP 7.3.19 업데이트 — 한국 Laravel 개발자 영향 분석
작성: 라라벨 코리아 (초안)
발행: 2026년 8월 6일
## 요약
요약
PHP 7.3.19는 2020년 6월 11일에 릴리스된 버전으로, 단독 버그 수정 외에도 7.3.13부터 누적된 다수의 보안 취약점 패치를 포함합니다. CVE 지정 취약점이 여러 건 포함되어 있어 해당 버전대를 운영 중인 Laravel 애플리케이션은 즉각적인 업그레이드가 필요합니다. PHP 7.3 브랜치를 사용하는 팀은 이 릴리스를 통해 축적된 안정성 및 보안 개선 사항을 일괄 적용할 수 있습니다.
핵심 내용
🔐 보안 패치 (CVE 포함) — 최우선 검토 필요
7.3.19 릴리스에는 7.3.19 자체 수정 외에, 이전 버전들에서 수정된 CVE 지정 취약점이 누적 포함됩니다.
| CVE 번호 | 영향 모듈 | 설명 | 수정 버전 |
|---|---|---|---|
| CVE-2019-11048 | Core | 긴 파일명/변수로 인한 OOM 및 임시 파일 미정리 (multipart/form-data) | 7.3.18 |
| CVE-2020-7067 | Standard | urldecode()의 OOB(Out-of-Bounds) 읽기 | 7.3.17 |
| CVE-2020-7064 | EXIF | 초기화되지 않은 값 사용 (Use-of-uninitialized-value) | 7.3.16 |
| CVE-2020-7065 | MBString | mb_strtolower() (UTF-32LE) 스택 버퍼 오버플로우 | 7.3.16 |
| CVE-2020-7066 | Standard | get_headers()의 Null 바이트 이후 묵시적 잘림 | 7.3.16 |
| CVE-2020-7063 | Phar | tar에 추가된 파일의 권한 전체 허용 문제 | 7.3.15 |
| CVE-2020-7061 | Phar | phar_extract_file의 힙 버퍼 오버플로우 | 7.3.15 |
| CVE-2020-7062 | Session | 세션 업로드 진행 중 Null 포인터 역참조 | 7.3.15 |
| CVE-2020-7060 | Mbstring | mbfl_filt_conv_big5_wchar의 글로벌 버퍼 오버플로우 | 7.3.14 |
| CVE-2020-7059 | Standard | php_strip_tags_ex의 OOB 읽기 | 7.3.14 |
| CVE-2019-11046 | Bcmath | bc_shift_addsub의 버퍼 언더플로우 | 7.3.13 |
| CVE-2019-11044 | Core | link()의 Windows Null 바이트 묵시적 잘림 | 7.3.13 |
| CVE-2019-11045 | Core | DirectoryIterator의 Null 바이트 묵시적 잘림 | 7.3.13 |
| CVE-2019-11049 | Core | mail() 이중 해제 가능성 | 7.3.13 |
| CVE-2019-11050 | EXIF | Use-after-free (exif 파싱) | 7.3.13 |
| CVE-2019-11047 | EXIF | 힙 버퍼 오버플로우 읽기 | 7.3.13 |
⚠️ 특히 파일 업로드, 멀티바이트 문자열, EXIF 처리, Phar 아카이브를 사용하는 Laravel 애플리케이션은 위험 노출 가능성이 높습니다.
🐛 7.3.19 자체 버그 수정 (보안 외)
- Core: Windows 환경에서 Private SHM이 실제로 private하지 않던 문제 수정 (버그 #79566),
.user.ini상속 문제 수정 (버그 #79489) - GD: GIF 헤더가 잘못 작성되던 문제 수정 (버그 #79615) — 이미지 처리 기능 사용 시 영향
- MySQLnd: 특정 로케일에서 MySQL
FLOAT타입이 정수로 잘못 변환되던 문제 수정 (버그 #79596) — 수치 데이터 처리 시 주의 - Opcache: 특정
optimization_level설정 시 PHP 크래시 (버그 #79535),on/off불리언 설정값 무시 문제 (버그 #79588) - Standard:
dns_get_record()DNS_ALL플래그 실패 수정 (버그 #79561)
🔧 이전 버전 주요 버그 수정 (누적 포함, 보안 외 선별)
- Opcache: 특정 스크립트에서 100% CPU 점유 문제 (7.3.17, 버그 #79412) — 운영 서버 성능에 직결
- Session:
session_create_id()활성 세션에서 실패 (7.3.17, 버그 #79413) - Date: DST(일광절약시간) 전환 시
DateTime시간 오류 (7.3.17, 버그 #79396) - PCRE:
preg_replace/preg_replace_callback유니코드 메모리 손상 (7.3.16, 버그 #79188) - MySQLnd:
MYSQLI_BOTH사용 시 잘못된 컬럼 인덱스 반환 (7.3.15, 버그 #79084) - OpenSSL: 메모리 누수 (7.3.15), TLS 요청이 다른 암호화 연결에 영향을 주는 문제 (7.3.12)
- Phar: 중복 메타데이터 메모리 누수 (7.3.18)
한국 Laravel 개발자에게 미치는 영향
Laravel 버전별 호환성
PHP 7.3.x는 Laravel 6.x(LTS), 7.x 를 지원하는 버전입니다. 해당 Laravel 버전을 유지보수 중인 프로젝트라면 이 업그레이드가 직접적으로 적용됩니다.
참고: PHP 7.3은 2021년 12월에 공식 EOL(End of Life)이 도래합니다. 이번 패치를 적용하더라도 PHP 8.x 마이그레이션 계획을 병행하는 것을 권장합니다.
영향도가 높은 사용 패턴
| 사용 패턴 | 관련 CVE/버그 | 위험도 |
|---|---|---|
파일 업로드 처리 (multipart/form-data) | CVE-2019-11048 | 🔴 높음 |
한국어/다국어 문자열 처리 (mb_* 함수) | CVE-2020-7060, CVE-2020-7065 | 🔴 높음 |
| EXIF 데이터 처리 (이미지 갤러리 등) | CVE-2020-7064, CVE-2019-11047, CVE-2019-11050 | 🔴 높음 |
| Phar 패키지 사용 (Composer 캐시 포함) | CVE-2020-7063, CVE-2020-7061 | 🟠 중간 |
| 세션 업로드 진행 추적 | CVE-2020-7062 | 🟠 중간 |
strip_tags() 로 HTML 화이트리스트 처리 | 버그 #78814 | 🟡 낮음~중간 |
한국 환경 특이사항
- MBString 취약점 (CVE-2020-7060, CVE-2020-7065): 한국어(EUC-KR, UTF-8) 처리가 많은 레거시 Laravel 프로젝트는
mb_strtolower(),mb_convert_encoding()등 MBString 함수를 광범위하게 사용합니다. 이 취약점의 영향을 받을 가능성이 타 언어권 대비 높습니다. - MySQLnd FLOAT 로케일 버그:
ko_KR로케일 설정 서버에서 소수점 구분자 처리 차이로 인해 MySQLFLOAT값이 정수로 잘못 변환될 수 있는 버그가 수정되었습니다 (버그 #79596). 재무/통계 데이터를 다루는 서비스는 반드시 확인하세요.
로컬 개발 환경 (Valet, Sail, Docker)
- Laravel Valet (macOS):
valet use php@7.3환경에서 Homebrew를 통해brew upgrade php@7.3으로 업데이트합니다. Valet 서비스를 재시작해야 합니다 (valet restart). - Laravel Sail:
docker-compose.yml에서 사용 중인 PHP 이미지 태그를 확인하세요.php:7.3-fpm또는laravelsail/php73이미지를 사용 중이라면docker pull로 최신 이미지를 받아야 합니다. - Docker 직접 운영: 베이스 이미지를 명시적 태그(
7.3.18,7.3.19)로 고정한 경우,Dockerfile의FROM라인을php:7.3.19-fpm으로 업데이트하고 재빌드가 필요합니다. - 공유 호스팅/cPanel: 호스팅 제공업체의 PHP 버전 선택 패널에서 7.3.19 이상이 제공되는지 확인하고, 미제공 시 업데이트를 요청하거나 호스팅 이전을 검토하세요.
실무 체크리스트
로컬 개발 환경
- 현재 PHP 버전 확인:
php -v - Homebrew(macOS):
brew update && brew upgrade php@7.3 - apt(Ubuntu/Debian):
sudo apt-get update && sudo apt-get install --only-upgrade php7.3 - Docker:
docker pull php:7.3.19-fpm(또는 해당 태그) 후 컨테이너 재빌드 - 업그레이드 후 PHP 버전 재확인:
php -v→PHP 7.3.19표시 여부 확인 -
php -m으로 주요 모듈 (mbstring, opcache, pdo_mysql 등) 로드 확인
스테이징 환경
- PHP 업그레이드 후
php -i | grep -E "(opcache|mbstring|mysqlnd)"설정값 확인 - Opcache 관련 버그 수정으로 인해 opcache 캐시를 초기화하고 애플리케이션 동작 테스트:
php artisan opcache:clear또는 서버 재시작 - 파일 업로드 기능 전체 흐름 테스트 (CVE-2019-11048 관련)
- 한국어 문자열 처리 로직 단위 테스트 실행 (mb_* 함수 관련 CVE)
- 이미지 EXIF 처리 기능이 있다면 다양한 이미지 파일로 테스트
- MySQL FLOAT 컬럼을 사용하는 데이터 조회/저장 로직 검증
-
strip_tags()를 사용하는 입력값 필터링 로직의 화이트리스트 우회 가능성 재검토 (버그 #78814) -
dns_get_record()또는 세션 관련 기능 사용 시 해당 기능 통합 테스트 실행
운영 환경 (프로덕션)
- 배포 전 스테이징 테스트 완료 확인
- 배포 시간: 트래픽이 적은 시간대 선택
- PHP-FPM 사용 시 업그레이드 후 재시작:
sudo systemctl restart php7.3-fpm - Nginx/Apache 웹서버 재시작 또는 reload 여부 확인
- Opcache 캐시 초기화: 배포 스크립트에
opcache_reset()호출 또는 PHP-FPM 재시작 포함 - 배포 후 애플리케이션 에러 로그 즉시 모니터링 (5~10분간 집중 확인)
- APM(New Relic, Datadog 등) 또는 Sentry에서 에러율 급증 여부 확인
- 롤백 계획: 이전 PHP 버전 패키지 또는 Docker 이미지 태그 준비
장기 계획
- PHP 7.3 EOL(2021년 12월) 도래 전 PHP 8.0 또는 8.1 마이그레이션 로드맵 수립
- Laravel 버전이 6.x 또는 7.x라면 Laravel 9.x(PHP 8.0+) 업그레이드 계획 검토
-
composer.json의"php": "^7.3"제약 조건 검토 및 업데이트 계획 포함