업데이트phplaravel업데이트
PHP 8.4.10 업데이트 — 한국 Laravel 개발자 영향 분석
작성: 라라벨 코리아 (초안)
발행: 2026년 8월 6일
## 요약
요약
PHP 8.4.10이 2025년 7월 3일 릴리스되었습니다. 이번 릴리스는 보안 릴리스로, PostgreSQL 확장의 이스케이핑 오류 미확인 취약점(CVE-2025-1735), SOAP 확장의 NULL 포인터 역참조 취약점(CVE-2025-6491), 호스트명 Null 바이트 종료 취약점(CVE-2025-1220) 등 3개의 CVE가 포함되어 있어 즉시 업그레이드가 권장됩니다. 보안 수정 외에도 메모리 누수, 세그멘테이션 폴트, 무한 재귀 등 다수의 안정성 버그가 함께 수정되었습니다.
핵심 내용
🔴 보안 수정 사항 (즉시 조치 필요)
CVE-2025-1735 — PGSQL 이스케이핑 오류 미확인
- 영향 범위:
pgsql확장을 사용하는 모든 애플리케이션 - 내용:
pg_escape_string(),pg_escape_literal()등 이스케이핑 함수가 내부 오류 발생 시 이를 확인하지 않아 잘못된 이스케이핑 결과가 반환될 수 있었습니다. - 실무 영향: PostgreSQL을 직접 사용하는 프로젝트(Eloquent ORM의
pgsql드라이버 포함)에서 이론적으로 SQL 인젝션 벡터가 될 수 있으므로 주의가 필요합니다. PDO를 통한 파라미터 바인딩을 사용하더라도 내부적으로 이스케이핑을 거치는 경로가 존재할 수 있습니다.
CVE-2025-6491 — SOAP NULL 포인터 역참조
- 영향 범위:
SoapServer또는SoapClient를 사용하는 애플리케이션 - 내용: XML 네임스페이스 접두사가 매우 긴 요청을 처리할 때 NULL 포인터 역참조가 발생하여 서비스 거부(DoS) 공격으로 이어질 수 있습니다.
- 실무 영향: 외부에 SOAP 엔드포인트를 노출하는 레거시 시스템, 공공 API 연동 프로젝트에서 즉각적인 업그레이드가 필요합니다.
CVE-2025-1220 — Standard 확장 호스트명 Null 바이트 종료
- 영향 범위:
fsockopen(),stream_socket_client()등 호스트명을 직접 처리하는 네트워크 함수 - 내용: 호스트명 문자열에 Null 바이트가 삽입될 경우 의도하지 않은 호스트로 연결될 수 있는 취약점입니다.
- 실무 영향: HTTP 클라이언트 래퍼나 커스텀 소켓 통신 코드를 사용하는 경우 주의가 필요합니다. Guzzle 등 주요 HTTP 클라이언트 라이브러리는 자체적으로 호스트 검증을 수행하나, PHP 내장 함수를 직접 사용하는 경우 위험에 노출될 수 있습니다.
🟡 주요 안정성 버그 수정
Core
- 무한 재귀 버그 수정 (GH-17711, GH-18022, GH-18464):
#[Deprecated]속성 평가 중 무한 재귀가 발생하던 문제가 수정되었습니다. PHP 8.4에서 새롭게 도입된#[Deprecated]속성을 활용하는 프로젝트에서 예기치 않은 스택 오버플로가 발생했을 수 있습니다. zend_gc메인 청크 삭제 방지: 가비지 컬렉터 내부의 잠재적 메모리 손상 버그가 수정되었습니다.
FPM
fpm_get_status세그멘테이션 폴트 (GH-18662): FPM 상태 페이지(pm.status_path)를 활성화한 환경에서 충돌이 발생할 수 있던 버그가 수정되었습니다. Laravel 애플리케이션을 PHP-FPM으로 운영하면서 모니터링 도구가 FPM 상태를 주기적으로 폴링하는 환경이라면 해당 버그에 노출되었을 가능성이 있습니다.
BcMath
BcMath\Number참조 접근 시 크래시 (GH-18641): PHP 8.4에서 도입된BcMath\Number객체 사용 시 프로퍼티를 참조(&)로 접근하면 크래시가 발생하던 버그가 수정되었습니다. 정밀 수치 계산(금융, 통계)에BcMath객체 API를 활용하는 프로젝트는 반드시 업그레이드해야 합니다.
SimpleXML
- 힙 버퍼 오버플로 (GH-18597): UTF-8 바이트가 포함된 문자열 할당 시 힙 버퍼 오버플로가 발생하던 문제가 수정되었습니다. 한국어 등 멀티바이트 문자를 포함한 XML을
SimpleXML로 파싱하는 코드에서 재현될 수 있으므로 국내 개발자 환경에서 특히 주의가 필요합니다.
Opcache
- Alpine 3.22 인라인 TLS 어셈블리 비호환 (GH-18743): Alpine Linux 3.22 기반 Docker 이미지에서 Opcache가 정상 동작하지 않던 문제가 수정되었습니다. Laravel Sail 및 커스텀 Alpine Docker 이미지를 사용하는 환경이라면 이번 업그레이드가 특히 중요합니다.
Random
- 사용자 정의 랜덤 엔진에서 타입 혼동 및 누수:
Random\Engine인터페이스를 구현한 사용자 정의 랜덤 엔진 사용 시 참조 타입 혼동이 발생하던 버그가 수정되었습니다.
OpenSSL
- HTTP 프록시 피어 이름 설정 버그 (#74796): HTTP 프록시를 통한 요청 시 피어 이름이 잘못 설정되던 오래된 버그가 수정되었습니다. 프록시 환경에서 SSL/TLS 검증을 수행하는 환경에 영향을 미칩니다.
한국 Laravel 개발자에게 미치는 영향
호환성
| 구성 요소 | 영향 수준 | 비고 |
|---|---|---|
| Laravel 11.x / 12.x | 낮음 (드롭인 업그레이드) | PHP 8.4.x 마이너 업데이트, 코드 변경 불필요 |
| PostgreSQL + Eloquent | 높음 (보안) | CVE-2025-1735, PDO 파라미터 바인딩 사용 여부 확인 필요 |
| SOAP 연동 레거시 시스템 | 높음 (보안/안정성) | CVE-2025-6491, 공공기관 API 연동 프로젝트 해당 |
| PHP-FPM 운영 환경 | 중간 | FPM 상태 페이지 사용 시 세그폴트 버그 해소 |
| Alpine Docker 이미지 | 중간 | Alpine 3.22 + Opcache 비호환 해소 |
| BcMath\Number 사용 코드 | 중간 | 참조 접근 크래시 해소 |
| 한국어 XML 처리 (SimpleXML) | 중간 | UTF-8 힙 오버플로 해소 |
Laravel Sail / Docker 환경
- Alpine 기반 이미지: Alpine 3.22를 사용 중이라면 Opcache 관련 버그(GH-18743)가 수정되었으므로 반드시 PHP 이미지를
8.4.10으로 업데이트해야 합니다.php:8.4-fpm-alpine또는sail-8.4/alpine계열 이미지를 사용하는 경우 해당합니다. - Laravel Sail:
docker-compose.yml의 PHP 이미지 태그가 고정된 경우 명시적으로8.4.10이상으로 업데이트하거나latest태그 사용 여부를 재검토하세요. - Laravel Valet (macOS): Homebrew를 통해 PHP를 관리하는 경우
brew upgrade php명령으로 업그레이드할 수 있습니다. Valet 자체의 설정 변경은 불필요합니다.
공공기관 및 금융권 개발자
- 국내 공공 API 다수가 SOAP 기반으로 제공됩니다. CVE-2025-6491은 외부에서 조작된 SOAP 요청으로 서버를 다운시킬 수 있는 DoS 벡터이므로, 공공 SOAP API를 소비(클라이언트)하는 경우에도 서버 PHP 버전 업그레이드가 권장됩니다.
- 금융/핀테크 프로젝트에서
BcMath\Number객체 API를 도입한 경우 참조 접근 크래시 버그가 수정되었으므로 업그레이드 후 검증하세요.
실무 체크리스트
로컬 개발 환경
- 현재 PHP 버전 확인:
php -v - Homebrew (macOS/Valet):
brew upgrade php또는brew upgrade shivammathur/php/php@8.4 - Docker/Sail:
docker-compose.yml또는Dockerfile의 PHP 이미지 태그를8.4.10이상으로 업데이트FROM php:8.4.10-fpm-alpine -
BcMath\Number참조 접근 코드가 있다면 업그레이드 후 동작 검증 -
SimpleXML로 한국어(UTF-8) XML 파싱 코드가 있다면 업그레이드 후 테스트 재실행
스테이징 환경
- PHP 업그레이드 후
composer diagnose및php artisan config:cache재실행 - PHP-FPM 상태 페이지(
/status) 활성화 여부 확인 — FPM 세그폴트 버그(GH-18662) 해소 검증 - Alpine 3.22 기반 Docker 이미지 사용 여부 확인 → Opcache 활성화 상태로 테스트
- PostgreSQL 연동 프로젝트: 원시 쿼리(
DB::statement(),pg_escape_*) 사용 코드 점검 - SOAP 연동 코드 존재 시 대용량 XML 네임스페이스 처리 시나리오 테스트
- 전체 PHPUnit 테스트 스위트 실행 및 결과 확인
프로덕션 환경
- 배포 전 반드시 스테이징 검증 완료 확인
- 블루/그린 또는 롤링 배포 전략을 사용하는 경우 PHP 버전 불일치가 없도록 확인
- PHP-FPM 재시작 필요:
sudo systemctl restart php8.4-fpm(또는php-fpm서비스명 확인) - Opcache 캐시 초기화:
php artisan opcache:clear또는 FPM 재시작으로 처리 - CVE 대응 배포 노트 작성: CVE-2025-1735, CVE-2025-6491, CVE-2025-1220을 보안 패치 이력에 기록
- 모니터링 지표(에러 레이트, FPM 워커 상태) 배포 후 15~30분 주시
- 사내 보안팀 또는 고객에게 보안 패치 적용 사실 고지 필요 여부 검토 (ISMS, CC 인증 대응)
⚠️ 드래프트 주의 사항: CVE 심각도 등급(CVSS 점수)은 이번 릴리스 발표 데이터에 명시되지 않았습니다. 공식 php.net 릴리스 페이지 및 NVD(National Vulnerability Database)에서 최신 CVSS 점수를 확인한 후 내부 위험 평가에 반영하시기 바랍니다.