Overview
Periodically, older versions of PHP may be deprecated and no longer supported. Using a supported version of PHP for app services is recommended to avoid potential unpatched vulnerabilities.
Rationale
Deprecated and unsupported versions of programming and scripting languages can present vulnerabilities which may not be addressed or may not be addressable.
Impact
If your app is written using version-dependent features or libraries, they may not be available on more recent versions. If you wish to update, research the impact thoroughly.
Default Value
The version of PHP is whatever was selected upon App creation.
Additional Information
Currently supported versions can be confirmed here: https://www.php.net/supported-versions.php
Remediation guidance
Remediate from Azure Portal
- Open the app using the
Open in Azurebutton. - Under
Settingssection, click onConfiguration - Click on the
General settingspane, ensure that for aStackofPHPtheMajor VersionandMinor Versionreflect a currently supported release.
###Remediate from Azure CLI
List the available PHP runtimes:
az webapp list-runtimes
To set a currently supported PHP version for an existing app, run the following command:
az webapp config set --resource-group --name [--linux-fx-version ][--php-version ]
Remediate from PowerShell
To set a currently supported PHP version for an existing app, run the following command:
Set-AzWebApp -ResourceGroupName -Name -phpVersion
NOTE: Currently there is no way to update an existing web app Linux FX Version setting using PowerShell, nor is there a way to create a new web app using PowerShell that configures the PHP runtime in the Linux FX Version setting.
Service-wide remediation
Recommended when many resources are affected: fix the platform baseline first so new resources inherit the secure setting, then remediate the existing flagged resources in batches.
Azure
Use management group or subscription Azure Policy assignments, remediation tasks where supported, landing-zone standards, and IaC modules so drift is prevented at scale.
Operational rollout
- Fix the baseline first at the account, subscription, project, cluster, or tenant scope that owns this control.
- Remediate the currently affected resources in batches, starting with internet-exposed and production assets.
- Re-scan and track approved exceptions with an owner and expiry date.
Query logic
These are the stored checks tied to this control.
Azure app services running unsupported PHP versions
Connectors
Covered asset types
Expected check: eq []
{
sites(
where: { siteConfig: { NOT: { phpVersion: "" }, isDeprecated: true } }
) {
...AssetFragment
}
}
Microsoft Azure