← 아티클 목록
업데이트phplaravel업데이트

PHP 7.3.17 업데이트 — 한국 Laravel 개발자 영향 분석

작성: 라라벨 코리아 (초안)

발행: 2026년 8월 6일

## 요약

요약

PHP 7.3.17은 2020년 4월 16일에 릴리스된 보안 패치 버전으로, 정수 오버플로우(shmop_open()), OOB 읽기(urldecode()), shell_exec() 널 바이트 처리 등 보안에 직결된 버그가 다수 수정되었습니다. OPcache 100% CPU 점유, DateTime DST 오류, session_create_id() 실패 등 운영 환경에서 실제로 영향을 줄 수 있는 안정성 버그도 함께 해결되었습니다. 현재 PHP 7.3.x 계열을 사용 중인 Laravel 프로젝트라면 즉시 업그레이드를 권장합니다.


핵심 내용

🔐 보안 취약점

버그 ID컴포넌트설명
#79427Shmopshmop_open()의 정수 오버플로우 — 공유 메모리 조작 가능성
#79465Standardurldecode()의 OOB(Out-of-Bounds) 읽기
#79330Standardshell_exec()가 널 바이트 이후 데이터를 무음 처리(silently truncates)

⚠️ 주의: shell_exec()urldecode() 취약점은 Laravel 애플리케이션에서 외부 입력을 처리하는 코드 경로에 직접 영향을 줄 수 있습니다. 특히 파일 처리, URL 파싱, 외부 명령 실행 기능을 사용하는 프로젝트는 우선순위를 높여 패치해야 합니다.


🐛 운영 환경 영향이 큰 버그 수정

OPcache CPU 100% 점유 (Bug #79412)

특정 스크립트에서 OPcache가 무한 루프에 빠져 CPU를 100% 점유하는 현상이 수정되었습니다. Laravel은 기본적으로 OPcache를 활성화하여 사용하는 경우가 많기 때문에, 이 버그는 프로덕션 서버 다운으로 이어질 수 있는 고위험 항목입니다.

DateTime DST 오류 (Bug #79396)

일광절약시간(DST) 전환 시 DateTime 시간이 잘못 계산되는 버그가 수정되었습니다. Laravel의 Carbon 라이브러리는 PHP의 DateTime을 기반으로 동작하므로, 스케줄러(php artisan schedule:run) 또는 이벤트 예약 기능을 사용하는 서비스에서 시간 계산 오류가 발생할 수 있었습니다.

한국 표준시(KST, UTC+9)는 DST를 사용하지 않으므로 국내 서버 기준으로는 직접적인 영향이 낮지만, 글로벌 서비스나 다국적 사용자를 대상으로 하는 경우 주의가 필요합니다.

session_create_id() 실패 (Bug #79413)

활성 세션이 존재하는 상태에서 session_create_id()가 실패하는 버그가 수정되었습니다. Laravel의 세션 관리 및 Auth 기능에 영향을 줄 수 있으며, 로그인 흐름에서 간헐적인 오류를 유발할 가능성이 있습니다.

shell_exec() 널 바이트 이후 무음 처리 (Bug #79330)

shell_exec()가 출력 결과에서 널 바이트(\0) 이후의 데이터를 조용히 잘라버리는 문제가 수정되었습니다. 바이너리 출력을 다루거나 외부 명령을 실행하는 Laravel 패키지(예: 이미지 처리, PDF 생성 등)에서 데이터 손실이 발생했을 수 있습니다.

system() 4095바이트 청크 누락 (Bug #79410)

system() 함수가 마지막 출력 청크가 정확히 4095바이트이고 줄 바꿈이 없을 경우 해당 청크를 버리는 버그가 수정되었습니다.

ZipArchive::open() 빈 파일 실패 (Bug #79296)

빈 ZIP 파일에 대해 ZipArchive::open()이 실패하는 버그가 수정되었습니다. 파일 업로드 유효성 검사 로직에서 예외 처리가 올바르게 동작하지 않았을 수 있습니다.


📋 이전 릴리스(7.3.16 포함)의 주요 누적 보안 수정 사항

7.3.17은 단독 패치이지만, 아직 7.3.15 이하를 사용 중인 팀을 위해 직전 릴리스(7.3.16)에 포함된 CVE 수정 사항도 함께 확인해야 합니다.

CVE컴포넌트내용
CVE-2020-7064EXIF초기화되지 않은 값 사용(Use-of-uninitialized-value)
CVE-2020-7065MBStringmb_strtolower UTF-32LE 스택 버퍼 오버플로우
CVE-2020-7066Standardget_headers() 널 바이트 이후 무음 처리

한국 Laravel 개발자에게 미치는 영향

호환성

  • PHP 7.3.17은 7.3.x 계열 내 패치 릴리스이므로 하위 호환성 파괴(Breaking Change) 없이 업그레이드 가능합니다.
  • Laravel 6.x(LTS) 및 Laravel 7.x는 PHP 7.3을 공식 지원하므로 해당 버전 조합을 사용 중인 팀에 해당됩니다.

마이그레이션 난이도

  • 낮음: 동일 메이저/마이너 계열 내 패치 업그레이드이므로 코드 수정 없이 PHP 바이너리만 교체하면 됩니다.

보안 긴급도

  • 높음: shmop_open() 정수 오버플로우, urldecode() OOB 읽기, shell_exec() 널 바이트 처리 버그는 악용 가능성이 있습니다. 특히 사용자 입력을 URL 디코딩하거나 시스템 명령을 실행하는 Laravel 애플리케이션은 즉시 패치가 필요합니다.

로컬 개발 도구 별 참고 사항

Laravel Valet (macOS)

# Homebrew를 통해 PHP 버전 업그레이드brew upgrade php@7.3valet restartphp -v  # 7.3.17 

Laravel Sail (Docker)

docker-compose.yml 또는 관련 Dockerfile에서 PHP 이미지 태그를 확인하세요. 공식 php:7.3-fpm 이미지는 패치 버전이 자동 반영되지 않을 수 있으므로, 명시적으로 php:7.3.17-fpm을 지정하거나 이미지를 재빌드해야 합니다.

# Sail 이미지 재빌드./vendor/bin/sail build --no-cache./vendor/bin/sail up -d

온프레미스 / 클라우드 서버 (Ubuntu/CentOS)

# Ubuntu (ondrej/php PPA 사용 시)sudo apt updatesudo apt upgrade php7.3# 버전 확인php7.3 -v

참고: AWS, NHN Cloud, Naver Cloud 등 국내 클라우드 환경에서 PHP를 시스템 패키지로 관리하는 경우, 각 플랫폼의 패키지 저장소 업데이트 주기를 반드시 확인하세요.


실무 체크리스트

로컬 개발 환경

  • php -v 명령으로 현재 PHP 버전 확인
  • Homebrew(macOS) 또는 패키지 매니저를 통해 php 7.3.17로 업그레이드
  • Valet 사용 시 valet restart 실행
  • Sail 사용 시 Docker 이미지 재빌드 후 컨테이너 재시작
  • php -m 으로 주요 익스텐션(Shmop, Zip, Session 등) 정상 로딩 확인

스테이징 환경

  • PHP 업그레이드 후 php artisan config:cachephp artisan route:cache 재실행
  • OPcache가 활성화된 경우 캐시 초기화: php artisan opcache:clear 또는 서버 재시작
  • session_create_id() 및 세션 관련 기능 통합 테스트 실행
  • ZipArchive를 사용하는 파일 업로드/다운로드 기능 회귀 테스트
  • shell_exec() 또는 system()을 사용하는 기능(이미지 처리, PDF 생성 등) 출력 값 정상 여부 확인
  • DateTime / Carbon을 활용한 스케줄 작업 동작 확인

프로덕션 환경

  • 배포 전 스테이징에서 모든 테스트 통과 확인
  • 배포 타임라인 계획: 보안 패치이므로 1주일 이내 적용 권장
  • PHP-FPM 사용 시 서비스 재시작: sudo systemctl restart php7.3-fpm
  • Nginx/Apache 설정 변경 없이 PHP 바이너리만 교체되었는지 확인
  • 배포 후 APM(New Relic, Datadog, 또는 국내 도구 사용 시) 에러율 및 응답 시간 모니터링
  • OPcache 상태 확인 (opcache_get_status() 또는 관리 도구 활용)
  • 롤백 절차 사전 준비 (이전 PHP 버전 패키지 보관 또는 스냅샷)

면책 고지(Draft 검토 필요): 이 문서는 공개된 PHP 공식 changelog를 기반으로 작성된 초안입니다. 각 취약점의 실제 익스플로잇 가능성 및 CVSS 점수는 별도로 공식 CVE 데이터베이스를 확인하시기 바랍니다. 운영 환경 적용 전 반드시 스테이징 환경에서 충분한 테스트를 진행하세요.