본문 바로가기
← PHP 소식
PHP 8.4.26보안

PHP 8.4.26 변경 기록과 적용 점검

릴리스: 2026년 9월 24일

게시: 2026년 9월 25일

PHP 8.4.26 공식 변경 기록에서 구성요소와 CVE를 추출하고 사용 환경별 확인 순서를 제공합니다.

PHP 8.4.26 변경 사항

공식 php-src 태그의 NEWS에서 이 버전의 항목만 추출했습니다. 아래 구성요소와 확인 순서는 원문에 따라 자동 구성됩니다. 애플리케이션 호환성이나 취약점 영향 여부를 판정하지 않습니다.

변경된 구성요소

BCMath · Core · CLI · DOM · GD · FPM · Hash · Intl · MBString · MySQLnd · ODBC · Opcache · OpenSSL · PDO · PDO_ODBC · PDO_PGSQL · PDO Sqlite · Phar · SNMP · SOAP · Standard · SimpleXML · Windows · Zip · SAPI

원문에 명시된 CVE

사용 환경별 확인 순서

  • php -v와 php -m으로 실제 실행 버전과 확장 목록을 확인하고 아래 원문에서 사용 중인 구성요소의 변경을 찾으세요.
  • composer check-platform-reqs로 설치 환경의 요구사항을 확인하세요. 성공하더라도 동작 호환성까지 보장하지는 않습니다.
  • PHP-FPM을 사용한다면 스테이징에서 프로세스 재시작과 오류 로그를 확인하세요.
  • PDO를 사용한다면 실제 데이터베이스 드라이버로 조회·트랜잭션 테스트를 실행하세요.
  • PostgreSQL을 사용한다면 해당 확장과 드라이버의 쿼리 처리를 점검하세요.
  • TLS 연결을 사용한다면 외부 API·메일 서버 연결과 인증서 검증을 점검하세요.
  • GD를 사용한다면 이미지 업로드·리사이즈 처리를 실제 파일로 확인하세요.
  • BCMath를 사용한다면 금액·정밀도·부호 경계값의 계산 결과를 확인하세요.
  • 배포 전 스테이징에서 애플리케이션 테스트를 실행하고, 배포 후 웹 프로세스와 큐 워커가 새 PHP를 사용하는지 확인하세요.

공식 변경 기록

24 Sep 2026, PHP 8.4.26

  • BCMath: . Fixed out-of-bounds read in bc_is_zero_for_scale() when scale exceeds n_scale. (Ilia Alshanetsky)

  • Core: . Fixed out-of-bounds reads during automatic UTF-16/32 encoding detection. (Yudai Takada) . Fixed bug GH-15375 (Nested "yield from" skips items after a valid() or next() call on the inner generator). (iliaal) . Fixed bug GH-23232 (lone namespace separator asks the autoloader for an empty class name). (spawnia) . Fixed bug GH-23301 (Nested "yield from" yields a value twice when the middle generator delegates again). (Lazizbek Ergashev)

  • CLI: . Fixed bug GH-23425 (sapi_cli_server_send_headers() does not check the return value of php_cli_server_client_send_through()). (Lazizbek Ergashev)

  • DOM: . Fixed NamedNodeMap::getNamedItemNS() with an empty URI not matching the null namespace in spec-following mode. (Ilia Alshanetsky) . Fixed a use-after-free when cloning a DOMNameSpaceNode after DOMDocument::xinclude(). (iliaal) . Fixed bug GH-23331 (UAF when node_list_unlink() skips attribute children that still have a live wrapper). (iliaal) . Fixed a use-after-free when Dom\Element::setAttributeNS() replaces the value of an attribute whose child still has a live wrapper. (iliaal)

  • GD: . Fixed imageaffinematrixget() and imageaffinematrixconcat() reporting the wrong argument in error messages. (Weilin Du) . Fixed bug GH-23457 (imagebmp() is extremely slow when writing to a file). (Lazizbek Ergashev)

  • FPM: . Fixed bug GH-19320 (FPM UID and GID overflow). (Pratik Bhujel) . Fixed GHSA-62xp-839h-2637 (IPv6 ACL bypass in FastCGI listen.allowed_clients due to partial address comparison). (CVE-2026-91768) (Alexandre Daubois)

  • Hash: . Fixed a buffer overflow in hash_pbkdf2() with a large output length. (Lazizbek Ergashev)

  • Intl: . Fixed grapheme_strpos() and grapheme_strrpos() with an empty needle returning UTF-16 offsets instead of grapheme offsets. (Ilia Alshanetsky) . Fixed a memory leak when dumping IntlCalendar instances. (Ilia Alshanetsky) . Fixed a memory leak when iterating IntlBreakIterator::getPartsIterator() results. (iliaal) . Fixed a double-free when IntlGregorianCalendar construction fails after the ICU constructor adopts the TimeZone. (iliaal) . Fixed bug GH-23094 (NumberFormatter parsing offsets use UTF-16 positions for UTF-8 strings). (ColumbusLabs) . Fixed Locale::parseLocale() reading past a trailing '-' or '_'. (iliaal, Xuyang Zhang) . Fixed grapheme_str_split() treating UBRK_DONE as a byte index. (iliaal) . Fixed a leak in Locale::getKeywords() when a keyword value cannot be read. (iliaal) . Fixed a use-after-free when IntlRuleBasedBreakIterator is constructed from compiled rules. (iliaal)

  • MBString: . Fixed mb_ereg_replace() emitting a NUL or out-of-bounds bytes in the replacement when a \k<name> backref has no closing delimiter. (Ilia Alshanetsky)

  • MySQLnd: . Fixed GHSA-r6x9-5r99-36j7 (Various packet overreads in mysqlnd wire protocol). (CVE-2025-1218) (Jakub Zelenka, Nora Dossche)

  • ODBC: . Fixed odbc_field_len(), odbc_field_scale() and odbc_field_type() returning uninitialized memory when SQLColAttribute fails. (Ilia Alshanetsky)

  • Opcache: . Fixed a crash when the huge page SHM remap discarded mappings outside the reserved address range. (Piotr Hałas) . Fixed opcache.protect_memory race under ZTS. (realFlowControl) . Fixed bug GH-23288 (Crash on restart when opcache.interned_strings_buffer is overridden in an individual FPM pool). (David Carlier) . Fixed a tracing JIT crash when compiling a side trace for a method of a class that could not be stored in the inheritance cache. (GH-21710) (Arnaud, iliaal)

  • OpenSSL: . Fixed GHSA-vvx9-73fr-5jjx (TLS hostname verification falls back to CN after SAN mismatch). (CVE-2026-91769) (Jakub Zelenka) . Fixed GHSA-xr7j-rvgx-xq5p (Heap buffer overflow in php_openssl_matches_wildcard_name() on crafted server certificate wildcard CN). (CVE-2026-91767) (Jakub Zelenka)

  • PDO: . Fixed a leak when a persistent connection failed a liveness check with no other live PDO handle. (iliaal)

  • PDO_ODBC: . Fixed bug GH-23444 (ODBC_ATTR_ASSUME_UTF8 corrupts Unicode data outside Windows). (Calvin Buckley, Lazizbek Ergashev)

  • PDO_PGSQL: . Fixed PDO::CURSOR_SCROLL statements closing a cursor that does not exist. (KentarouTakeda)

  • PDO Sqlite: . Fixed bug GH-20214 (PDO::FETCH_DEFAULT unexpected behavior with PDOStatement::setFetchMode). (SakiTakamachi)

  • Phar: . Fixed bug GH-23418 (Use-after-free when looking up mounted directories). (Weilin Du) . Fixed bug GH-23477 (Memory leak on duplicate native Phar manifest entries). (Weilin Du) . Fixed GHSA-j3wh-g957-2m85 (Integer overflow in phar_tar_number() allowing TAR archive entry injection). (CVE-2026-6103) (Jakub Zelenka)

  • SNMP: . Fixed bug GH-23453 (SNMP::setSecurity() frees a non-malloced address with a context engine ID longer than 32 bytes). (Lazizbek Ergashev)

  • SOAP: . Fixed bug GH-23447 (Segfault when a class passed to SoapServer::setClass() fails to initialize). (Lazizbek Ergashev) . Fixed WSDL cache corruption when a soap:header defines headerfaults. (Ilia Alshanetsky) . Fixed stack overflow when parsing a WSDL with self-referential schema groups or attributeGroups. (Ilia Alshanetsky) . Fixed GHSA-rgrp-mwpx-f6rm (Unbounded recursion in server-side cleanup_xml_node()). (CVE-2026-91765) (Alexandre Daubois) . Fixed GHSA-cj93-vc83-wgqv (Integer overflow to buffer overflow in SOAP HTTP parsing). (CVE-2025-14181) (Nora Dossche, Jakub Zelenka)

  • Standard: . Fixed a segfault when a stream filter callback unsets StreamBucket::$data before re-attaching the bucket. (iliaal) . Fixed GHSA-7875-c8px-7q5f (Out-of-bounds read in the HTTP stream wrapper when following a redirect with an empty Location header). (CVE-2026-93682) (Ilia Alshanetsky, Jordi Kroon) . Fixed a memory leak in array_merge_recursive() when the recursive merge of an object converted to an array fails. (David Carlier) . Fixed read buffer compaction in php_stream_filter_flush(). (crystarm) . Fixed bug GH-22410 (Incorrect float behavior with large numbers). (arshidkv12) . Fixed GH-23338 (fsockopen()/pfsockopen() ValueError reported wrong argument number for $timeout). (lacatoire) . Fixed bug GH-23576 (Next index for array returned from array_keys() is wrong). (Lazizbek Ergashev) . Fixed GHSA-88hq-2827-7pg6 (Out-of-bounds read in convert.* stream filters when line-break-chars contains NUL). (CVE-2026-92842) (geeknik) . Fixed GHSA-fpwc-w8rq-cr92 (Cross-origin credential leak in HTTP stream wrapper redirects). (CVE-2026-91766) (Alexandre Daubois, Jakub Zelenka)

  • SimpleXML: . Fixed writing to a dimension of the object returned by attributes() not creating the attribute. (Ilia Alshanetsky) . Fixed child elements of the element returned by SimpleXMLElement::addChild() not being accessible by property name when namespaces are involved. (Ilia Alshanetsky)

  • Windows: . Fixed GHSA-9f67-6fw4-hpfp (Reserved device names are not rejected before file and stream I/O). (CVE-2026-17545) (Shivam Mathur, Jakub Zelenka)

  • Zip: . Fixed bug GH-23276 (ZipArchive subclass storing its own stream cannot be garbage collected). (Weilin Du, ndossche) . Fixed ZipArchive::extractTo() and ZipArchive::getFrom*() reporting success on corrupted entries. (David Carlier) . Fixed ZipArchive::getNameIndex() truncating the entry index to int. (David Carlier) . Fixed fstat() on a zip:// stream reporting success when the archive cannot be opened. (David Carlier)

  • SAPI: . Fixed fuzzer targets failing to build in isolation. (Mrmaxmeier) . Fixed returns uninitialized value on LiteSpeed lsapi SAPI (Go Kudo)

출처

PHP 8.4.26 공식 NEWS · 현재 PHP 지원 일정

원문에 없는 지원 종료일, CVE, Laravel 호환성 결론은 자동으로 추가하지 않습니다.

php.net 공식 릴리스 노트 보기 →