{"id":"OESA-2026-4380","summary":"php security update","details":"PHP is an HTML-embedded scripting language. PHP attempts to make it easy for developers to write dynamically generated web pages. PHP also offers built-in database integration for several commercial and non-commercial database management systems, so writing a database-enabled webpage with PHP is fairly simple. The most common use of PHP coding is probably as a replacement for CGI scripts. The php package contains the module (often referred to as mod_php) which adds support for the PHP language to Apache HTTP Server.\r\n\r\nSecurity Fix(es):\n\nThe mysqlnd wire protocol parser reads fields out of server packets before checking that the packet still holds enough bytes for them. A malicious or compromised MySQL server can send a truncated packet and make the client read past the end of the packet buffer, which is undefined behaviour and can crash the process.(CVE-2025-1218)\n\nThe SOAP HTTP client guards its response buffer growth with a check that relies on signed integer overflow, which is undefined behaviour and is not guaranteed to trigger. When the check is optimised away, a malicious SOAP server can make the client allocate a buffer far smaller than the data it then writes into it, producing a heap buffer overflow.(CVE-2025-14181)\n\nphar_tar_number() parses the octal size field of a TAR header into a uint32_t with no overflow check. The field is 11 octal digits wide and holds values up to 0x1FFFFFFFF, so a size above 0xFFFFFFFF silently wraps. The parser then skips the wrong number of data blocks and interprets attacker-controlled file content as the next TAR header, which lets a crafted archive inject entries that PharData reports and extracts as if they were genuine.(CVE-2026-6103)\n\ncleanup_xml_node() in the SOAP XML parser recurses once per XML nesting level with no depth limit. An unauthenticated attacker can post a SOAP request containing tens of thousands of nested elements to any SoapServer endpoint, exhaust the stack and crash the process. The same unbounded recursion exists in the SOAP value decoder and in the WSDL node search helper.(CVE-2026-91765)\n\nWhen the http:// stream wrapper follows a redirect it forwards the user-supplied Authorization, Cookie and Proxy-Authorization headers unchanged, even when the redirect target is a different host, a different port, or a downgrade from HTTPS to HTTP. A server that can steer a redirect therefore receives credentials that were only meant for the original origin. This is the same class of issue that libcurl fixed in 7.58.0 ( CVE-2018-1000007 https://github.com/advisories/GHSA-g7x2-hrfp-pv5f ).(CVE-2026-91766)\n\nphp_openssl_matches_wildcard_name() in ext/openssl/xp_ssl.c underflows the length argument passed to memchr() when a TLS server certificate presents a wildcard name whose literal characters are together longer than the hostname being verified. A malicious server presenting such a certificate makes the PHP client read up to SIZE_MAX bytes past the end of a heap allocation. The path is reachable from any default client stream, because verify_peer_name is enabled by default.(CVE-2026-91767)\n\nThe IPv6 branch of the FastCGI client access check compares only the first 12 bytes of a 16-byte IPv6 address, so listen.allowed_clients matches on a /96 prefix instead of the exact address. An attacker who can source an address sharing the first 96 bits with an allowed one passes the check and reaches the FastCGI endpoint.(CVE-2026-91768)\n\nPHP&apos;s OpenSSL stream peer verification checks the certificate&apos;s subjectAltName entries first and, whenever no entry matches, falls back to the Common Name. RFC 6125 requires the CN to be ignored once the certificate presents any service identity, so a certificate carrying a non-matching DNS SAN was still accepted when its CN matched the requested peer_name. A certificate trusted by the client for one name can therefore be used to impersonate another.(CVE-2026-91769)\n\nThe convert.base64-encode, convert.quoted-printable-encode and convert.quoted-printable-decode stream filters accept a line-break-chars option whose length is tracked separately from the string itself. The filter constructors duplicate the value with pestrdup(), which stops at the first NUL byte, while keeping the original length. When the filter later emits a line break it copies the recorded length out of the truncated allocation, reading past its end and placing adjacent heap bytes into the filter output.(CVE-2026-92842)\n\nWhen the HTTP stream wrapper follows a redirect and the response carries a Location header with an empty value, the redirect code reads one byte past the end of the heap buffer holding the location. The value of that out-of-bounds byte decides which redirect target is built, so a malicious server controls whether the client is sent to the host root or to the current directory.(CVE-2026-93682)","modified":"2026-10-16T12:15:14.605645907Z","published":"2026-10-16T11:59:58Z","upstream":["CVE-2025-1218","CVE-2025-14181","CVE-2026-6103","CVE-2026-91765","CVE-2026-91766","CVE-2026-91767","CVE-2026-91768","CVE-2026-91769","CVE-2026-92842","CVE-2026-93682"],"database_specific":{"severity":"High"},"references":[{"type":"ADVISORY","url":"https://www.openeuler.org/zh/security/security-bulletins/detail/?id=openEuler-SA-2026-4380"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2025-1218"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2025-14181"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-6103"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-91765"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-91766"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-91767"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-91768"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-91769"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-92842"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-93682"}],"affected":[{"package":{"name":"php","ecosystem":"openEuler:24.03-LTS-SP3","purl":"pkg:rpm/openEuler/php&distro=openEuler-24.03-LTS-SP3"},"ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"8.3.35-1.oe2403sp3"}]}],"ecosystem_specific":{"src":["php-8.3.35-1.oe2403sp3.src.rpm"],"x86_64":["php-8.3.35-1.oe2403sp3.x86_64.rpm","php-bcmath-8.3.35-1.oe2403sp3.x86_64.rpm","php-cli-8.3.35-1.oe2403sp3.x86_64.rpm","php-common-8.3.35-1.oe2403sp3.x86_64.rpm","php-dba-8.3.35-1.oe2403sp3.x86_64.rpm","php-dbg-8.3.35-1.oe2403sp3.x86_64.rpm","php-debuginfo-8.3.35-1.oe2403sp3.x86_64.rpm","php-debugsource-8.3.35-1.oe2403sp3.x86_64.rpm","php-devel-8.3.35-1.oe2403sp3.x86_64.rpm","php-embedded-8.3.35-1.oe2403sp3.x86_64.rpm","php-enchant-8.3.35-1.oe2403sp3.x86_64.rpm","php-ffi-8.3.35-1.oe2403sp3.x86_64.rpm","php-fpm-8.3.35-1.oe2403sp3.x86_64.rpm","php-gd-8.3.35-1.oe2403sp3.x86_64.rpm","php-gmp-8.3.35-1.oe2403sp3.x86_64.rpm","php-intl-8.3.35-1.oe2403sp3.x86_64.rpm","php-ldap-8.3.35-1.oe2403sp3.x86_64.rpm","php-mbstring-8.3.35-1.oe2403sp3.x86_64.rpm","php-mysqlnd-8.3.35-1.oe2403sp3.x86_64.rpm","php-odbc-8.3.35-1.oe2403sp3.x86_64.rpm","php-opcache-8.3.35-1.oe2403sp3.x86_64.rpm","php-pdo-8.3.35-1.oe2403sp3.x86_64.rpm","php-pgsql-8.3.35-1.oe2403sp3.x86_64.rpm","php-process-8.3.35-1.oe2403sp3.x86_64.rpm","php-snmp-8.3.35-1.oe2403sp3.x86_64.rpm","php-soap-8.3.35-1.oe2403sp3.x86_64.rpm","php-sodium-8.3.35-1.oe2403sp3.x86_64.rpm","php-tidy-8.3.35-1.oe2403sp3.x86_64.rpm","php-xml-8.3.35-1.oe2403sp3.x86_64.rpm"],"aarch64":["php-8.3.35-1.oe2403sp3.aarch64.rpm","php-bcmath-8.3.35-1.oe2403sp3.aarch64.rpm","php-cli-8.3.35-1.oe2403sp3.aarch64.rpm","php-common-8.3.35-1.oe2403sp3.aarch64.rpm","php-dba-8.3.35-1.oe2403sp3.aarch64.rpm","php-dbg-8.3.35-1.oe2403sp3.aarch64.rpm","php-debuginfo-8.3.35-1.oe2403sp3.aarch64.rpm","php-debugsource-8.3.35-1.oe2403sp3.aarch64.rpm","php-devel-8.3.35-1.oe2403sp3.aarch64.rpm","php-embedded-8.3.35-1.oe2403sp3.aarch64.rpm","php-enchant-8.3.35-1.oe2403sp3.aarch64.rpm","php-ffi-8.3.35-1.oe2403sp3.aarch64.rpm","php-fpm-8.3.35-1.oe2403sp3.aarch64.rpm","php-gd-8.3.35-1.oe2403sp3.aarch64.rpm","php-gmp-8.3.35-1.oe2403sp3.aarch64.rpm","php-intl-8.3.35-1.oe2403sp3.aarch64.rpm","php-ldap-8.3.35-1.oe2403sp3.aarch64.rpm","php-mbstring-8.3.35-1.oe2403sp3.aarch64.rpm","php-mysqlnd-8.3.35-1.oe2403sp3.aarch64.rpm","php-odbc-8.3.35-1.oe2403sp3.aarch64.rpm","php-opcache-8.3.35-1.oe2403sp3.aarch64.rpm","php-pdo-8.3.35-1.oe2403sp3.aarch64.rpm","php-pgsql-8.3.35-1.oe2403sp3.aarch64.rpm","php-process-8.3.35-1.oe2403sp3.aarch64.rpm","php-snmp-8.3.35-1.oe2403sp3.aarch64.rpm","php-soap-8.3.35-1.oe2403sp3.aarch64.rpm","php-sodium-8.3.35-1.oe2403sp3.aarch64.rpm","php-tidy-8.3.35-1.oe2403sp3.aarch64.rpm","php-xml-8.3.35-1.oe2403sp3.aarch64.rpm"],"noarch":["php-help-8.3.35-1.oe2403sp3.noarch.rpm"]},"database_specific":{"source":"https://repo.openeuler.org/security/data/osv/OESA-2026-4380.json"}}],"schema_version":"1.9.0","severity":[{"type":"CVSS_V3","score":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"}]}