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

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

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

발행: 2026년 8월 6일

## 요약

요약

PHP 7.4.25는 2021년 10월 21일 출시된 PHP 7.4 브랜치의 보안 및 버그 수정 릴리스입니다. 가장 중요한 변경사항은 PHP-FPM에서 발견된 권한 상승(Privilege Escalation) 취약점(CVE-2021-21703)으로, 프로덕션 서버를 운영 중인 한국 Laravel 개발자라면 즉시 업데이트를 검토해야 합니다. 이번 릴리스는 단순 기능 추가 없이 보안 패치와 안정성 수정에만 집중되어 있어 업그레이드 부담이 낮습니다.


핵심 내용

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

CVE-2021-21703 — PHP-FPM 권한 상승 (Out-of-Bounds R/W)

  • 심각도: 높음
  • 영향 범위: PHP-FPM을 사용하는 모든 Linux/Unix 서버
  • 내용: FPM 루트 프로세스에서 발생하는 범위 밖 읽기/쓰기(OOB R/W) 버그로, 로컬 공격자가 루트 권한으로 권한을 상승시킬 수 있습니다.
  • Laravel 연관성: Laravel 애플리케이션의 대부분은 Nginx + PHP-FPM 조합으로 운영됩니다. 공유 호스팅 또는 멀티 테넌트 환경에서 특히 위험도가 높습니다.

⚠️ 주의: 이 취약점은 원격 공격이 아닌 로컬 권한 상승입니다. 하지만 웹 애플리케이션 취약점과 결합되면 서버 전체 장악으로 이어질 수 있습니다.


🐛 주요 버그 수정 (7.4.20 ~ 7.4.25)

DOM

  • DOMElement::setIdAttribute()를 두 번 호출하면 ID가 제거되는 버그 수정 (Bug #81433)
  • Laravel의 XML/HTML 처리 로직에서 간헐적으로 발생하던 DOM 조작 오류에 영향

ZipArchive

  • ZipArchive::extractTo()가 목적지 외부에 파일을 추출하는 경로 탈출 취약점 수정 (CVE-2021-21706, 7.4.24에 포함)
  • 메모리 누수 수정 (Bug #81490)
  • 콜론으로 끝나는 디렉터리명 처리 오류 수정 (Bug #77978)
  • Laravel Storage / 파일 업로드 처리 시 Zip 압축 해제를 사용하는 코드에 직접적으로 영향

Filter

  • FILTER_FLAG_IPV6, FILTER_FLAG_NO_PRIV_RANGE, FILTER_FLAG_NO_RES_RANGE 조합 시 잘못된 결과 반환 수정 (Bug #61700)
  • IP 주소 유효성 검사 로직에 영향. Laravel의 filter_var() 기반 Validation Rule 사용 시 예기치 않은 통과/차단 현상이 있었을 수 있음

SPL

  • SplFixedArray::setSize()의 재귀 호출 시 발생하는 이중 해제(double-free) 버그 수정 (Bug #80663)
  • 메모리 안전성 관련 이슈로, 대용량 데이터 처리 시 예기치 않은 충돌을 일으킬 수 있었음

Fileinfo

  • 인코딩 감지 시 높은 메모리 사용 문제 수정 (Bug #78987)
  • 파일 업로드 검증(finfo, mime_content_type) 시 메모리 급증 현상을 경험했다면 이 버그가 원인이었을 수 있음

Streams

  • stream_isatty()가 스트림 래퍼 연결 시 경고를 출력하는 버그 수정 (Bug #81475)

FFI

  • 미정의 타입 참조 시 비도움적인 오류 메시지 개선 (Bug #79576)

XML

  • XML_OPTION_SKIP_WHITE가 내장 공백을 제거하는 문제 수정 (Bug #70962)

📋 이전 릴리스(7.4.21 ~ 7.4.24)에 포함된 주요 보안 수정 요약

7.4.25로 한 번에 업그레이드하면 아래 보안 수정도 모두 포함됩니다.

CVE버전내용
CVE-2021-217057.4.21FILTER_VALIDATE_URL의 SSRF 우회 취약점
CVE-2021-217047.4.21PDO_Firebird 스택 버퍼 오버플로우 및 SIGSEGV (4건)
CVE-2021-217067.4.24ZipArchive 경로 탈출 취약점

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

호환성

  • PHP 7.4.25는 하위 호환성 변경 없음. 기존 7.4.x 프로젝트에서 코드 수정 없이 바이너리 교체만으로 적용 가능합니다.
  • Laravel 6.x(LTS), 7.x, 8.x 모두 PHP 7.4를 지원하므로 영향 없음.

보안 긴급도

  • PHP-FPM 사용 서버: 즉시 업데이트 권장 (CVE-2021-21703)
  • ZipArchive를 통한 파일 처리: 사용자 업로드 Zip 파일을 서버에서 직접 추출하는 기능이 있다면 매우 시급
  • SSRF 필터링: FILTER_VALIDATE_URL을 보안 목적으로 사용 중이라면 CVE-2021-21705 패치 포함 여부 확인 필요

Laravel Valet (macOS)

# Homebrew를 통한 PHP 업그레이드brew upgrade php@7.4valet restart
  • Valet 사용자는 php@7.4 패키지 업그레이드 후 Valet 재시작 필요
  • macOS 환경에서는 CVE-2021-21703(FPM 권한 상승)의 실질적 위험도는 낮으나, 프로덕션 동일 환경 유지 차원에서 업데이트 권장

Laravel Sail (Docker)

# docker-compose.yml 또는 .env 에서 PHP 버전 확인 # sail build --no-cache 후 재시작
  • 공식 Laravel Sail 이미지가 업데이트되면 sail build --no-cache로 적용
  • php:7.4-fpm 기반 커스텀 Dockerfile 사용 시 docker pull php:7.4-fpm으로 최신 이미지 확인

공유 호스팅 환경

  • 카페24, 가비아 등 공유 호스팅 사용자는 호스팅사의 PHP 버전 업데이트 공지를 반드시 확인하세요. 공유 호스팅의 경우 CVE-2021-21703의 로컬 권한 상승 위험이 상대적으로 더 높습니다.

실무 체크리스트

로컬 개발 환경

  • php -v 명령으로 현재 버전 확인
  • Homebrew(macOS): brew upgrade php@7.4 실행
  • XAMPP/WAMP(Windows): 공식 사이트에서 최신 7.4.25 패키지 다운로드
  • Docker: docker pull php:7.4-fpm 또는 php:7.4-apache로 이미지 갱신

스테이징 환경

  • 현재 PHP 버전 기록 (롤백 기준점)
  • 패키지 매니저로 업데이트:
    # Ubuntu/Debian (ondrej/php PPA 사용 시)sudo apt-get updatesudo apt-get install --only-upgrade php7.4-fpm php7.4-cli# CentOS/RHEL (Remi repo 사용 시)sudo yum update php74
  • FPM 재시작: sudo systemctl restart php7.4-fpm
  • phpinfo() 또는 php -v로 버전 7.4.25 확인
  • Laravel 핵심 기능 smoke test 수행 (라우팅, DB 연결, 파일 업로드)
  • ZipArchive 사용 기능 테스트 (압축 해제 경로 검증 포함)
  • FILTER_VALIDATE_URL 관련 Validation 로직 테스트

프로덕션 환경

  • 배포 전 스테이징에서 최소 24시간 검증
  • 배포 점검 시간(새벽 등) 확보 및 팀 공지
  • 패키지 업데이트 및 FPM 재시작 (무중단 배포 고려):
    # PHP-FPM graceful reload (기존 연결 유지)sudo systemctl reload php7.4-fpm
  • Nginx/Apache 액세스 로그 및 PHP 에러 로그 모니터링 (업데이트 후 30분)
  • APM(New Relic, Datadog 등) 에러율 대시보드 확인
  • 롤백 절차 준비: 업데이트 전 패키지 버전 고정값 기록

보안 추가 조치

  • PHP-FPM 프로세스가 최소 권한 계정으로 실행되는지 확인 (www-data, nginx 등)
  • open_basedir 설정으로 파일 시스템 접근 제한 여부 확인
  • ZipArchive로 사용자 파일을 처리하는 경우, 추출 경로를 화이트리스트로 검증하는 코드 추가 검토:
    // 경로 탈출 방지 예시 $realDestination = realpath($destination); $realExtractPath = realpath($extractedFilePath); if (strpos($realExtractPath, $realDestination) !== 0) { throw new \RuntimeException('경로 탈출 시도 감지'); }
  • FILTER_VALIDATE_URL을 SSRF 방어 유일 수단으로 사용 중이라면, 화이트리스트 기반 추가 방어 레이어 도입 검토

참고: PHP 7.4 브랜치는 2022년 11월 28일 공식 지원 종료(EOL) 예정입니다. 보안 업데이트를 받기 위해 PHP 8.0 또는 8.1로의 마이그레이션 계획을 수립하시기 바랍니다.