PHP 8.4.24 업데이트 — 한국 Laravel 개발자 영향 분석
작성: 라라벨 코리아 (초안)
발행: 2026년 7월 31일
## 요약
요약
PHP 8.4.24가 릴리스되었으며, BCMath와 PGSQL의 보안 취약점(CVE) 수정을 포함한 다수의 버그 픽스가 포함되어 있습니다. 특히 SQL 인젝션, 힙 버퍼 오버플로우, 메모리 손상 등 보안에 직결되는 수정 사항이 다수 포함되어 있어 프로덕션 환경의 즉각적인 업그레이드가 권장됩니다. 이 문서는 PHP 8.4.21부터 8.4.24까지의 누적 변경 사항을 함께 정리합니다.
핵심 내용
🔴 보안 수정 (즉시 대응 필요)
PHP 8.4.24에는 다음의 CVE가 포함되어 있습니다:
-
CVE-2026-17544 —
bccomp()의 Out-of-bounds write (BCMath)bccomp()함수에서 경계를 벗어난 쓰기가 발생할 수 있는 취약점입니다. BCMath를 사용하는 금융·정산 관련 Laravel 프로젝트에서 특히 주의가 필요합니다.
-
CVE-2026-17543 — PGSQL
E'...'백슬래시 탈출을 통한 SQL 인젝션- PostgreSQL 확장에서 백슬래시 이스케이프 문자열(
E'...'구문)을 악용한 SQL 인젝션이 가능합니다. Laravel + PostgreSQL 조합을 사용하는 프로젝트는 즉시 업그레이드해야 합니다.
- PostgreSQL 확장에서 백슬래시 이스케이프 문자열(
-
CVE-2026-9672 — GD 라이브러리(
libgd) 업그레이드- 이미지 처리 기능을 사용하는 서비스에서 원격 코드 실행 또는 메모리 손상 가능성이 존재합니다.
-
CVE-2026-7260 — Phar 재귀 심볼릭 링크를 통한 크래시
- Phar 아카이브 파일 처리 시 무한 루프로 인한 서비스 중단이 가능합니다.
참고: 위 CVE 번호는 2026년으로 기재되어 있으며, 이는 소스 데이터에 명시된 내용 그대로입니다. 업데이트 시 공식 PHP 보안 페이지를 반드시 재확인하세요.
🟠 이전 릴리스(8.4.21~8.4.23)의 주요 보안 수정 (누적)
8.4.24 이전 버전에서 수정된 보안 취약점도 함께 파악해야 합니다:
| CVE | 영향 컴포넌트 | 내용 |
|---|---|---|
| CVE-2026-14355 | OpenSSL | openssl_encrypt() AES-WRAP-PAD 사용 시 메모리 손상 |
| CVE-2026-7263 | DOM | Dom\XMLDocument::C14N() 중복 네임스페이스 선언 (XXE 관련) |
| CVE-2026-6735 | FPM | FPM 상태 엔드포인트 XSS |
| CVE-2026-7259 | MBString | mb_ereg_search_init()를 통한 Null Pointer Dereference |
| CVE-2026-6104 | MBString | mbfl_name2encoding_ex()의 Out-of-bounds 접근 |
| CVE-2026-29078, CVE-2026-29079 | DOM/lexbor | lexbor v2.7.0 업그레이드로 해소 |
🟡 주요 버그 수정 (기능 영향)
Standard 라이브러리
array_multisort()비교 함수 내에서 배열이 변경될 때 Use-after-free 버그 수정 — Laravel Collection이나 커스텀 정렬 로직에서 복잡한 콜백을 사용하는 경우 영향받을 수 있습니다.convert.base64-encode스트림 필터의 점진적 플러시 시 데이터 손상 수정 — 파일 스트리밍, 첨부파일 인코딩 처리에 영향을 줄 수 있습니다.base_convert()가 최대 64자까지만 출력하던 버그 수정.version_compare()가 마침표로 끝나는 버전 문자열을 잘못 처리하던 버그 수정.
Date/Time
@-notation으로 표기된 연도 0의 2월 Unix 타임스탬프 파싱 오류 수정.- 단일 공백 문자열 파싱 오류 수정.
timelib2022.17 버전으로 업데이트.
PDO_ODBC
- 힙 버퍼 오버플로우(GH-22666), 힙 버퍼 오버리드(GH-22667, GH-22668), Out-of-bounds write(GH-22665) 등 ODBC 관련 다중 메모리 취약점 수정.
Reflection
ReflectionClass::hasProperty()및getProperty()가 부모 클래스의 private 속성을 가리는 동적 프로퍼티를 무시하던 버그 수정 — PHP 8.4의 Property Hooks와 함께 사용할 경우 예상치 못한 동작이 있었을 수 있습니다.ReflectionConstant::__toString()의 null 바이트 처리 오류 수정.
Streams
- 영구 스트림 키가 null 바이트에서 잘려 추상 유닉스 도메인 소켓이 리소스를 공유하던 버그 수정 — Docker 환경에서 소켓 기반 통신을 사용하는 경우 영향을 받을 수 있습니다.
Intl
Collator,Spoofchecker생성자를 두 번 호출 시 메모리 누수 수정.Locale::lookup()/locale_lookup()이 언어 태그를 정규화할 수 없을 때 올바르게NULL을 반환하도록 수정.
한국 Laravel 개발자에게 미치는 영향
Laravel + PostgreSQL 사용자 (긴급)
CVE-2026-17543는 pgsql 확장의 SQL 인젝션 취약점입니다. Laravel의 Eloquent ORM과 Query Builder는 PDO를 통해 파라미터 바인딩을 사용하므로 일반적인 경우 직접적인 영향은 제한적일 수 있지만, Raw Query(DB::statement(), DB::select() 등)를 사용하는 코드는 즉각적인 점검이 필요합니다.
BCMath 사용 금융/이커머스 서비스 (긴급)
bccomp()의 Out-of-bounds write(CVE-2026-17544)는 PHP의 bcmath 함수를 직접 사용하거나 moneyphp/money, brick/money 같은 패키지를 사용하는 서비스에 영향을 줄 수 있습니다.
Laravel Valet (macOS)
# Homebrew로 PHP를 관리하는 경우brew upgrade phpvalet restartValet은 Homebrew PHP에 의존하므로, 8.4.24가 Homebrew에 반영되면 즉시 업그레이드하세요. 반영 시점은 Homebrew 패키지 메인테이너에 따라 다를 수 있습니다.
Laravel Sail / Docker
공식 sail Docker 이미지 및 laravelphp/sail 기반 이미지가 업데이트되기까지 시간이 소요될 수 있습니다. 직접 Dockerfile을 관리하는 경우 베이스 이미지를 명시적으로 고정하고 업데이트 타이밍을 직접 제어하는 것이 좋습니다.
# 예시: PHP 8.4 공식 이미지 사용 시 태그를 명시
FROM php:8.4.24-fpm-alpineForge / Envoyer / 공유 호스팅
- Laravel Forge: 서버 PHP 버전 업그레이드는 Forge 대시보드에서 직접 적용하거나 SSH 접속 후 수동으로 진행하세요.
- 공유 호스팅: PHP 버전을 직접 제어할 수 없는 경우 호스팅 업체에 업그레이드 일정을 문의하세요.
array_multisort() 사용 코드 검토
Laravel Collection의 sortBy() 등 내부적으로 usort를 사용하는 메서드는 직접적인 영향이 없지만, array_multisort()를 직접 호출하면서 비교 콜백 안에서 원본 배열을 수정하는 코드는 Use-after-free 버그의 영향권에 있었을 수 있습니다.
실무 체크리스트
로컬 개발 환경
- PHP 버전 확인:
php -v - Homebrew(Valet):
brew upgrade php && valet restart - Docker/Sail:
docker pull php:8.4.24-fpm또는docker compose build --no-cache - phpinfo() 또는
php -r "echo PHP_VERSION;"으로 버전 확인
스테이징 환경
- PHP 8.4.24 업그레이드 적용
- BCMath 관련 코드(
bccomp,bcadd,bcmul등) 단위 테스트 실행 - PostgreSQL Raw Query 사용 코드 검색 및 검토:
grep -rn "DB::statement\|DB::select\|DB::unprepared" app/ -
base64_encode스트림 필터 또는 파일 인코딩 로직 테스트 -
array_multisort()직접 사용 여부 확인:grep -rn "array_multisort" app/ - Intl/다국어 관련 기능 테스트 (
Locale,Collator사용 코드) - FPM 상태 페이지(
/status) 사용 여부 확인 및 접근 제한 설정 검토
프로덕션 환경
- 즉시 적용 대상 확인: PostgreSQL 사용 + Raw Query, BCMath 사용, 이미지 처리(GD), Phar 파일 처리
- 업그레이드 전 현재 PHP 버전 및 설정 백업:
php --ini - 서버 PHP 업그레이드 (Ubuntu/Debian 기준):
sudo add-apt-repository ppa:ondrej/php # 이미 추가된 경우 생략sudo apt updatesudo apt upgrade php8.4sudo systemctl restart php8.4-fpm - 업그레이드 후 Laravel 애플리케이션 스모크 테스트 실행
- PHP-FPM 및 웹서버(Nginx/Apache) 재시작 확인
- 모니터링 툴(Sentry, Datadog, New Relic 등)에서 오류 급증 여부 확인 (배포 후 30분)
- OPcache 캐시 초기화:
sudo systemctl restart php8.4-fpm# 또는 Laravel Artisan 커맨드 활용php artisan opcache:clear # (패키지 설치 시)
⚠️ 드래프트 참고사항: 이 문서는 제공된 릴리스 데이터를 기반으로 작성된 초안입니다. CVE 번호의 공식 NVD 등록 여부 및 CVSS 심각도 점수는 nvd.nist.gov 및 php.net/security에서 업데이트 전 반드시 확인하시기 바랍니다.