Situation
A vulnerability in the Google Brotli decompression library, CVE-2026-111497, has been discovered. It is an out-of-bounds write in the Brotli decoder affecting Brotli versions 1.0.3 through 1.2.0, and it is fixed in Brotli 1.0.10, 1.1.1 and 1.2.1.
The Windows builds of PHP bundle Brotli as a dependency of the cURL extension. As a result, the PHP versions shipped with Plesk for Windows are also affected.
Affected Product versions
| Product | Affected versions | Patched versions |
|---|---|---|
| PHP 8.5 on Plesk for Windows | 8.5.12 and below | 8.5.12-1 |
| PHP 8.4 on Plesk for Windows | 8.4.27 and below | 8.4.27-1 |
| PHP 8.3 on Plesk for Windows | 8.3.36 and below | 8.3.36-1 |
| PHP 8.2 on Plesk for Windows | 8.2.35 and below | 8.2.35-1 |
Impact
The vulnerability is rated Critical (CVSS v4.0 score 9.2). A crafted Brotli-compressed stream can corrupt memory in the PHP process. This can lead to a crash, disclosure of memory contents, or potentially remote code execution.
On Windows, the vulnerable code can only be reached through the PHP cURL extension when automatic decompression of HTTP responses is enabled. This is disabled by default in cURL, but applications and HTTP client libraries can enable it. For example, Guzzle enables it with its default settings.
An attack requires a crafted response from a server that the PHP application connects to. Incoming requests to a website do not trigger the vulnerability by themselves.
There are no known reports of active exploitation.
Call to action
Install the updated PHP packages released on 27 October 2026. They include Brotli 1.2.1. The update is listed in the Change Log for Plesk Obsidian under “PHP Updates – 27 October 2026”.
- Log into Plesk
-
Go to Tools & Settings > Updates and install the available updates.
Alternatively, run the following command in an elevated Command Prompt:
C:\> plesk installer --select-release-current --upgrade-installed-components
Mitigations (optional)
If the update cannot be installed immediately, reduce exposure as follows:
- In PHP applications that use cURL, do not enable automatic response decompression. Leave the
CURLOPT_ENCODING/CURLOPT_ACCEPT_ENCODINGoption unset. - In applications that use Guzzle, set the
decode_contentrequest option tofalse.
Note: Removing br from the Accept-Encoding request header alone is not sufficient, because a remote server can still send a Brotli-compressed response.
How to verify that a server is patched
Because the PHP version number does not change, check the Brotli version bundled with each PHP handler instead.
- Connect to the server via RDP
-
Run PowerShell as Administrator and run the following command for each installed PHP handler. PHP 8.4 is used in this example:
PS & "$env:plesk_dir\Additional\PleskPHP84\php.exe" -r '$v = curl_version(); echo $v[''brotli_version''];'
-
Check the output:
brotli/1.2.1means the handler is patched.brotli/1.2.0or earlier means the handler is affected. Install the updates as described in the Call to action section.
Comments
Please sign in to leave a comment.