PHP on IIS
Tanium Comply flags PHP on Windows by the file version of php.exe. On IIS servers there are usually two cases: a current PHP that is a few patches behind, and an old PHP (often C:\Program Files (x86)\PHP\v7.1 from the Web Platform Installer) that nobody remembers. Comply shows no patch for either, so Tanium Patch does not fix them.
Fix level
Example: CVE-2026-14355 (heap overflow in the OpenSSL extension, CVSS 5.3).
| PHP branch | Fixed in |
|---|---|
| 8.2 | 8.2.32 |
| 8.3 | 8.3.32 |
| 8.4 | 8.4.23 |
| 8.5 | 8.5.8 |
| 8.1 and older | No fix. These branches no longer get security updates |
Find the scope
- In Tanium Comply, open the CVE, select a failing test, and read Actual Values. Note the
pathandversion. - Click View Endpoints to get the computer names.
- In Interact, ask the IIS - PHP Usage sensor on those endpoints:
Decide
| What you find | Action |
|---|---|
| Supported branch (8.2 to 8.5), behind on patches | Upgrade in place |
Old branch, PHP Folder is None or the site has 0 requests and is Stopped |
Remove old PHP |
| Old branch, site has requests | Do not remove. The site owner moves the site to a supported PHP or retires it. Record a risk exception in Comply until then |
Requests can be internet scanners, but any request means the site is reachable. Tell the site owner either way.
Upgrade supported PHP
This is a change on the server, done by the server or site owner in a change window.
- Download the latest release of the same branch from
https://windows.php.net/download/, with the same build type (Thread Safe or Non Thread Safe, x64). Check the SHA256 on that page. Staying on the same branch avoids breaking changes. - Stop the site or the service that runs PHP.
- Extract the new zip to a new folder, copy
php.iniand any third-partyext\*.dllfrom the old folder, then swap the folder names. Keep the old folder as the rollback. - Start the site and have the owner test it.
Replace the whole folder, not only php.exe. Comply checks php.exe, so swapping only that file clears the finding while the vulnerable DLLs stay.
Remove old PHP
- Report: deploy Remove IIS PHP Handler with Mode =
Report. Confirm the listed entries. - Approval: get the site owner's go-ahead.
- IIS cleanup: deploy Remove IIS PHP Handler with Mode =
Remove. Note the backup name in the action log. - Folder: deploy Remove PHP Install with the PHP folder from Comply. Use Force =
Yesonly if the log shows processes and their owner agreed.
Rollback for step 3: deploy Restore IIS Config Backup with the backup name. See Create the rollback package.
Verify
- Ask IIS - PHP Usage again. The old folder no longer appears.
- In Comply, run a new vulnerability scan on the endpoints.
- Open the CVE again. The endpoints are no longer listed under View Endpoints.