PHP 8.5.8 업데이트 안내
릴리스: 2026년 7월 2일
게시: 2026년 7월 3일
🔐 PHP 8.5.8 보안 릴리스 공지 ⚠️ 보안 릴리스입니다. 가능한 한 빠른 업그레이드를 권장합니다.
🔐 PHP 8.5.8 보안 릴리스 공지
⚠️ 보안 릴리스입니다. 가능한 한 빠른 업그레이드를 권장합니다.
요약
PHP 8.5.8이 보안 태그와 함께 출시되었습니다. 이번 릴리스는 Phar 디렉터리 보호 우회 취약점을 포함한 다수의 버그 수정과 메모리 안전성 개선을 포함합니다. GD, Opcache, SOAP, Zlib 등 핵심 익스텐션 전반에 걸친 안정성 향상도 함께 이루어졌습니다.
📌 본 공지는 PHP 8.5.8 (최신) 릴리스를 기준으로 작성되었으며, 이전 릴리스(8.5.7, 8.5.6 등)의 보안 수정 사항도 포함하고 있으므로 아직 업그레이드하지 않은 분들은 반드시 확인하시기 바랍니다.
주요 변경 사항
🔒 보안 수정 (이전 릴리스 포함 누적)
PHP 8.5.6 ~ 8.5.7에 포함된 보안 수정 사항으로, 아직 업그레이드하지 않은 경우 반드시 적용해야 합니다.
- [CVE-2026-44927, CVE-2026-44928] URI: uriparser 1.0.2 미만에서 포인터 차이 계산 시 int 절삭 및 URI 동등 비교 오류 (PHP 8.5.7)
- [CVE-2026-7263] DOM:
Dom\XMLDocument::C14N()호출 후 중복 xmlns 선언 방출 (PHP 8.5.6) - [CVE-2026-6735] FPM: 상태 엔드포인트에서 XSS 취약점 (PHP 8.5.6)
- [CVE-2026-7259] MBString:
mb_ereg_search_init()을 통한 Null 포인터 역참조 (PHP 8.5.6) - [CVE-2026-6104] MBString:
mbfl_name2encoding_ex()에서 범위 밖 접근 (PHP 8.5.6) - [CVE-2025-14179] PDO_Firebird: NUL 바이트를 통한 SQL 인젝션 (PHP 8.5.6)
- [CVE-2026-6722, CVE-2026-7261, CVE-2026-7262] SOAP: Stale 포인터, Use-after-free, NULL 체크 오류 (PHP 8.5.6)
- [CVE-2026-7568] Standard: char 배열 오프셋의 부호 있는 정수 오버플로 (PHP 8.5.6)
- [CVE-2026-7258] Standard: ctype.h 함수에 unsigned char 전달 불일치 (PHP 8.5.6)
- [CVE-2026-29078, CVE-2026-29079] Lexbor: v2.7.0 업그레이드로 취약점 해결 (PHP 8.5.6)
- [CVE-2026-42371] URI: uriparser 텍스트 범위 비교에서 숫자 절삭 (PHP 8.5.6)
🔒 보안 수정 (PHP 8.5.8 신규)
- [Phar]
Phar::addEmptyDir()에서/.phar로 시작하는 경로를 통한 매직.phar디렉터리 보호 우회 취약점 수정
🛠 Core
goto구문이try/finally블록 앞 레이블로 점프할 때 발생하는 잘못된 컴파일 오류 수정 (GH-22280)- NaN을 bool/string으로 강제 변환 시 오류 핸들러가 예외를 던지면 Assertion 실패하는 버그 수정 (GH-22112)
🛠 BCMath
bcround()및BcMath\Number::round()에서 과도한 메모리 할당 및 부호 있는 정수 오버플로 문제 수정
🛠 Date
DatePeriod::createFromISO8601String()의 잘못된 반복 횟수 계산 수정
🛠 Exif
- single/double 태그의 값을 올바르게 읽도록 수정
🛠 GD
gdImageSetStyle()에서 오버플로 발생 후 조기 반환 시 이중 해제(double free) 버그 수정 (GH-22121)
🛠 Intl
transliterator_transliterate()의 잘못된 인수 위치 수정IntlTimeZone::getDisplayName()에서 유효하지 않은 표시 유형에 대한 객체 오류 상태 동기화 수정
🛠 Opcache
- 테일콜(tailcall) VM 인터럽트 버그 추가 수정 (GH-22265)
- 재진입 가능한 오토로딩에서 안전하지 않은 상속 캐시 재실행 수정 (GH-20469)
- 참조 래퍼를 포함하는 타입 지정 값 반환 시 변수 타입 손상 수정 (GH-21972)
🛠 Reflection
ReflectionClass::getProperty()오류 메시지 및 오토로딩에서 클래스 이름 대소문자 보존
🛠 SOAP
$_SERVER가 배열이 아닐 때SoapServer::handle()크래시 수정 (GH-22218)- SOAP 서버가
$server->handle에 원시 입력을 필수로 요구하는 문제 수정 (GH-22285)
🛠 SQLite
- 컬럼 조회 시 오류 검사 수정
🛠 URI
- Windows에서 정적 링크 시
LXB_API처리 오류 수정 - 이전 wither 호출의 오류 로그가 다음
UrlValidationError발생 시 반환되는 문제 수정
🛠 Zip / Zlib
- Zip: 오류 관련 메모리 누수 수정
- Zlib: deflate 초기화 실패 및
inflate_add()에서 메모리 누수 수정
Laravel 개발자에게 미치는 영향
⚠️ 보안 긴급도: 높음
아직 PHP 8.5.6 또는 8.5.7로 업그레이드하지 않으셨다면, 누적된 10개 이상의 CVE가 적용되지 않은 상태입니다. FPM XSS, SOAP Use-after-free, MBString Null 포인터, PDO_Firebird SQL 인젝션 등은 프로덕션 환경에 직접적인 영향을 미칠 수 있으므로 즉시 업그레이드를 강력히 권장합니다.
Laravel 호환성
| 항목 | 내용 |
|---|---|
| Laravel 11/12 | PHP 8.5.x 완전 지원, 즉시 업그레이드 가능 |
| composer.json | "php": "^8.2" 또는 "^8.3" 제약 조건은 변경 불필요 |
| Breaking Changes | 없음 — 버그 수정 및 보안 패치만 포함 |
주목할 변경 사항
- Phar 사용 프로젝트:
Phar::addEmptyDir()의 보안 우회 취약점이 수정되었습니다. Phar 아카이브를 동적으로 생성하는 코드가 있다면 반드시 업그레이드하세요. - BCMath /
BcMath\Number: PHP 8.5에서 도입된BcMath\Number객체를 사용하는 경우round()관련 오버플로 수정이 적용됩니다. - SOAP 서비스: Laravel에서 SOAP 클라이언트/서버를 운용하는 경우 이번 릴리스의 SOAP 크래시 및 보안 수정이 중요합니다.
- URI 익스텐션 (Windows): Windows 환경에서 PHP 8.5의 내장 URI 익스텐션을 사용하는 경우 정적 링크 문제가 해결되었습니다.
- Opcache JIT: JIT 사용 환경에서 타입 손상 및 테일콜 크래시 수정이 포함되어 있어 프로덕션 안정성이 향상됩니다.
업그레이드 안내
🍺 로컬 개발 환경
Homebrew (macOS)
brew updatebrew upgrade php# 특정 버전 사용 시brew upgrade php@8.5# 버전 확인php -vLaravel Valet
brew upgrade phpvalet restartLaravel Sail (Docker)
docker-compose.yml 또는 docker/8.5/Dockerfile에서 이미지 태그를 확인하고:
docker compose pull
docker compose down && docker compose up -d
# 컨테이너 내부 버전 확인
docker compose exec laravel.test php -vDDEV / Herd
# DDEV
ddev stop && ddev start
# Laravel Herd
# Herd UI → PHP 버전 관리에서 8.5.8 업데이트 확인🖥 스테이징 / 프로덕션 환경
Ubuntu / Debian (ondrej/php PPA)
sudo apt updatesudo apt upgrade php8.5 php8.5-* -y# FPM 사용 시 재시작sudo systemctl restart php8.5-fpm# 버전 확인php8.5 -vCentOS / RHEL (Remi Repository)
sudo dnf update php8.5* -ysudo systemctl restart php-fpmDocker 기반 프로덕션
# Dockerfile 베이스 이미지 업데이트
FROM php:8.5.8-fpm-alpine
# 또는
FROM php:8.5.8-cli-alpine# 이미지 재빌드 및 배포docker build --no-cache -t myapp:php8.5.8 .docker push myapp:php8.5.8📦 composer.json PHP 제약 조건 확인
{
"require": {
"php": "^8.2|^8.3|^8.4|^8.5"
}
}PHP 8.5만 사용하는 경우
"php": "^8.5"로 지정할 수 있습니다. 이번 릴리스는 하위 호환성을 유지하므로 제약 조건 변경은 필요하지 않습니다.
⚙️ CI/CD 매트릭스 업데이트
GitHub Actions 예시
jobs:
test:
strategy:
matrix:
php: ['8.2', '8.3', '8.4', '8.5']
steps:
- uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php }}
# setup-php는 자동으로 최신 패치 버전(8.5.8)을 사용합니다✅ 업그레이드 후 확인 사항
# PHP 버전 확인
php -v
# 핵심 익스텐션 로드 확인
php -m | grep -E 'opcache|phar|soap|mbstring|intl'
# Laravel 애플리케이션 상태 확인
php artisan about
php artisan config:cache
php artisan route:cache
# 테스트 실행
php artisan test📚 참고 링크