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

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

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

발행: 2026년 8월 6일

## 요약

요약

PHP 7.4.24는 2021년 9월 23일에 릴리스된 보안 패치 버전으로, ZipArchive::extractTo()의 경로 탈출 취약점(CVE-2021-21706)을 포함한 다수의 버그를 수정합니다. PHP 7.4 브랜치를 사용 중인 Laravel 프로젝트라면 즉시 업그레이드가 필요하며, 특히 파일 업로드 및 ZIP 처리 기능을 사용하는 애플리케이션은 보안 위험에 노출되어 있을 수 있습니다.


핵심 내용

🔴 보안 취약점 (즉시 대응 필요)

CVE-2021-21706 — ZipArchive::extractTo() 경로 탈출 취약점

  • 영향 컴포넌트: ext/zip
  • 내용: ZipArchive::extractTo()가 지정된 대상 경로 외부에 파일을 추출할 수 있는 취약점입니다. 악의적으로 조작된 ZIP 파일을 업로드받아 처리하는 애플리케이션에서 임의 경로에 파일을 쓸 수 있어 심각한 원격 코드 실행(RCE)으로 이어질 수 있습니다.
  • Laravel 영향: Storage::putFile(), ZipArchive 직접 사용, 또는 spatie/laravel-backup, 파일 업로드 처리 패키지 등을 사용하는 경우 직접적인 영향을 받습니다.
// 취약한 패턴 예시 — 사용자 제공 ZIP을 신뢰하지 말 것 $zip = new ZipArchive(); $zip->open($userUploadedFile); $zip->extractTo(storage_path('app/uploads')); // 7.4.24 이전에는 경로 탈출 가능 $zip->close();

🟠 주요 버그 수정

Core — 스트림 및 문자열 처리

버그 번호내용실무 영향
#81302스트림 필터 제거 후 스트림 위치 오류파일 스트림 기반 로직에서 데이터 손실 가능
#81346비탐색형 스트림에서 쓰기 후 위치 업데이트 안 됨파이프/소켓 스트림 처리 시 오류
#73122문자열 연결 시 정수 오버플로우대용량 문자열 조작 시 예기치 않은 동작

Shmop — PHP 크래시 유발 버그

  • #81407: shmop_open()이 연결에 실패하면서 PHP 프로세스 크래시 유발. 공유 메모리를 사용하는 고성능 캐싱 구현에서 서버 다운을 야기할 수 있었습니다.

SysVMsg — 힙 오버플로우

  • #78819: msg_send()의 힙 오버플로우 수정. 메시지 큐 기반 비동기 처리를 구현한 애플리케이션에서 메모리 안전성 문제가 있었습니다.

Opcache — 세그멘테이션 폴트

  • #81353: 프리로딩(preloading)과 정적 바인딩 클로저(statically bound closure) 조합 시 segfault 발생. Laravel의 opcache.preload 설정을 활용하는 프로덕션 환경에서 간헐적인 503 오류를 유발할 수 있었습니다.

Standard

  • #81400: dns_get_record() 결과에서 종료되지 않은 문자열 반환 — DNS 조회 기반 로직에서 잘못된 데이터 처리 가능
  • #71542: disk_total_space()가 상대 경로에서 동작하지 않는 문제 수정

XML

  • #81351: xml_parse()가 실패해도 오류 코드를 반환하지 않는 문제 — XML 기반 API 파싱 및 오류 처리 로직에 영향

GD

  • #53580: 이미지 리사이즈 시 색상 변형 문제 수정 — 썸네일 생성, 이미지 처리 파이프라인에 영향

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

호환성 및 보안

  • CVE-2021-21706은 즉시 대응이 필요한 보안 이슈입니다. 파일 업로드 기능, ZIP 아카이브 생성/추출 기능을 제공하는 서비스라면 공격 표면이 존재합니다.
  • PHP 7.4 브랜치는 이 시점 이후에도 보안 지원이 유지되었으나, PHP 7.4는 2022년 11월에 완전 EOL이 되었습니다. 현재 7.4.x를 운영 중이라면 PHP 8.1 이상으로의 마이그레이션을 강력히 권장합니다.

Laravel 버전별 영향

Laravel 버전해당 PHP 7.4 지원 여부권장 조치
Laravel 8.x✅ 지원7.4.24로 즉시 업그레이드
Laravel 7.x✅ 지원7.4.24 업그레이드 후 Laravel 8+ 마이그레이션 검토
Laravel 6.x LTS✅ 지원동일

로컬/개발 환경별 고려사항

Laravel Valet (macOS)

# Homebrew를 통한 PHP 업그레이드brew upgrade php@7.4valet restartphp -v  # 7.4.24 

Laravel Sail (Docker)

# sail/app 이미지는 PHP 버전을 docker-compose.yml에서 지정 # php 7.4 기반 이미지 사용 시 최신 패치 버전 확인 필요
# 이미지 재빌드./vendor/bin/sail build --no-cache./vendor/bin/sail up -d./vendor/bin/sail php -v

Docker (직접 관리)

# Dockerfile 예시 — 패치 버전 명시 권장 FROM php:7.4.24-fpm-alpine

⚠️ php:7.4-fpm 태그는 자동으로 최신 패치를 가져오지만, CI/CD 재현성을 위해 명시적 버전 태그 사용을 권장합니다.

Opcache 프리로딩 사용자

  • opcache.preload 설정을 활용하고 있다면 #81353(segfault) 수정이 직접적으로 영향을 미칩니다. 업그레이드 후 프리로딩이 정상 동작하는지 반드시 확인하세요.

실무 체크리스트

로컬 환경

  • php -v 명령으로 현재 PHP 버전 확인
  • Valet 사용 시: brew upgrade php@7.4 && valet restart
  • Sail/Docker 사용 시: 이미지 재빌드 후 php -v로 버전 확인
  • ZipArchive를 사용하는 코드가 있다면 신뢰할 수 없는 ZIP 파일을 처리하는지 점검
  • 스트림 필터, 공유 메모리(shmop), 메시지 큐(SysVMsg) 사용 여부 확인

스테이징 환경

  • PHP 7.4.24 패키지 설치 확인 (php74-fpm, php7.4 등 OS별 패키지명 상이)
  • Opcache preloading 설정이 활성화된 경우 → 재시작 후 애플리케이션 정상 구동 여부 확인
  • 파일 업로드 → ZIP 추출 플로우 통합 테스트 실행
  • php -r "phpinfo();" | grep zip 으로 Zip 모듈 버전 확인
  • DNS 조회 기반 기능(dns_get_record) 동작 검증

프로덕션 환경

  • 배포 전 반드시 변경 내역을 팀과 공유 — CVE-2021-21706 보안 패치 사실을 명시
  • 점진적 배포(Rolling Deploy) 또는 Blue-Green 전략으로 업그레이드 적용
  • PHP-FPM 서비스 재시작: sudo systemctl restart php7.4-fpm
  • 업그레이드 직후 에러 로그 및 APM(예: Sentry, Datadog) 모니터링 집중 감시
  • ZipArchive::extractTo() 사용 코드에 대해 입력값 검증 및 경로 정규화 로직 추가 적용 권장:
// 방어적 코딩 패턴 — 추출 경로 검증 $destination = realpath(storage_path('app/uploads')); $zip = new ZipArchive(); $zip->open($file); for ($i = 0; $i < $zip->numFiles; $i++) { $filename = $zip->getNameIndex($i); $filePath = realpath($destination . DIRECTORY_SEPARATOR . $filename); // 경로 탈출 방지 if ($filePath === false || strpos($filePath, $destination) !== 0) { throw new \RuntimeException("ZIP 내 잘못된 경로가 감지되었습니다: {$filename}"); } } $zip->extractTo($destination); $zip->close();
  • PHP 7.4 EOL(2022년 11월) 대응 로드맵 수립 — PHP 8.1+ 마이그레이션 일정 계획

⚠️ 편집자 검토 사항: PHP 7.4.24는 2021년 릴리스 버전입니다. 현재 시점에서 PHP 7.4는 EOL 상태이므로, 독자에게 이 버전으로의 업그레이드와 함께 PHP 8.x 마이그레이션을 병행 안내하는 것이 적절합니다. CVE-2021-21706의 CVSS 점수 등 추가 보안 정보는 NVD(nvd.nist.gov)에서 확인 후 보완을 권장합니다.