PHP 8.0.25 업데이트 — 한국 Laravel 개발자 영향 분석
작성: 라라벨 코리아 (초안)
발행: 2026년 8월 6일
## 요약
요약
PHP 8.0.25는 2022년 10월 27일 릴리스된 보안 패치 버전으로, imageloadfont()의 OOB 읽기 취약점(CVE-2022-31630)과 hash_update()의 버퍼 오버플로우(CVE-2022-37454) 두 가지 심각한 보안 결함을 수정합니다. PHP 8.0 브랜치를 운영 중인 한국 Laravel 개발자라면 즉시 업그레이드를 검토해야 하며, 장기적으로는 PHP 8.0의 공식 지원 종료 일정도 함께 고려해야 합니다.
핵심 내용
🔴 보안 수정 사항 (즉시 대응 필요)
CVE-2022-37454 — hash_update() 버퍼 오버플로우 (Hash 모듈)
- 심각도: 매우 높음
hash_update()함수에 과도하게 긴 파라미터를 전달할 경우 버퍼 오버플로우가 발생합니다.- 공격자가 해시 연산을 수행하는 엔드포인트에 악의적인 입력을 전달할 경우, 원격 코드 실행(RCE) 가능성이 존재합니다.
- Laravel 애플리케이션에서
hash(),hash_update(),hash_hmac()등을 직접 사용하거나, 파일 무결성 검증, 서명 검증 로직에 활용하는 경우 직접적인 영향을 받습니다.
CVE-2022-31630 — imageloadfont() OOB 읽기 (GD 모듈)
- 심각도: 높음
imageloadfont()함수의 입력 유효성 검증 부재로 인해 경계 밖 메모리 읽기(Out-of-Bounds Read)가 발생합니다.- 이미지 처리 기능(프로필 이미지 업로드, 썸네일 생성, 캡차 등)을 제공하는 Laravel 애플리케이션에서 사용자 업로드 파일을 GD로 처리하는 경우 영향을 받습니다.
- Intervention Image 등 GD 기반 이미지 패키지를 사용하는 프로젝트도 간접적으로 영향권에 있습니다.
🟡 기능 버그 수정 사항 (8.0.25 포함 누적 패치)
PHP 8.0.25는 이전 마이너 버전들(8.0.15 ~ 8.0.24)의 누적 수정 사항도 포함합니다. 주요 기능 수정 내역은 다음과 같습니다.
| 모듈 | 수정 내용 | Laravel 연관성 |
|---|---|---|
| Session | session_create_id() 실패 문제 (커스텀 save handler) | 커스텀 세션 드라이버 사용 시 |
| Streams | stream_select() 예외 처리 개선 | 소켓/스트림 기반 큐, WebSocket |
| FPM | 데몬 리로드 후 access.log stderr 로깅 오류 수정 | PHP-FPM 운영 환경 |
| OPcache | ini_get() 최적화 오류, 무한 루프 CPU 100% 버그 수정 | 모든 프로덕션 환경 |
| PDO_PGSQL | Large Object 리소스 잘못된 종료 수정 | PostgreSQL 사용 프로젝트 |
| MBString | mb_send_mail() 헤더 LF 처리 오류 수정 | 메일 발송 기능 |
| MySQLnd | MariaDB 버전 접두사 파싱 오류 수정 | MariaDB + Laravel 조합 |
| Phar | CVE-2022-31628: Quine gzip 파일을 이용한 DoS 수정 | Composer 의존 환경 전반 |
참고: CVE-2022-31629(HTTP 변수명 충돌), CVE-2022-31626(mysqlnd 패스워드 버퍼 오버플로우), CVE-2022-31625(pg_query_params 미초기화 배열), CVE-2021-21708(Filter UAF) 등은 이전 패치 버전(8.0.20~8.0.24)에서 이미 수정되어 8.0.25에 포함되어 있습니다. 8.0.25 미만 버전을 사용 중이라면 이 모든 취약점에 노출된 상태입니다.
⚠️ PHP 8.0 지원 종료 일정 안내
PHP 8.0은 2023년 11월 26일부로 공식 지원이 종료(End of Life)됩니다. 8.0.25는 사실상 마지막 패치들 중 하나이며, 이후에는 보안 업데이트가 제공되지 않습니다. 장기적으로는 PHP 8.1 또는 8.2로의 마이그레이션을 계획해야 합니다.
한국 Laravel 개발자에게 미치는 영향
Laravel 버전 호환성
PHP 8.0.25는 버그픽스/보안 패치이므로 API 변경이 없습니다. 현재 PHP 8.0을 사용하는 Laravel 8.x, 9.x 프로젝트는 별도의 코드 수정 없이 PHP만 업그레이드하면 됩니다.
| Laravel 버전 | PHP 8.0 지원 | 비고 |
|---|---|---|
| Laravel 8.x | ✅ 지원 | 보안 패치만 지원 중 |
| Laravel 9.x | ✅ 지원 | PHP 8.0 ~ 8.2 |
| Laravel 10.x | ❌ 미지원 | PHP 8.1 이상 필요 |
로컬 개발 환경별 업그레이드 안내
Laravel Valet (macOS)
# Homebrew를 통한 PHP 업그레이드brew upgrade php@8.0# Valet 재시작valet restartHomebrew의
php@8.0포뮬러가 8.0.25를 반영할 때까지 시간 차이가 있을 수 있습니다.php --version으로 반드시 확인하세요.
Laravel Sail (Docker)
docker-compose.yml에서 사용하는 PHP 이미지를 확인하세요.
# docker-compose.yml
services:
laravel.test:
build:
context: ./vendor/laravel/sail/runtimes/8.0공식 sail 이미지는 php:8.0-fpm 기반 Dockerfile을 사용합니다. Docker Hub의 php:8.0-fpm 이미지가 8.0.25로 업데이트되었는지 확인 후 재빌드하세요.
# 이미지 재빌드./vendor/bin/sail build --no-cache./vendor/bin/sail up -d일반 Docker 환경
# Dockerfile
FROM php:8.0-fpm
# php:8.0.25-fpm 태그가 있는 경우 명시적 지정 권장docker pull php:8.0-fpmdocker-compose up -d --build한국 클라우드/호스팅 환경
- NHN Cloud, KakaoCloud, Naver Cloud: 관리형 PHP 환경을 사용하는 경우 콘솔에서 PHP 버전 업데이트 가능 여부를 확인하세요.
- 카페24, 가비아 등 공유 호스팅: 호스팅 업체에 PHP 8.0.25 적용 일정을 문의하거나, 지원하지 않는 경우 VPS/컨테이너 환경으로 전환을 검토하세요.
이미지 처리 기능 보유 프로젝트 긴급 점검
CVE-2022-31630의 영향을 받는 패턴:
// 사용자 업로드 폰트 파일을 직접 처리하는 경우 취약
$font = imageloadfont($userUploadedFontPath); // ⚠️ 취약
// Intervention Image 사용 시 내부적으로 GD 사용
Image::make($file)->font($fontPath, ...); // 간접 영향 가능실무 체크리스트
🖥️ 로컬 환경
-
php --version명령으로 현재 PHP 버전 확인 - PHP 8.0 사용 중이라면 8.0.25로 업그레이드 (Homebrew, apt, yum 등)
- Laravel Valet 사용 시
valet restart후 버전 재확인 - Laravel Sail 사용 시
sail build --no-cache후php --version확인 -
phpinfo()또는php -m으로 GD, Hash, Session 모듈 로드 확인
🧪 스테이징 환경
- PHP 8.0.25 업그레이드 후 PHP-FPM 재시작 (
systemctl restart php8.0-fpm) -
imageloadfont()또는 GD 관련 기능이 있다면 회귀 테스트 실행 -
hash_update()관련 커스텀 로직 동작 확인 - 커스텀 세션 save handler 사용 중이라면
session_create_id()호출 테스트 - OPcache 활성화 환경이라면 캐시 초기화 후 정상 동작 확인
php -r "opcache_reset();" # 또는 php-fpm 재시작 - MariaDB + MySQLnd 조합 사용 시 DB 연결 및 쿼리 정상 동작 확인
🚀 프로덕션 환경
- 배포 전 스테이징에서 충분한 검증 완료 여부 확인
- 배포 시간대 선정 (트래픽 최소 시간대 권장)
- PHP 업그레이드 전 현재 버전 및 설정 백업
php --version > php_version_backup.txt php --ini > php_ini_backup.txt - PHP-FPM 무중단 재시작 (
reload) 적용sudo systemctl reload php8.0-fpm - 업그레이드 후 애플리케이션 헬스체크 엔드포인트 응답 확인
- 에러 로그 모니터링 (최소 30분 이상)
tail -f /var/log/php8.0-fpm.logtail -f storage/logs/laravel.log - Sentry, Bugsnag 등 에러 트래킹 도구에서 신규 에러 발생 여부 확인
📅 중장기 계획
- PHP 8.0 EOL(2023년 11월) 전에 PHP 8.1 또는 8.2 마이그레이션 계획 수립
- Laravel 10.x 도입을 목표로 한다면 PHP 8.1 이상 업그레이드 로드맵 작성
- CI/CD 파이프라인의 PHP 버전 매트릭스 업데이트 (GitHub Actions, GitLab CI 등)
# GitHub Actions 예시 strategy: matrix: php: ['8.0', '8.1', '8.2']
⚠️ 편집자 검토 필요: PHP 8.0 정확한 EOL 날짜(2023년 11월 26일)는 공식 문서에서 재확인을 권장합니다. 또한 각 클라우드/호스팅 업체의 PHP 버전 지원 현황은 변동될 수 있으므로 최신 공지를 참조하세요.