Web App for Containers: PHP Version Mismatch — Live Site Shows Older PHP Version

2026-10-21T16:58:51.5466667+00:00

Microsoft WordPress on Azure App Service — Managed PHP 8.4 image channel not receiving security updates

Problem description

We identified that our WordPress on Azure App Service installation was running PHP 8.4.16 despite being configured to use Microsoft's managed PHP 8.4 WordPress image.

This became a particular concern following the disclosure of the critical PHP2Shell vulnerabilities on 21 October 2026.

Although Microsoft had published an updated WordPress container containing PHP 8.4.27, the managed :8.4 channel continued to resolve to an image built in January 2026.

We have now successfully deployed the patched version manually, but this has raised concerns about the security-update mechanism for Microsoft's managed WordPress offering.

Environment

  • Azure App Service for Linux
  • Official Microsoft WordPress on App Service container
  • Image: mcr.microsoft.com/appsvc/wordpress-debian-php
  • PHP version: 8.4
  • No custom Dockerfile or startup command
  • Persistent App Service storage enabled
  • Azure Database for MySQL Flexible Server

Investigation

The App Service was originally configured with:

docker|mcr.microsoft.com/appsvc/wordpress-debian-php:8.4

However, the Azure container startup logs from 21 October 2026 showed App Service resolving this to:

appsvc/wordpress-debian-php:8.4_20260113.8.tuxprod

The production website returned:

X-Powered-By: PHP/8.4.16

Attempts to pull the floating :8.4 image directly from the public Microsoft Container Registry failed with:

manifest unknown: manifest tagged by "8.4" is not found

This suggests the managed :8.4 channel uses an internal Azure image mapping rather than a publicly accessible mutable Docker tag.

Resolution

We identified and tested the following Microsoft image:

mcr.microsoft.com/appsvc/wordpress-debian-php:8.4_20261021.5.tuxprod

Running the image locally confirmed:

PHP 8.4.27 (cli) (built: Oct 21 2026 14:18:04)

We then explicitly changed the App Service linuxFxVersion to reference this dated image and restarted the application.

Following the restart, the production website reported:

X-Powered-By: PHP/8.4.27

The immediate PHP version issue is therefore resolved.

Outstanding concern — managed security updates

Microsoft Support confirmed that explicitly pinning a dated image is supported, but doing so disables automatic advancement to subsequent WordPress/PHP container images.

We therefore face two options:

  1. Remain on the Microsoft-managed :8.4 channel, which was still resolving to an outdated PHP version when we investigated.
  2. Pin to a patched image, taking responsibility for identifying and deploying future security updates ourselves.

Neither is ideal for customers expecting Microsoft-managed security maintenance.

Questions for the Azure WordPress engineering team

  1. Why was the managed PHP 8.4 channel still resolving to 8.4_20260113.8.tuxprod on 21 October 2026 when newer images were available?
  2. What is Microsoft's expected security-patching schedule for the managed WordPress PHP images, particularly for critical vulnerabilities?
  3. Is there a supported API, CLI command or published endpoint to determine which dated image the managed :8.4 channel currently resolves to?
  4. Is there a supported notification mechanism when the managed channel advances to a newer image?
  5. Can Microsoft confirm when the managed :8.4 channel will include PHP 8.4.27 or later, allowing us to return to automatic image updates?

We would prefer to remain on Microsoft's supported, automatically maintained WordPress image channel rather than permanently manage dated image versions ourselves.

The immediate security issue has been addressed, but clarification of the managed update mechanism would be valuable to other WordPress on Azure App Service customers.

Azure App Service
Azure App Service

Azure App Service is a service used to create and deploy scalable, mission-critical web apps.


2 answers

Sort by: Most helpful
  1. Alex Burlachenko 26,275 Reputation points MVP Volunteer Moderator
    2026-10-22T10:46:33.9733333+00:00

    Hi Mike Hudgell - Lead Volunteer & thx for join me at Q&A platform,

    really useful investigation, especially bc u've already confirmed the actual PHP version running in production and successfully deployed a patched Microsoft image.

    The most concerning detail isn't simply that PHP 8.4.27 was available before the managed channel picked it up. It's that the managed :8.4 configuration was still resolving to an image dated January 13, 2026, on October 21. That's a significant gap for a service customers reasonably expect to receive security maintenance through.

    Your findings also suggest that publishing a new image to MCR and updating the App Service managed image mapping are separate operations. The manifest unknown response for the public :8.4 tag supports that interpretation, although Microsoft would need to confirm how the internal mapping and rollout actually work.

    I'd ask the Azure App Service / WordPress engineering team to investigate why 8.4_20260113.8.tuxprod was still selected for ur application. In particular, was this an intentionally pinned managed image, a delayed regional rollout, or a failure in the image-channel update process? Those scenarios have very different implications.

    Regarding the patching schedule, I'm not aware of a publicly documented SLA guaranteeing that the managed WordPress PHP image will advance within a specific number of hours after an upstream PHP security release. That's exactly the kind of commitment Microsoft should clarify, particularly for critical vulnerabilities.

    For checking the current image, az webapp config show can report the configured linuxFxVersion, but that doesn't necessarily reveal the dated image actually selected by the managed channel. Your container startup logs are more useful for that. I also wouldn't assume that a newer tag appearing in MCR means the managed channel has been updated.

    For now, I'd stay on the explicitly pinned PHP 8.4.27 image, given that u've already validated it in production. The tradeoff is that you'll need to monitor future image releases and update the pinned version manually. Before switching back to :8.4, I'd want confirmation that the managed channel actually resolves to a patched image in ur region.

    I'd also request that Microsoft provide a supported way to monitor the resolved image version, ideally through an API or published release history, along with notifications when the managed channel advances. Without that visibility, customers can't easily verify whether they're receiving security updates.

    This deserves an engineering response rather than another generic recommendation to restart or redeploy the App Service. You've already demonstrated that a newer Microsoft image works and that the managed configuration was selecting an older one.

    One detail that would help the investigation: which Azure region is the App Service running in? It would be interesting to know whether the same :8.4 configuration resolves to the January image in other regions too, or whether this is a regional rollout issue.

    rgds,

    Alex

    p.s. if my answer is help - pls mark it as an answer

    Was this answer helpful?

    0 comments No comments

  2. Praneeth Maddali 12,670 Reputation points Microsoft External Staff Moderator
    2026-10-21T21:32:45.6133333+00:00

    HI @Mike Hudgell - Lead Volunteer

    Thank you for your continued patience while we worked with our internal Product Group regarding your concerns.

    We have now received final confirmation that the WordPress channel rollout has been completed across all Azure regions, stamps, and deployment stages.

    You can therefore safely move back to the Microsoft platform-managed WordPress PHP 8.4 version by removing the explicit dated image/version pin and selecting the platform-provided PHP 8.4 version. This will allow your application to return to the normal Microsoft-managed image servicing mechanism.

    Once you have switched back, please verify the PHP version directly from the App Service console by running:

    php`` ``--version

    This will confirm the actual PHP version being used by the running container.

    Regarding your previous questions about monitoring the underlying managed image, our Product Group has confirmed that there is currently no supported API, CLI mapping endpoint, or notification mechanism that exposes which dated image the managed channel resolves to. The recommended method is to verify the PHP version directly from the running application using php`` ``--version.

    For additional information regarding this security update, please refer to:

    Critical PHP Security Release: What It Means for Azure App Service on Linux - Azure App Service

    Once you have reverted to the managed PHP 8.4 version, please share the php`` ``--version output with us so that we can confirm everything is working as expected.

     Please do not forget to click "Accept the answer” and Yes, this can be beneficial to other community members.

    If you have any other questions, let me know in the "comments" and I would be happy to help you

     

    Was this answer helpful?

    0 comments No comments

Your answer

Answers can be marked as 'Accepted' by the question author and 'Recommended' by moderators, which helps users know the answer solved the author's problem.