<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en_US"><generator uri="https://jekyllrb.com/" version="4.4.1">Jekyll</generator><link href="https://azure.github.io/feed.xml" rel="self" type="application/atom+xml" /><link href="https://azure.github.io/" rel="alternate" type="text/html" hreflang="en_US" /><updated>2026-10-30T13:58:12+00:00</updated><id>https://azure.github.io/feed.xml</id><title type="html">Azure App Service</title><subtitle>Announcements, updates, and release notes from the Azure App Service product team.</subtitle><author><name>Azure App Service</name></author><entry><title type="html">.NET Brotli Security Updates on Azure App Service for Linux</title><link href="https://azure.github.io/2026/10/26/dotnet-brotli-security-update-app-service-linux.html" rel="alternate" type="text/html" title=".NET Brotli Security Updates on Azure App Service for Linux" /><published>2026-10-26T00:00:00+00:00</published><updated>2026-10-26T00:00:00+00:00</updated><id>https://azure.github.io/2026/10/26/dotnet-brotli-security-update-app-service-linux</id><content type="html" xml:base="https://azure.github.io/2026/10/26/dotnet-brotli-security-update-app-service-linux.html"><![CDATA[<blockquote>
  <p><strong>Update (27 October 2026):</strong> Rollout of the updated built-in .NET images is <strong>complete on both the Latest and Standard Platform Release Channels</strong> for Azure App Service on Linux. Completion across all deployment stages and clouds was confirmed on <strong>27 October 2026</strong>.</p>
</blockquote>

<p>Following the out-of-band .NET security releases on <strong>25 October 2026</strong>, Azure App Service has updated the built-in Linux images for <strong>.NET 8, 9, and 10</strong>. The primary fix addresses a vulnerability in the Brotli decoder used by .NET and ASP.NET Core.</p>

<h2 id="what-the-brotli-update-addresses">What the Brotli update addresses</h2>

<p>The official .NET release notes describe <a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-111497">CVE-2026-111497, a Brotli decoder out-of-bounds write</a>. Processing maliciously crafted compressed data could result in <strong>denial of service, information disclosure, or elevation of privilege</strong>.</p>

<p>Applications can be affected when they use Brotli decompression through:</p>

<ul>
  <li>ASP.NET Core request decompression.</li>
  <li><code class="language-plaintext highlighter-rouge">HttpClient</code> automatic response decompression.</li>
  <li>The <code class="language-plaintext highlighter-rouge">System.IO.Compression</code> Brotli APIs.</li>
</ul>

<p>Automatic request and response decompression are <strong>not enabled by default</strong>. <strong>.NET Framework is not affected</strong> by this issue.</p>

<h2 id="patched-versions-and-official-release-notes">Patched versions and official release notes</h2>

<p>The following upstream releases were published on <strong>25 October 2026</strong> and are included in this App Service Linux image update:</p>

<table>
  <thead>
    <tr>
      <th>.NET release line</th>
      <th>Patched runtime version</th>
      <th>Official release notes</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>.NET 8</td>
      <td><strong>8.0.33</strong></td>
      <td><a href="https://github.com/dotnet/core/blob/main/release-notes/8.0/8.0.33/8.0.33.md">.NET 8.0.33</a></td>
    </tr>
    <tr>
      <td>.NET 9</td>
      <td><strong>9.0.22</strong></td>
      <td><a href="https://github.com/dotnet/core/blob/main/release-notes/9.0/9.0.22/9.0.22.md">.NET 9.0.22</a></td>
    </tr>
    <tr>
      <td>.NET 10</td>
      <td><strong>10.0.14</strong></td>
      <td><a href="https://github.com/dotnet/core/blob/main/release-notes/10.0/10.0.14/10.0.14.md">.NET 10.0.14</a></td>
    </tr>
  </tbody>
</table>

<p>These releases include additional security fixes. See the official release notes for the complete scope, applicability, and any application-package updates required separately from the platform runtime.</p>

<p>The table identifies the patched versions, <strong>not confirmation that your app already runs them</strong>. Verify your application’s running runtime as described below.</p>

<h2 id="what-we-are-doing">What we are doing</h2>

<p>Rollout of the updated built-in Linux images through the <a href="https://learn.microsoft.com/azure/app-service/overview-patch-os-runtime#control-runtime-patch-update-timing-with-platform-release-channel">Platform Release Channels</a> is complete:</p>

<table>
  <thead>
    <tr>
      <th>Channel</th>
      <th>Availability of the updates</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td><strong>Latest</strong></td>
      <td>Rollout <strong>complete</strong> for the release lines listed above.</td>
    </tr>
    <tr>
      <td><strong>Standard</strong> (default)</td>
      <td>Rollout <strong>complete</strong> for the release lines listed above.</td>
    </tr>
  </tbody>
</table>

<p>The updated images are available on both channels; <strong>a channel change is not required</strong> to receive this update. Verify your app’s running runtime version as described below.</p>

<p>Changing your Platform Release Channel does not change your app’s configured .NET release line. End-of-life runtimes do not receive these updates; move to a supported release line and test your app.</p>

<p><strong>This post covers App Service for Linux.</strong> Its Platform Release Channel settings and rollout status do not apply to App Service for Windows.</p>

<h2 id="what-you-should-do">What you should do</h2>

<ol>
  <li><strong>Keep your preferred Platform Release Channel.</strong> Rollout is complete on both Latest and Standard; no channel change is needed for this update.</li>
  <li><strong>Verify the runtime used by your application.</strong> Check the running application process, not just its configured release line or the installed SDK version.</li>
  <li><strong>Review application-managed dependencies.</strong> Follow the official release notes for affected packages that require updates independently of the shared runtime.</li>
  <li><strong>Update self-contained deployments and custom containers yourself.</strong> The platform image update does not replace a .NET runtime bundled with your application or inside your custom image. Rebuild with the applicable patched runtime, test, and redeploy. The same applies to other bring-your-own runtime deployments.</li>
</ol>

<h3 id="verify-your-runtime-version">Verify your runtime version</h3>

<p>Use <a href="https://learn.microsoft.com/cli/azure/webapp#az-webapp-exec">az webapp exec</a> (currently in preview) with Azure CLI <strong>2.90.0 or later</strong> to open an interactive shell in your running app:</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>az webapp <span class="nb">exec</span> <span class="nt">--resource-group</span> &lt;resource-group&gt; <span class="nt">--name</span> &lt;app-name&gt;
</code></pre></div></div>

<p>For a deployment slot, add <code class="language-plaintext highlighter-rouge">--slot &lt;slot-name&gt;</code>. Use <code class="language-plaintext highlighter-rouge">--instance &lt;instance-id&gt;</code> to check other instances as needed.</p>

<p>In the interactive shell, list the installed shared runtimes:</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>dotnet <span class="nt">--list-runtimes</span>
</code></pre></div></div>

<p>For framework-dependent ASP.NET Core apps, check the relevant <code class="language-plaintext highlighter-rouge">Microsoft.NETCore.App</code> and <code class="language-plaintext highlighter-rouge">Microsoft.AspNetCore.App</code> entries against the patched version for your release line.</p>

<p><strong>Installed runtimes do not by themselves prove which runtime your app process uses.</strong> Use existing startup logging or diagnostics to inspect <code class="language-plaintext highlighter-rouge">System.Runtime.InteropServices.RuntimeInformation.FrameworkDescription</code> from the running application. For scaled-out apps, verify across instances. Avoid exposing runtime diagnostics through an unauthenticated public endpoint.</p>

<p><code class="language-plaintext highlighter-rouge">dotnet --version</code> reports the SDK version, not the runtime used by your app. For self-contained deployments, inspect the application process and rebuild the deployment with a patched runtime; the platform’s shared-runtime list does not verify your bundled runtime.</p>

<h2 id="related-updates">Related updates</h2>

<ul>
  <li><a href="/2026/10/22/node-python-emergency-release-app-service-linux.html">Emergency Node.js and Python runtime updates on App Service for Linux</a> covers the separate Node.js and Python releases, including the Node.js Brotli fix.</li>
  <li><a href="/2026/10/22/time-zone-updates-app-service-linux.html">Time zone updates on App Service for Linux</a> covers the separate time-zone data updates.</li>
  <li><a href="/2026/10/22/emudhra-certificate-issue-app-service-linux.html">eMudhra / emSign certificate security updates on App Service for Linux</a> covers the separate certificate trust-store updates. Runtime updates do not replace certificate bundles managed by your app.</li>
</ul>

<p>Thank you for helping us keep your .NET apps on Azure App Service secure.</p>]]></content><author><name>Azure App Service</name></author><summary type="html"><![CDATA[Update (27 October 2026): Rollout of the updated built-in .NET images is complete on both the Latest and Standard Platform Release Channels for Azure App Service on Linux. Completion across all deployment stages and clouds was confirmed on 27 October 2026.]]></summary></entry><entry><title type="html">.NET Brotli Security Updates on Azure App Service for Windows</title><link href="https://azure.github.io/2026/10/26/dotnet-brotli-security-update-app-service-windows.html" rel="alternate" type="text/html" title=".NET Brotli Security Updates on Azure App Service for Windows" /><published>2026-10-26T00:00:00+00:00</published><updated>2026-10-26T00:00:00+00:00</updated><id>https://azure.github.io/2026/10/26/dotnet-brotli-security-update-app-service-windows</id><content type="html" xml:base="https://azure.github.io/2026/10/26/dotnet-brotli-security-update-app-service-windows.html"><![CDATA[<blockquote>
  <p><strong>Update (27 October 2026):</strong> Rollout of the updated built-in .NET runtimes on <strong>Azure App Service for Windows is complete</strong> through Safe Deployment Practices (SDP).</p>
</blockquote>

<p>Following the out-of-band .NET security releases on <strong>25 October 2026</strong>, Azure App Service has rolled out updated .NET runtimes for Windows apps. The primary fix addresses a vulnerability in the Brotli decoder used by .NET and ASP.NET Core.</p>

<h2 id="what-the-brotli-update-addresses">What the Brotli update addresses</h2>

<p>The official .NET release notes describe <a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-111497">CVE-2026-111497, a Brotli decoder out-of-bounds write</a>. Processing maliciously crafted compressed data could result in <strong>denial of service, information disclosure, or elevation of privilege</strong>.</p>

<p>Applications can be affected when they use Brotli decompression through:</p>

<ul>
  <li>ASP.NET Core request decompression.</li>
  <li><code class="language-plaintext highlighter-rouge">HttpClient</code> automatic response decompression.</li>
  <li>The <code class="language-plaintext highlighter-rouge">System.IO.Compression</code> Brotli APIs.</li>
</ul>

<p>Automatic request and response decompression are <strong>not enabled by default</strong>. <strong>.NET Framework is not affected</strong> by this issue.</p>

<h2 id="patched-versions-and-official-release-notes">Patched versions and official release notes</h2>

<p>The following upstream releases were published on <strong>25 October 2026</strong>:</p>

<table>
  <thead>
    <tr>
      <th>.NET release line</th>
      <th>Patched runtime version</th>
      <th>Official release notes</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>.NET 8</td>
      <td><strong>8.0.33</strong></td>
      <td><a href="https://github.com/dotnet/core/blob/main/release-notes/8.0/8.0.33/8.0.33.md">.NET 8.0.33</a></td>
    </tr>
    <tr>
      <td>.NET 9</td>
      <td><strong>9.0.22</strong></td>
      <td><a href="https://github.com/dotnet/core/blob/main/release-notes/9.0/9.0.22/9.0.22.md">.NET 9.0.22</a></td>
    </tr>
    <tr>
      <td>.NET 10</td>
      <td><strong>10.0.14</strong></td>
      <td><a href="https://github.com/dotnet/core/blob/main/release-notes/10.0/10.0.14/10.0.14.md">.NET 10.0.14</a></td>
    </tr>
  </tbody>
</table>

<p>These releases include additional security fixes. See the official release notes for the complete scope, platform applicability, and any application-package updates required separately from the platform runtime.</p>

<p>The table identifies upstream patched versions, <strong>not confirmation that your app already runs them</strong>. Verify your application’s running runtime as described below.</p>

<h2 id="what-we-are-doing">What we are doing</h2>

<p>Rollout of the updated built-in .NET runtimes across App Service for Windows through SDP is complete. Verify the runtime used by your running application as described below, particularly if your app pins a runtime version or bundles its own runtime.</p>

<p><strong>Platform Release Channels do not apply to App Service for Windows.</strong> There is no Latest or Standard channel to select for this rollout. Linux channel settings and rollout status do not apply to Windows apps.</p>

<p>The platform manages updates to its built-in runtimes. This rollout does not change your app’s configured .NET release line.</p>

<p>For more information, see <a href="https://learn.microsoft.com/azure/app-service/overview-patch-os-runtime">OS and runtime patching in Azure App Service</a>.</p>

<h2 id="what-you-should-do">What you should do</h2>

<ol>
  <li><strong>Verify the runtime used by your application.</strong> Check the running application process rather than relying only on platform rollout completion.</li>
  <li><strong>Use a supported .NET release line.</strong> End-of-life runtimes do not receive these fixes. Update and test your app on a supported release line if necessary.</li>
  <li><strong>Review pinned runtime settings and application-managed dependencies.</strong> Ensure your runtime configuration permits an updated patch version. Follow the official release notes for affected packages that require updates independently of the shared runtime.</li>
  <li><strong>Update self-contained deployments and custom containers yourself.</strong> The platform runtime update does not replace a .NET runtime bundled with your application or inside your custom image. Rebuild with the applicable patched runtime, test, and redeploy. The same applies to other bring-your-own runtime deployments.</li>
</ol>

<h3 id="verify-your-runtime-version">Verify your runtime version</h3>

<p>Use existing startup logging or diagnostics to inspect <code class="language-plaintext highlighter-rouge">System.Runtime.InteropServices.RuntimeInformation.FrameworkDescription</code> from the running application. For example, log the runtime during application startup:</p>

<div class="language-csharp highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">Console</span><span class="p">.</span><span class="nf">WriteLine</span><span class="p">(</span>
    <span class="s">$"Runtime: </span><span class="p">{</span><span class="n">System</span><span class="p">.</span><span class="n">Runtime</span><span class="p">.</span><span class="n">InteropServices</span><span class="p">.</span><span class="n">RuntimeInformation</span><span class="p">.</span><span class="n">FrameworkDescription</span><span class="p">}</span><span class="s">"</span><span class="p">);</span>
</code></pre></div></div>

<p>Review that output in your application’s logs after deployment or the next application startup. Compare it with the patched version for your release line. For scaled-out apps, verify across instances. Avoid exposing runtime diagnostics through an unauthenticated public endpoint.</p>

<p>The configured release line or a runtime reported by a separate console process does not by itself prove which runtime your application process uses. <code class="language-plaintext highlighter-rouge">dotnet --version</code> reports the SDK version, not the running application’s runtime.</p>

<p>For self-contained deployments, inspect the application process and rebuild with a patched runtime; a platform shared-runtime update does not replace your bundled runtime.</p>

<h2 id="related-updates">Related updates</h2>

<ul>
  <li><a href="/2026/10/22/node-emergency-release-app-service-windows.html">Emergency Node.js runtime updates on App Service for Windows</a> covers the separate Node.js releases, including the Node.js Brotli fix.</li>
  <li><a href="/2026/10/23/time-zone-updates-app-service-windows.html">Time zone updates on App Service for Windows</a> covers the separate Windows OS time-zone update.</li>
  <li><a href="/2026/10/22/emudhra-certificate-issue-app-service-windows.html">eMudhra / emSign certificate security updates on App Service for Windows</a> covers the separate Windows OS certificate trust update. Runtime updates do not replace certificate bundles managed by your app.</li>
</ul>

<p>Thank you for helping us keep your .NET apps on Azure App Service secure.</p>]]></content><author><name>Azure App Service</name></author><summary type="html"><![CDATA[Update (27 October 2026): Rollout of the updated built-in .NET runtimes on Azure App Service for Windows is complete through Safe Deployment Practices (SDP).]]></summary></entry><entry><title type="html">Azure Functions: .NET Brotli Security Updates</title><link href="https://azure.github.io/2026/10/26/dotnet-brotli-security-update-azure-functions.html" rel="alternate" type="text/html" title="Azure Functions: .NET Brotli Security Updates" /><published>2026-10-26T00:00:00+00:00</published><updated>2026-10-26T00:00:00+00:00</updated><id>https://azure.github.io/2026/10/26/dotnet-brotli-security-update-azure-functions</id><content type="html" xml:base="https://azure.github.io/2026/10/26/dotnet-brotli-security-update-azure-functions.html"><![CDATA[<blockquote>
  <p><strong>Update (27 October 2026):</strong> The platform-managed .NET security update rollout is <strong>complete</strong> for Linux Azure Functions, Azure Static Web Apps managed functions, and Windows function apps on Consumption, App Service plans, and Elastic Premium.</p>
</blockquote>

<p>The out-of-band .NET releases published on <strong>25 October 2026</strong> address a Brotli decoder vulnerability and additional security issues. The patching process for function apps depends on their <strong>operating system, hosting plan, and deployment model</strong>.</p>

<h2 id="rollout-by-hosting-plan-and-operating-system">Rollout by hosting plan and operating system</h2>

<table>
  <thead>
    <tr>
      <th>Hosting plan or offering</th>
      <th>Windows</th>
      <th>Linux</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Consumption</td>
      <td>App Service Windows runtime rollout complete.</td>
      <td>Azure Functions rollout complete.</td>
    </tr>
    <tr>
      <td>App Service plan (Dedicated)</td>
      <td>App Service Windows runtime rollout complete.</td>
      <td>Azure Functions rollout complete.</td>
    </tr>
    <tr>
      <td>Elastic Premium</td>
      <td>App Service Windows runtime rollout complete.</td>
      <td>Azure Functions rollout complete.</td>
    </tr>
    <tr>
      <td>Flex Consumption</td>
      <td>Not available on Windows.</td>
      <td>Azure Functions rollout complete.</td>
    </tr>
    <tr>
      <td>Static Web Apps managed functions</td>
      <td>Not applicable.</td>
      <td>Applicable update complete; aligned with the Azure Functions Linux rollout.</td>
    </tr>
  </tbody>
</table>

<p>These statuses describe platform-managed updates. Verify the runtime used by your running function process on either OS. Application-managed packages, self-contained deployments, and custom containers require separate review.</p>

<h3 id="linux-consumption-app-service-plans-elastic-premium-and-flex-consumption">Linux: Consumption, App Service plans, Elastic Premium, and Flex Consumption</h3>

<p>The Azure Functions team has completed rollout of the applicable .NET updates for Linux function apps on the hosting plans listed above.</p>

<p>The <a href="/2026/10/26/dotnet-brotli-security-update-app-service-linux.html">App Service Linux .NET post</a> provides background on the upstream releases. <strong>Its Platform Release Channel rollout statuses, runtime-version table, and channel guidance are not Azure Functions rollout or support guidance</strong>, including for Linux functions hosted on App Service plans.</p>

<h4 id="azure-static-web-apps-managed-functions">Azure Static Web Apps managed functions</h4>

<p>The applicable .NET update for <strong>Azure Static Web Apps managed functions is complete</strong>, aligned with the <strong>Azure Functions Linux rollout</strong>.</p>

<p>This status applies to <strong>managed functions</strong>, not a separately linked Azure Functions app. For a linked function app, use its hosting plan and OS to identify the rollout that applies. This update does not add support for a new language or runtime version in Static Web Apps managed functions.</p>

<h3 id="windows-consumption-app-service-plans-and-elastic-premium">Windows: Consumption, App Service plans, and Elastic Premium</h3>

<p>Windows function apps on Consumption, App Service plans, and Elastic Premium receive the applicable platform runtime updates through the <strong>App Service Windows patching process</strong>.</p>

<p>The <a href="/2026/10/26/dotnet-brotli-security-update-app-service-windows.html">App Service Windows .NET rollout</a> is <strong>complete</strong>, reaching Stage 5 on <strong>27 October 2026</strong> through SDP.</p>

<h2 id="what-the-updates-address">What the updates address</h2>

<h3 id="brotli-decoder-vulnerability">Brotli decoder vulnerability</h3>

<p>The primary fix addresses <a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-111497">CVE-2026-111497, a Brotli decoder out-of-bounds write</a> in the Brotli library used by .NET and ASP.NET Core. Processing maliciously crafted compressed data could result in <strong>denial of service, information disclosure, or elevation of privilege</strong>.</p>

<p>Affected code paths include ASP.NET Core request decompression, <code class="language-plaintext highlighter-rouge">HttpClient</code> automatic response decompression, and the <code class="language-plaintext highlighter-rouge">System.IO.Compression</code> Brotli APIs. Automatic request and response decompression are <strong>not enabled by default</strong>. Review the decompression paths your functions and dependencies actually use; this does not imply that every HTTP-triggered function enables Brotli request decompression.</p>

<p><strong>.NET Framework is not affected</strong> by this issue.</p>

<p>These releases include additional security fixes. See the official release notes below for applicability and any separate application-package updates.</p>

<h2 id="upstream-patched-versions-and-functions-support">Upstream patched versions and Functions support</h2>

<p>The following upstream releases were published on <strong>25 October 2026</strong>:</p>

<table>
  <thead>
    <tr>
      <th>.NET release line</th>
      <th>Upstream patched runtime</th>
      <th>Official release notes</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>.NET 8</td>
      <td><strong>8.0.33</strong></td>
      <td><a href="https://github.com/dotnet/core/blob/main/release-notes/8.0/8.0.33/8.0.33.md">.NET 8.0.33</a></td>
    </tr>
    <tr>
      <td>.NET 9</td>
      <td><strong>9.0.22</strong></td>
      <td><a href="https://github.com/dotnet/core/blob/main/release-notes/9.0/9.0.22/9.0.22.md">.NET 9.0.22</a></td>
    </tr>
    <tr>
      <td>.NET 10</td>
      <td><strong>10.0.14</strong></td>
      <td><a href="https://github.com/dotnet/core/blob/main/release-notes/10.0/10.0.14/10.0.14.md">.NET 10.0.14</a></td>
    </tr>
  </tbody>
</table>

<p><strong>This is an upstream reference table, not an Azure Functions support or availability matrix.</strong> An upstream release or its availability in App Service does not establish support for your Functions hosting plan or execution model.</p>

<p>Use a .NET version supported by Azure Functions for your OS, plan, and execution model. Review the <a href="https://learn.microsoft.com/azure/azure-functions/dotnet-isolated-process-guide#supported-versions">isolated worker supported versions</a> and <a href="https://learn.microsoft.com/azure/azure-functions/functions-dotnet-class-library#supported-versions">in-process supported versions</a>. This update does not change your configured release line, migrate your execution model, or add support for .NET 11 RC3.</p>

<h2 id="what-you-should-do">What you should do</h2>

<ol>
  <li><strong>Identify your OS, hosting plan, and execution model.</strong> Use the rollout table above to determine which platform update applies. For Static Web Apps, distinguish managed functions from a separately linked function app.</li>
  <li><strong>Verify the runtime in your running function process.</strong> Do not rely only on configured settings, an installed SDK, or an App Service rollout announcement.</li>
  <li><strong>Review application-managed packages.</strong> Follow the official release notes and update affected dependencies through your trusted package source. Rebuild, test, and redeploy as needed.</li>
  <li><strong>Update self-contained deployments and custom containers yourself.</strong> Platform patching does not replace runtimes bundled with your app or patch the contents of your custom image. Rebuild with the applicable patched runtime and dependencies, test, and redeploy.</li>
  <li><strong>Test affected code paths.</strong> Exercise the decompression and networking behavior your functions actually use after updating.</li>
</ol>

<h3 id="verify-your-running-net-runtime">Verify your running .NET runtime</h3>

<p>Use existing application logging or diagnostics to record <code class="language-plaintext highlighter-rouge">System.Runtime.InteropServices.RuntimeInformation.FrameworkDescription</code> from your executing function code. With an existing <code class="language-plaintext highlighter-rouge">ILogger</code> instance named <code class="language-plaintext highlighter-rouge">logger</code>, for example:</p>

<div class="language-csharp highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">logger</span><span class="p">.</span><span class="nf">LogInformation</span><span class="p">(</span>
    <span class="s">"Function runtime: {Runtime}"</span><span class="p">,</span>
    <span class="n">System</span><span class="p">.</span><span class="n">Runtime</span><span class="p">.</span><span class="n">InteropServices</span><span class="p">.</span><span class="n">RuntimeInformation</span><span class="p">.</span><span class="n">FrameworkDescription</span><span class="p">);</span>
</code></pre></div></div>

<p>For isolated worker apps, verify the <strong>.NET worker process</strong>, not just the Functions host. For in-process apps, function code runs within the host process. Inspect logs across active instances; avoid exposing runtime diagnostics through an unauthenticated public endpoint.</p>

<p><code class="language-plaintext highlighter-rouge">dotnet --version</code> reports the SDK version, and a shared-runtime list only identifies installed runtimes. Neither proves which runtime your function process uses. Self-contained deployments must be verified and updated separately.</p>

<h2 id="related-updates">Related updates</h2>

<ul>
  <li><a href="/2026/10/26/dotnet-brotli-security-update-app-service-linux.html">.NET Brotli security updates on App Service for Linux</a> covers the separate App Service Linux image rollout.</li>
  <li><a href="/2026/10/26/dotnet-brotli-security-update-app-service-windows.html">.NET Brotli security updates on App Service for Windows</a> covers the Windows runtime rollout on which Windows function apps depend.</li>
  <li><a href="/2026/10/23/time-zone-runtime-certificate-updates-azure-functions.html">Azure Functions time-zone, Node.js, Python, and certificate updates</a> covers the earlier, separate updates. Completion of those Linux updates does not establish completion of this .NET rollout.</li>
</ul>

<p>Thank you for helping us keep your .NET function apps secure.</p>]]></content><author><name>Azure App Service</name></author><summary type="html"><![CDATA[Update (27 October 2026): The platform-managed .NET security update rollout is complete for Linux Azure Functions, Azure Static Web Apps managed functions, and Windows function apps on Consumption, App Service plans, and Elastic Premium.]]></summary></entry><entry><title type="html">Azure Functions: Time Zone, Node.js, Python, and Certificate Updates</title><link href="https://azure.github.io/2026/10/23/time-zone-runtime-certificate-updates-azure-functions.html" rel="alternate" type="text/html" title="Azure Functions: Time Zone, Node.js, Python, and Certificate Updates" /><published>2026-10-23T00:00:00+00:00</published><updated>2026-10-23T00:00:00+00:00</updated><id>https://azure.github.io/2026/10/23/time-zone-runtime-certificate-updates-azure-functions</id><content type="html" xml:base="https://azure.github.io/2026/10/23/time-zone-runtime-certificate-updates-azure-functions.html"><![CDATA[<blockquote>
  <p><strong>Update (26 October 2026):</strong> The applicable time-zone, Node.js, and eMudhra / emSign certificate update rollouts are now <strong>complete for Windows Azure Functions</strong> on Consumption, App Service plans, and Elastic Premium through the App Service Windows patching process. The applicable time-zone, Node.js, Python, and certificate updates remain <strong>complete for Linux Azure Functions</strong> on Consumption, App Service plans, Elastic Premium, and Flex Consumption, and for <strong>Azure Static Web Apps managed functions</strong>.</p>
</blockquote>

<p>The patching process depends on your function app’s <strong>operating system and hosting plan</strong>.</p>

<h2 id="rollout-by-hosting-plan-and-operating-system">Rollout by hosting plan and operating system</h2>

<table>
  <thead>
    <tr>
      <th>Hosting plan or offering</th>
      <th>Windows</th>
      <th>Linux</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Consumption</td>
      <td>App Service Windows rollout complete.</td>
      <td>Azure Functions rollout complete.</td>
    </tr>
    <tr>
      <td>App Service plan (Dedicated)</td>
      <td>App Service Windows rollout complete.</td>
      <td>Azure Functions rollout complete.</td>
    </tr>
    <tr>
      <td>Elastic Premium</td>
      <td>App Service Windows rollout complete.</td>
      <td>Azure Functions rollout complete.</td>
    </tr>
    <tr>
      <td>Flex Consumption</td>
      <td>Not available on Windows.</td>
      <td>Azure Functions rollout complete.</td>
    </tr>
    <tr>
      <td>Static Web Apps managed functions</td>
      <td>Not applicable.</td>
      <td>Managed functions update rollout complete.</td>
    </tr>
  </tbody>
</table>

<p>Completion applies to the platform-managed updates covered here; <strong>application-managed dependencies, trust stores, and time-zone data require separate review</strong>. Python functions run on Linux; the Python runtime updates below do not apply to Windows function apps.</p>

<p>The separate <a href="/2026/10/26/dotnet-brotli-security-update-azure-functions.html">.NET Brotli security update rollout</a> is not covered by this completion notice.</p>

<h3 id="windows-consumption-app-service-plans-and-elastic-premium">Windows: Consumption, App Service plans, and Elastic Premium</h3>

<p>Function apps on these Windows hosting plans receive the applicable platform updates through the <strong>App Service Windows patching process</strong>. Follow the corresponding posts for update details and rollout status:</p>

<ul>
  <li><strong>Time-zone updates:</strong> Rollout is complete through accelerated Safe Deployment Practices (SDP). See <a href="/2026/10/23/time-zone-updates-app-service-windows.html">Time zone updates on App Service for Windows</a>.</li>
  <li><strong>Node.js runtime fixes:</strong> Rollout is complete. See <a href="/2026/10/22/node-emergency-release-app-service-windows.html">Emergency Node.js runtime updates on App Service for Windows</a>.</li>
  <li><strong>Certificate trust updates:</strong> Rollout is complete. See <a href="/2026/10/22/emudhra-certificate-issue-app-service-windows.html">eMudhra / emSign certificate security updates on App Service for Windows</a>.</li>
</ul>

<p>These are separate OS and runtime updates. Their completion does not replace application-managed dependencies, trust stores, or time-zone data.</p>

<h3 id="linux-consumption-app-service-plans-elastic-premium-and-flex-consumption">Linux: Consumption, App Service plans, Elastic Premium, and Flex Consumption</h3>

<p>The <strong>Azure Functions team has completed its separate rollout</strong> for Linux function apps on all four hosting plans.</p>

<p>This work covers the applicable time-zone, Node.js, Python, and certificate fixes. Completion does not change your app’s configured language release line or replace application-managed data and dependencies.</p>

<p>The App Service Linux posts provide background on the <a href="/2026/10/22/time-zone-updates-app-service-linux.html">time-zone changes</a>, <a href="/2026/10/22/node-python-emergency-release-app-service-linux.html">Node.js and Python releases</a>, and <a href="/2026/10/22/emudhra-certificate-issue-app-service-linux.html">certificate issue</a>. <strong>Their App Service completion statuses, runtime-version tables, and Platform Release Channel instructions are not Azure Functions rollout or support guidance</strong>, including for Linux functions hosted on App Service plans.</p>

<h4 id="azure-static-web-apps-managed-functions">Azure Static Web Apps managed functions</h4>

<p>The rollout of the applicable fixes for <strong>Azure Static Web Apps managed functions is also complete</strong>. These managed API backends are included in this Linux update guidance.</p>

<p>This status applies to <strong>managed functions</strong>, not a separately linked Azure Functions app. For a linked function app, use its hosting plan and OS to identify the rollout that applies.</p>

<h2 id="what-the-updates-address">What the updates address</h2>

<h3 id="time-zone-rules">Time-zone rules</h3>

<p>Current time-zone data is needed to convert UTC timestamps to local time and calculate schedules correctly when governments change local timekeeping rules. <strong>UTC itself does not change.</strong></p>

<p>Test the locations your app depends on using timestamps before and after the relevant rule change. Verify both local times and UTC offsets, and check the next execution times of recurring jobs. For timer-triggered functions, review the <a href="https://learn.microsoft.com/azure/azure-functions/functions-bindings-timer#ncrontab-time-zones">Azure Functions timer trigger documentation</a> for the time-zone settings supported by your OS and hosting plan; this patch does not add support for a previously unsupported setting.</p>

<p>An OS update does not replace time-zone databases bundled with your application or libraries. Test through the APIs and scheduling code your function actually uses.</p>

<h3 id="nodejs-runtime-fixes">Node.js runtime fixes</h3>

<p>The updates address the recent Node.js security releases described in the linked App Service posts. Use a <a href="https://learn.microsoft.com/azure/azure-functions/functions-reference-node#supported-versions">Node.js version supported by Azure Functions</a> and verify the actual runtime in your running function worker.</p>

<p>An upstream patched version or its availability in App Service does not, by itself, establish availability for your Functions hosting plan or configured release line.</p>

<h3 id="python-runtime-and-dependency-fixes">Python runtime and dependency fixes</h3>

<p>The Python updates address the recent Python releases and related certificate-bundle changes described in the linked runtime post. Use a <a href="https://learn.microsoft.com/azure/azure-functions/functions-reference-python#python-version">Python version supported by Azure Functions</a> for your hosting plan.</p>

<p><strong>A platform runtime update does not update packages already deployed with your app</strong>, including packages in an existing virtual environment. Review application-managed certificate bundles and affected dependencies, update them through your trusted package source, and rebuild and redeploy as needed.</p>

<h3 id="emudhra--emsign-certificate-trust-issue">eMudhra / emSign certificate trust issue</h3>

<p>The certificate updates address trust associated with the eMudhra / emSign CA incident. Applications can use OS certificate stores, runtime-specific trust stores, or CA bundles supplied by dependencies.</p>

<p><strong>An updated platform trust store does not prove that every TLS client in your function app uses updated trust data.</strong> Review custom trust stores and bundled CA data separately. Test outbound TLS connections after updating, and work with endpoint owners to resolve certificate-chain failures rather than disabling certificate validation.</p>

<h2 id="what-you-should-do">What you should do</h2>

<ol>
  <li><strong>Identify your hosting plan and OS.</strong> Use the table above to determine which rollout applies.</li>
  <li><strong>Review the updates for your platform.</strong> The applicable Windows, Linux Functions, and Static Web Apps managed functions rollouts covered here are complete. Follow the linked posts for update details.</li>
  <li><strong>Use supported runtime versions.</strong> Check Azure Functions support for your language version and hosting plan rather than copying the App Service runtime tables.</li>
  <li><strong>Verify your running workers.</strong> Use existing application logging or diagnostics to check <code class="language-plaintext highlighter-rouge">process.version</code> for Node.js or <code class="language-plaintext highlighter-rouge">sys.version</code> for Python inside the function worker. Verify across instances; avoid exposing diagnostics through an unauthenticated public endpoint.</li>
  <li><strong>Test date/time behavior and outbound TLS.</strong> Verify the code paths your functions actually use, including timers, application-managed time-zone data, and certificate bundles.</li>
  <li><strong>Update custom container contents yourself.</strong> For function apps using customer-provided images, update the image’s OS data, runtimes, and dependencies, then rebuild, test, and redeploy. Platform patching does not patch the contents of your custom image.</li>
</ol>]]></content><author><name>Azure App Service</name></author><summary type="html"><![CDATA[Update (26 October 2026): The applicable time-zone, Node.js, and eMudhra / emSign certificate update rollouts are now complete for Windows Azure Functions on Consumption, App Service plans, and Elastic Premium through the App Service Windows patching process. The applicable time-zone, Node.js, Python, and certificate updates remain complete for Linux Azure Functions on Consumption, App Service plans, Elastic Premium, and Flex Consumption, and for Azure Static Web Apps managed functions.]]></summary></entry><entry><title type="html">Time Zone Updates on Azure App Service for Windows</title><link href="https://azure.github.io/2026/10/23/time-zone-updates-app-service-windows.html" rel="alternate" type="text/html" title="Time Zone Updates on Azure App Service for Windows" /><published>2026-10-23T00:00:00+00:00</published><updated>2026-10-23T00:00:00+00:00</updated><id>https://azure.github.io/2026/10/23/time-zone-updates-app-service-windows</id><content type="html" xml:base="https://azure.github.io/2026/10/23/time-zone-updates-app-service-windows.html"><![CDATA[<blockquote>
  <p><strong>Update (26 October 2026):</strong> The rollout of <strong>Windows operating-system time-zone updates</strong> on Azure App Service for Windows <strong>is complete</strong>, following accelerated Safe Deployment Practices (SDP). Application-managed time-zone data still requires separate review as described below.</p>
</blockquote>

<p>Time-zone rules change when governments update local timekeeping policies. Apps need current time-zone data to convert UTC timestamps to local time and calculate schedules correctly.</p>

<p>Older time-zone data can apply a clock change that no longer occurs, producing incorrect local-time displays, job schedules, deadlines, and date-based calculations. Apps using different data versions can also disagree about the same timestamp.</p>

<h2 id="what-we-are-doing">What we are doing</h2>

<p>We have completed the rollout of an <strong>OS-level time-zone update</strong> across App Service for Windows through accelerated SDP. This is a platform operating-system update, not a language-specific runtime release.</p>

<p>The platform manages this OS update. Customers do not need to install an OS patch manually on App Service workers. For more information, see <a href="https://learn.microsoft.com/azure/app-service/overview-patch-os-runtime">OS and runtime patching in Azure App Service</a>.</p>

<h3 id="windows-and-application-managed-time-zone-data">Windows and application-managed time-zone data</h3>

<p>An app can use Windows time-zone rules, runtime-bundled data, or a database supplied by a library. <strong>An OS time-zone update alone is not proof that every date/time API or scheduler in your application uses the updated rules.</strong></p>

<p>Review the data source used by your runtime and dependencies. Update application-managed time-zone data separately through the relevant maintainers’ supported update process, then test and redeploy as needed.</p>

<h2 id="what-you-should-do">What you should do</h2>

<ol>
  <li><strong>No manual OS patch installation is needed.</strong> App Service manages this platform update.</li>
  <li><strong>Check your app’s actual date/time behavior.</strong> Test conversions and schedules for the regions your app uses, including timestamps on both sides of the relevant rule change.</li>
  <li><strong>Review application-managed time-zone data.</strong> Update affected libraries, bundled ICU data, and custom time-zone databases separately. The Windows OS update does not replace data bundled with your app or dependencies.</li>
  <li><strong>Update customer-provided container images and bring-your-own runtimes yourself.</strong> This platform OS rollout does not patch time-zone data inside your custom image or runtime distribution. Follow the relevant maintainers’ guidance, then rebuild, test, and redeploy.</li>
</ol>

<h2 id="related-updates">Related updates</h2>

<ul>
  <li><a href="/2026/10/22/time-zone-updates-app-service-linux.html">Time zone updates on App Service for Linux</a> covers the separate Linux image rollout and its runtime-specific exceptions. Its IANA release numbers, package commands, and Platform Release Channel instructions do not apply to the Windows OS rollout.</li>
  <li><a href="/2026/10/22/node-emergency-release-app-service-windows.html">Emergency Node.js runtime updates on App Service for Windows</a> covers the separate Node.js runtime rollout, whose accelerated SDP rollout is complete.</li>
  <li><a href="/2026/10/22/emudhra-certificate-issue-app-service-windows.html">eMudhra / emSign certificate security updates on App Service for Windows</a> covers the separate Windows OS certificate trust update.</li>
</ul>]]></content><author><name>Azure App Service</name></author><summary type="html"><![CDATA[Update (26 October 2026): The rollout of Windows operating-system time-zone updates on Azure App Service for Windows is complete, following accelerated Safe Deployment Practices (SDP). Application-managed time-zone data still requires separate review as described below.]]></summary></entry><entry><title type="html">eMudhra / emSign Certificate Security Updates on Azure App Service for Linux</title><link href="https://azure.github.io/2026/10/22/emudhra-certificate-issue-app-service-linux.html" rel="alternate" type="text/html" title="eMudhra / emSign Certificate Security Updates on Azure App Service for Linux" /><published>2026-10-22T00:00:00+00:00</published><updated>2026-10-22T00:00:00+00:00</updated><id>https://azure.github.io/2026/10/22/emudhra-certificate-issue-app-service-linux</id><content type="html" xml:base="https://azure.github.io/2026/10/22/emudhra-certificate-issue-app-service-linux.html"><![CDATA[<blockquote>
  <p><strong>Update (25 October 2026):</strong> The Java rollout is now complete on <strong>Standard</strong>. Rollout of patched built-in Linux images for the <strong>eMudhra / emSign CA certificate security incident</strong> is <strong>complete on Latest and Standard</strong> for all runtimes listed below, including <strong>Java</strong>. <strong>No channel change is needed.</strong> The PHP 8.2 and EOL exclusions described below remain unchanged.</p>
</blockquote>

<p>The eMudhra / emSign incident affects certificate trust used by TLS clients. The <a href="https://ubuntu.com/blog/emudhra-ca-compromise-fixes-available">Ubuntu Security Team’s incident and patch guidance</a> explains the CA trust-store changes needed to mitigate the risk of man-in-the-middle attacks.</p>

<p>This is not limited to a single language runtime. Applications can use operating-system certificates, runtime-managed trust stores, or certificate bundles supplied by dependencies. <strong>Updating the platform image does not replace certificate bundles managed by your application.</strong></p>

<h2 id="what-we-are-doing">What we are doing</h2>

<p>Patched built-in Linux images are available on <strong>Latest and Standard</strong> for <strong>all non-EOL runtimes</strong>, with the <a href="#php-82-exception">PHP 8.2 exception</a> described below.
<strong>Java is available on both Latest and Standard; its rollout is complete.</strong></p>

<p>The following runtime versions are listed by <code class="language-plaintext highlighter-rouge">az webapp list-runtimes -o table --os linux</code> as of <strong>22 October 2026</strong> and are included in the completed rollout to <strong>Latest and Standard</strong>. For Java, the table summarizes Java SE versions rather than listing individual application-server combinations.</p>

<table>
  <thead>
    <tr>
      <th>Runtime</th>
      <th>Versions included in the image updates</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>.NET</td>
      <td>8, 9, 10, 11</td>
    </tr>
    <tr>
      <td>Node.js</td>
      <td>22, 24</td>
    </tr>
    <tr>
      <td>Python</td>
      <td>3.10, 3.11, 3.12, 3.13, 3.14</td>
    </tr>
    <tr>
      <td>PHP</td>
      <td>8.3, 8.4, 8.5</td>
    </tr>
    <tr>
      <td>Java SE</td>
      <td>8, 11, 17, 21, 25</td>
    </tr>
  </tbody>
</table>

<p>Runtimes approaching EOL are included while they remain supported. <strong>EOL runtimes do not receive these image updates.</strong></p>

<p><strong>WordPress on App Service is also updated.</strong> The supported images for apps deployed using the official <a href="https://marketplace.microsoft.com/product/WordPress.WordPress?tab=Overview">WordPress on App Service offering in Microsoft Marketplace</a> include the certificate security updates.</p>

<h3 id="php-82-exception">PHP 8.2 exception</h3>

<p><strong>The built-in PHP 8.2 image is not included in this initial patch payload.</strong> Although PHP 8.2 itself has not yet reached EOL, its underlying <strong>Debian 11 (Bullseye)</strong> operating system is beyond Debian’s standard/LTS support period and is not providing the patch for this image.</p>

<p><strong>We are investigating options to provide a patch for PHP 8.2.</strong> No availability date is confirmed.</p>

<p>If your app uses PHP 8.2, <strong>update and test your app on PHP 8.3 or a later supported version</strong>, then configure your app to use that runtime. Moving a PHP 8.2 app to Latest alone does not address this exception.</p>

<h3 id="rollout-by-platform-release-channel">Rollout by Platform Release Channel</h3>

<table>
  <thead>
    <tr>
      <th>Channel</th>
      <th>Availability of the updates</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td><strong>Latest</strong></td>
      <td>Rollout <strong>complete</strong>.</td>
    </tr>
    <tr>
      <td><strong>Standard</strong> (default)</td>
      <td>Rollout <strong>complete</strong> for the included runtimes, including Java.</td>
    </tr>
  </tbody>
</table>

<p>The updated images are available on both Latest and Standard for all included runtimes, <strong>including Java</strong>.</p>

<p>Changing your Platform Release Channel does not upgrade your app to a different runtime version or make an EOL runtime supported.</p>

<h2 id="what-you-should-do">What you should do</h2>

<ol>
  <li><strong>Use Standard or Latest to receive these updates.</strong> For eligible runtimes, including Java, apps on either channel do not need a channel change.</li>
  <li><strong>Upgrade PHP 8.2 and EOL runtimes.</strong> PHP 8.2 is excluded from this certificate patch because of its OS base. EOL runtimes are also excluded. Update and test your app on a supported runtime included in the patching scope.</li>
  <li><strong>Update application-managed certificate bundles and dependencies.</strong> Review the official guidance for your runtime and libraries. An updated platform trust store does not necessarily update a library’s bundled certificates or an existing virtual environment.</li>
  <li><strong>Update custom containers and bring-your-own runtimes yourself.</strong> App Service does not patch the contents of your custom images or runtimes. Update their OS packages, runtimes, and affected dependencies, then rebuild, test, and redeploy.</li>
  <li><strong>Test outbound TLS connections.</strong> Check the services your app calls after updating. Do not work around certificate errors by disabling TLS certificate validation.</li>
  <li><strong>Check the running image’s certificate package.</strong> Use the instructions below to inspect the OS certificate package. This check does not verify application-managed trust stores.</li>
</ol>

<h3 id="change-your-platform-release-channel">Change your Platform Release Channel</h3>

<p><strong>Azure portal</strong></p>

<ol>
  <li>In the Azure portal, go to your App Service app.</li>
  <li>In the left menu, select <strong>Stack settings</strong>.</li>
  <li>Under <strong>Platform Release Channel</strong>, select <strong>Standard</strong>.</li>
  <li>Select <strong>Save</strong>.</li>
</ol>

<p><strong>Azure CLI</strong></p>

<p>Use <a href="https://learn.microsoft.com/cli/azure/webapp#az-webapp-update">az webapp update</a> to move your app to Standard:</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>az webapp update <span class="se">\</span>
  <span class="nt">--resource-group</span> &lt;resource-group&gt; <span class="se">\</span>
  <span class="nt">--name</span> &lt;app-name&gt; <span class="se">\</span>
  <span class="nt">--platform-release-channel</span> Standard
</code></pre></div></div>

<p>Replace the placeholders with your app’s resource group and name. For a deployment slot, add <code class="language-plaintext highlighter-rouge">--slot &lt;slot-name&gt;</code>.</p>

<p>Eligible apps, including Java apps, already on <strong>Standard</strong> or <strong>Latest</strong> do not need a channel change.</p>

<h3 id="verify-the-certificate-package">Verify the certificate package</h3>

<p>Use <a href="https://learn.microsoft.com/cli/azure/webapp#az-webapp-exec">az webapp exec</a> (currently in preview) with Azure CLI <strong>2.90.0 or later</strong> to open an interactive shell in your running app:</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>az webapp <span class="nb">exec</span> <span class="nt">--resource-group</span> &lt;resource-group&gt; <span class="nt">--name</span> &lt;app-name&gt;
</code></pre></div></div>

<p>Replace the placeholders with your app’s resource group and name. For a deployment slot, add <code class="language-plaintext highlighter-rouge">--slot &lt;slot-name&gt;</code>.</p>

<p>Inside the container, identify the OS and installed certificate-package version:</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nb">cat</span> /etc/os-release
dpkg-query <span class="nt">-W</span> <span class="nt">-f</span><span class="o">=</span><span class="s1">'${Package} ${Version}\n'</span> ca-certificates
</code></pre></div></div>

<p>For Ubuntu-based images, compare the installed version with the fixed version for the <strong>same Ubuntu release</strong> in the <a href="https://ubuntu.com/blog/emudhra-ca-compromise-fixes-available">Ubuntu incident and patch guidance</a>. For example:</p>

<table>
  <thead>
    <tr>
      <th>Ubuntu release</th>
      <th>Fixed <code class="language-plaintext highlighter-rouge">ca-certificates</code> version</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>24.04</td>
      <td><code class="language-plaintext highlighter-rouge">20260816ubuntu0.24.04.1</code></td>
    </tr>
    <tr>
      <td>26.04</td>
      <td><code class="language-plaintext highlighter-rouge">20260816ubuntu0.26.04.1</code></td>
    </tr>
  </tbody>
</table>

<p>The listed version or a subsequent version containing the fix is the expected result. Do not compare package versions across different OS releases. For Debian-based images, use the corresponding Debian package guidance rather than the Ubuntu versions.</p>

<p>This check inspects the OS certificate package on <strong>one running instance</strong>, not every trust store used by your app. Use <code class="language-plaintext highlighter-rouge">--instance &lt;instance-id&gt;</code> to connect to other instances as needed. Application-managed CA bundles and runtime-specific trust stores require separate checks. A successful HTTPS request alone is not proof that the issue is mitigated.</p>

<h3 id="application-managed-trust-stores-and-dependencies">Application-managed trust stores and dependencies</h3>

<p>The platform update covers the built-in images, not certificate bundles or trust stores that your app supplies. Review your app’s libraries, dependencies, and custom trust-store configuration, and follow their maintainers’ incident guidance. Update affected dependencies through your trusted package source, then rebuild, test, and redeploy as needed.</p>

<p>As the <a href="https://ubuntu.com/blog/emudhra-ca-compromise-fixes-available">Ubuntu guidance</a> notes, removing affected trust anchors can also cause connections to legitimate endpoints that rely on those anchors to fail. Test outbound TLS connections and work with the endpoint owner to resolve affected certificate chains rather than disabling certificate validation.</p>

<h2 id="related-updates">Related updates</h2>

<ul>
  <li><a href="/2026/10/22/emudhra-certificate-issue-app-service-windows.html">eMudhra / emSign certificate security updates on App Service for Windows</a> covers the separate Windows OS certificate rollout. Linux Platform Release Channel settings do not apply to Windows.</li>
  <li><a href="/2026/10/22/time-zone-updates-app-service-linux.html">Time zone updates on App Service for Linux</a> covers the separate time-zone data rollout, whose PHP 8.2 and 8.3 exclusions differ from the certificate update exclusion described here.</li>
  <li><a href="/2026/10/21/php-critical-security-release-app-service-linux.html">Critical PHP security release guidance for App Service</a> covers the separate PHP runtime vulnerabilities and rollout.</li>
  <li><a href="/2026/10/22/node-python-emergency-release-app-service-linux.html">Node.js and Python emergency runtime updates on App Service for Linux</a> covers the runtime releases and their rollout. Review that guidance alongside the certificate updates here; runtime patches do not replace application-managed CA bundles.</li>
</ul>

<h2 id="stay-informed">Stay informed</h2>

<p>We share further updates here as needed, including any changes to the PHP 8.2 patch plan.</p>

<p>Thank you for helping us keep your apps on Azure App Service secure.</p>]]></content><author><name>Azure App Service</name></author><summary type="html"><![CDATA[Update (25 October 2026): The Java rollout is now complete on Standard. Rollout of patched built-in Linux images for the eMudhra / emSign CA certificate security incident is complete on Latest and Standard for all runtimes listed below, including Java. No channel change is needed. The PHP 8.2 and EOL exclusions described below remain unchanged.]]></summary></entry><entry><title type="html">eMudhra / emSign Certificate Security Updates on Azure App Service for Windows</title><link href="https://azure.github.io/2026/10/22/emudhra-certificate-issue-app-service-windows.html" rel="alternate" type="text/html" title="eMudhra / emSign Certificate Security Updates on Azure App Service for Windows" /><published>2026-10-22T00:00:00+00:00</published><updated>2026-10-22T00:00:00+00:00</updated><id>https://azure.github.io/2026/10/22/emudhra-certificate-issue-app-service-windows</id><content type="html" xml:base="https://azure.github.io/2026/10/22/emudhra-certificate-issue-app-service-windows.html"><![CDATA[<blockquote>
  <p><strong>Update (25 October 2026):</strong> The rollout of <strong>Windows operating-system certificate updates</strong> for the <strong>eMudhra / emSign CA certificate security incident is complete</strong> on Azure App Service for Windows. Application-managed certificate bundles and trust stores still require separate review as described below.</p>
</blockquote>

<p>The eMudhra / emSign incident affects certificate trust used by TLS clients. Compromised certificate authorities can allow an attacker to impersonate TLS endpoints when a client continues to trust the affected certificate chains.</p>

<p>For background on the incident, see the <a href="https://ubuntu.com/blog/emudhra-ca-compromise-fixes-available">Ubuntu Security Team’s incident explanation</a>. That article describes the cross-platform certificate issue; its Linux package versions and installation commands do <strong>not</strong> apply to Windows.</p>

<h2 id="what-we-are-doing">What we are doing</h2>

<p>We have completed the rollout of an <strong>OS-level certificate trust update</strong> to App Service for Windows. This is a platform operating-system update, not a language-specific runtime release.</p>

<p><strong>Platform Release Channels do not apply to App Service for Windows.</strong> There is no Latest or Standard channel to select for this rollout. The Linux channel instructions in our related posts do not apply to Windows apps.</p>

<p>The platform manages this OS update. Customers do not need to install an OS patch manually on App Service workers. For more information, see <a href="https://learn.microsoft.com/azure/app-service/overview-patch-os-runtime">OS and runtime patching in Azure App Service</a>.</p>

<h2 id="what-you-should-do">What you should do</h2>

<ol>
  <li><strong>No manual OS patch installation is needed.</strong> The Windows OS certificate update rollout is complete, and App Service manages this platform update.</li>
  <li><strong>Review application-managed certificate bundles and trust stores.</strong> The Windows OS patch does not replace certificates bundled with your application, runtime, or dependencies. Follow the relevant maintainers’ guidance and update affected components separately.</li>
  <li><strong>Test outbound TLS connections.</strong> Check connections to the services your app calls. Removing affected trust can cause connections to endpoints relying on those certificate chains to fail. Work with the endpoint owner to resolve the certificate chain rather than disabling TLS certificate validation.</li>
  <li><strong>Update customer-provided container images yourself.</strong> This platform OS rollout does not patch certificate stores or dependencies inside your custom container image. Follow your image’s OS and dependency guidance, then rebuild, test, and redeploy.</li>
</ol>

<h3 id="application-managed-trust-stores-and-dependencies">Application-managed trust stores and dependencies</h3>

<p>An app can use the Windows certificate store, a runtime-specific trust store, or a CA bundle supplied by a library. <strong>An OS certificate update alone is not proof that every TLS client in your application is protected.</strong></p>

<p>Review custom trust-store configuration, bundled certificates, and dependencies that maintain their own CA data. Update affected components through your trusted sources and test the application after redeployment.</p>

<h2 id="related-updates">Related updates</h2>

<ul>
  <li><a href="/2026/10/23/time-zone-updates-app-service-windows.html">Time zone updates on App Service for Windows</a> covers the separate Windows OS time-zone update, whose accelerated SDP rollout is complete.</li>
  <li><a href="/2026/10/22/node-emergency-release-app-service-windows.html">Emergency Node.js runtime updates on App Service for Windows</a> covers the separate Node.js security releases and runtime rollout. The OS certificate update does not replace runtime security patches.</li>
  <li><a href="/2026/10/22/emudhra-certificate-issue-app-service-linux.html">eMudhra / emSign certificate security updates on App Service for Linux</a> covers the separate Linux image rollout. Its release-channel settings and Ubuntu package checks do not apply to Windows.</li>
</ul>

<p>Thank you for helping us keep your apps on Azure App Service secure.</p>]]></content><author><name>Azure App Service</name></author><summary type="html"><![CDATA[Update (25 October 2026): The rollout of Windows operating-system certificate updates for the eMudhra / emSign CA certificate security incident is complete on Azure App Service for Windows. Application-managed certificate bundles and trust stores still require separate review as described below.]]></summary></entry><entry><title type="html">Emergency Node.js Runtime Updates on Azure App Service for Windows</title><link href="https://azure.github.io/2026/10/22/node-emergency-release-app-service-windows.html" rel="alternate" type="text/html" title="Emergency Node.js Runtime Updates on Azure App Service for Windows" /><published>2026-10-22T00:00:00+00:00</published><updated>2026-10-22T00:00:00+00:00</updated><id>https://azure.github.io/2026/10/22/node-emergency-release-app-service-windows</id><content type="html" xml:base="https://azure.github.io/2026/10/22/node-emergency-release-app-service-windows.html"><![CDATA[<blockquote>
  <p><strong>Update (26 October 2026):</strong> The rollout of updated built-in Node.js runtimes on <strong>Azure App Service for Windows is complete</strong>, following accelerated Safe Deployment Practices (SDP). Verify your app’s running version and review pinned runtime settings as described below.</p>
</blockquote>

<p>Following the emergency Node.js releases on <strong>21 October 2026</strong>, the Azure App Service team has rolled out updated Node.js runtimes for Windows apps.</p>

<h2 id="patched-versions-and-official-release-notes">Patched versions and official release notes</h2>

<p>For the <strong>22.x and 24.x</strong> release lines covered in this article, the <a href="https://nodejs.org/en/blog/vulnerability/october-2026-security-releases">official Node.js security announcement</a> lists fixes with a highest severity of <strong>High</strong>, including fixes for a Brotli decoder out-of-bounds write that permits remote code execution, DNS name handling, and TLS certificate hostname validation. The release also includes dependency updates and a CA-certificate update related to the eMudhra intermediate CA compromise.</p>

<table>
  <thead>
    <tr>
      <th>Node.js release line</th>
      <th>Patched version</th>
      <th>Official release notes</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>22.x</td>
      <td><strong>22.23.4</strong></td>
      <td><a href="https://nodejs.org/en/blog/release/v22.23.4/">Node.js 22.23.4</a></td>
    </tr>
    <tr>
      <td>24.x</td>
      <td><strong>24.22.1</strong></td>
      <td><a href="https://nodejs.org/en/blog/release/v24.22.1/">Node.js 24.22.1</a></td>
    </tr>
  </tbody>
</table>

<p>These are the upstream patched versions for the release lines covered here, <strong>not confirmation that your app already runs them</strong>. See the official security announcement for the complete vulnerability list and affected release lines.</p>

<h2 id="what-we-are-doing">What we are doing</h2>

<p>We have completed the rollout of the updated built-in Node.js runtimes across App Service for Windows through accelerated SDP.</p>

<p><strong>Platform Release Channels do not apply to App Service for Windows.</strong> There is no Latest or Standard channel to select for this rollout. The Linux channel instructions in our related posts do not apply to Windows apps.</p>

<p>For more information about platform-managed runtime updates, see <a href="https://learn.microsoft.com/azure/app-service/overview-patch-os-runtime">OS and runtime patching in Azure App Service</a>.</p>

<h2 id="what-you-should-do">What you should do</h2>

<ol>
  <li><strong>Check your app’s running Node.js version.</strong> Verify the version used by the application process against the patched versions listed above.</li>
  <li><strong>Use a supported Node.js release line.</strong> End-of-life runtimes do not receive these fixes. Update and test your app on a supported release line if necessary.</li>
  <li><strong>Review pinned runtime settings.</strong> If your app is pinned to an older patch version, review its runtime configuration so it can use an updated version. See <a href="https://learn.microsoft.com/azure/app-service/configure-language-nodejs?pivots=platform-windows#configure-nodejs-version">Configure a Node.js app for Azure App Service</a>.</li>
  <li><strong>Update bring-your-own runtimes and custom containers yourself.</strong> App Service does not patch Node.js binaries that you supply. Update to the applicable patched version, test, and redeploy.</li>
</ol>

<h3 id="verify-your-running-nodejs-version">Verify your running Node.js version</h3>

<p>Use your application’s existing startup logging or diagnostics to inspect <strong><code class="language-plaintext highlighter-rouge">process.version</code></strong> in the running Node.js application process. For example, log the version during application startup:</p>

<div class="language-javascript highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nx">console</span><span class="p">.</span><span class="nf">log</span><span class="p">(</span><span class="s2">`Node.js runtime: </span><span class="p">${</span><span class="nx">process</span><span class="p">.</span><span class="nx">version</span><span class="p">}</span><span class="s2">`</span><span class="p">);</span>
</code></pre></div></div>

<p>Review that output in your application’s logs after deployment or the next application startup. Avoid exposing runtime diagnostics through an unauthenticated public endpoint.</p>

<p>The version selected in configuration or reported by a separate console process does not by itself prove which Node.js binary your application process uses. For scaled-out apps, check the application logs across instances.</p>

<h2 id="related-updates">Related updates</h2>

<ul>
  <li><a href="/2026/10/23/time-zone-updates-app-service-windows.html">Time zone updates on App Service for Windows</a> covers the separate Windows OS time-zone update, whose accelerated SDP rollout is complete.</li>
  <li><a href="/2026/10/22/emudhra-certificate-issue-app-service-windows.html">eMudhra / emSign certificate security updates on App Service for Windows</a> covers the separate Windows OS certificate update. Runtime updates do not replace certificate bundles managed by your app.</li>
  <li><a href="/2026/10/22/node-python-emergency-release-app-service-linux.html">Node.js and Python emergency runtime updates on App Service for Linux</a> covers the separate Linux rollout. Its Platform Release Channel instructions do not apply to Windows.</li>
  <li><a href="/2026/10/21/php-critical-security-release-app-service-linux.html">Critical PHP security release guidance for App Service</a> covers the separate PHP security release and Windows PHP guidance.</li>
</ul>

<p>Thank you for helping us keep your Node.js apps on Azure App Service secure.</p>]]></content><author><name>Azure App Service</name></author><summary type="html"><![CDATA[Update (26 October 2026): The rollout of updated built-in Node.js runtimes on Azure App Service for Windows is complete, following accelerated Safe Deployment Practices (SDP). Verify your app’s running version and review pinned runtime settings as described below.]]></summary></entry><entry><title type="html">Emergency Node.js and Python Runtime Updates on Azure App Service for Linux</title><link href="https://azure.github.io/2026/10/22/node-python-emergency-release-app-service-linux.html" rel="alternate" type="text/html" title="Emergency Node.js and Python Runtime Updates on Azure App Service for Linux" /><published>2026-10-22T00:00:00+00:00</published><updated>2026-10-22T00:00:00+00:00</updated><id>https://azure.github.io/2026/10/22/node-python-emergency-release-app-service-linux</id><content type="html" xml:base="https://azure.github.io/2026/10/22/node-python-emergency-release-app-service-linux.html"><![CDATA[<blockquote>
  <p><strong>Update (22 October 2026):</strong> Rollout of the updated built-in Node.js and Python images is <strong>complete on both the Latest and Standard Platform Release Channels</strong> for Azure App Service on Linux.</p>
</blockquote>

<p>Following the emergency Node.js and Python releases on <strong>21 October 2026</strong>, the Azure App Service team has updated the built-in Linux images with the newly released runtime versions.</p>

<h2 id="patched-versions-and-official-release-notes">Patched versions and official release notes</h2>

<p>The following versions were published by the Node.js and Python projects on <strong>21 October 2026</strong>. These are upstream release versions; verify the runtime version in your running App Service app using the instructions below.</p>

<h3 id="nodejs">Node.js</h3>

<p>For the <strong>22.x and 24.x</strong> release lines covered in this article, the <a href="https://nodejs.org/en/blog/vulnerability/october-2026-security-releases">official Node.js security announcement</a> lists fixes with a highest severity of <strong>High</strong>, including fixes for a Brotli decoder out-of-bounds write that permits remote code execution, DNS name handling, and TLS certificate hostname validation. The release also includes dependency updates and a CA-certificate update related to the eMudhra intermediate CA compromise.</p>

<table>
  <thead>
    <tr>
      <th>Node.js release line</th>
      <th>Patched version</th>
      <th>Official release notes</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>22.x</td>
      <td><strong>22.23.4</strong></td>
      <td><a href="https://nodejs.org/en/blog/release/v22.23.4/">Node.js 22.23.4</a></td>
    </tr>
    <tr>
      <td>24.x</td>
      <td><strong>24.22.1</strong></td>
      <td><a href="https://nodejs.org/en/blog/release/v24.22.1/">Node.js 24.22.1</a></td>
    </tr>
  </tbody>
</table>

<p>See the official security announcement for the complete vulnerability list and affected release lines. End-of-life Node.js versions do not receive these fixes; move to a supported release line if your app is using an EOL version.</p>

<h3 id="python">Python</h3>

<p>The <a href="https://blog.python.org/2026/10/python-3151-3149-31317/">official Python release announcement</a> describes an expedited security release for <strong>3.14</strong> and a special security release for <strong>3.13</strong>. Both update bundled <strong>pip to 26.2.2</strong>, including <strong>certifi 2026.10.19</strong>, to address the <strong>eMudhra / emSign CA certificate security incident</strong>.</p>

<table>
  <thead>
    <tr>
      <th>Python release line</th>
      <th>Updated version</th>
      <th>Official release notes</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>3.13</td>
      <td><strong>3.13.17</strong></td>
      <td><a href="https://www.python.org/downloads/release/python-31317/">Python 3.13.17</a></td>
    </tr>
    <tr>
      <td>3.14</td>
      <td><strong>3.14.9</strong></td>
      <td><a href="https://www.python.org/downloads/release/python-3149/">Python 3.14.9</a></td>
    </tr>
  </tbody>
</table>

<p><strong>Updating the platform runtime does not update packages in your app’s existing virtual environments.</strong> The Python team also recommends updating pip and uv in existing virtual environments. Review the <a href="https://discuss.python.org/t/information-for-python-users-regarding-emudhra-emsign-ca-certificate-security-incident/109576">official incident guidance</a>, update affected app-managed dependencies through your trusted package source, and rebuild and redeploy your app as needed.</p>

<h2 id="what-we-are-doing">What we are doing</h2>

<p>The updated images roll out through the <a href="https://learn.microsoft.com/azure/app-service/overview-patch-os-runtime#control-runtime-patch-update-timing-with-platform-release-channel">Platform Release Channels</a> as follows:</p>

<table>
  <thead>
    <tr>
      <th>Channel</th>
      <th>Availability of the updates</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td><strong>Latest</strong></td>
      <td>Rollout <strong>complete</strong>.</td>
    </tr>
    <tr>
      <td><strong>Standard</strong> (default)</td>
      <td>Rollout <strong>complete</strong> through <strong>Safe Deployment Practices (SDP)</strong>.</td>
    </tr>
  </tbody>
</table>

<p>The updated images are available on both Latest and Standard for the release lines covered here.</p>

<p>Changing your Platform Release Channel does not change your app’s configured Node.js or Python release line. If your app needs a different supported release line, update and test the app and change its runtime configuration separately.</p>

<h2 id="what-you-should-do">What you should do</h2>

<ol>
  <li><strong>Use Standard or Latest to receive these updates.</strong> Apps already on either channel do not need a channel change. If you use another channel, follow the instructions below to select Standard.</li>
  <li><strong>Verify your runtime version.</strong> After your app picks up the updated image, use <code class="language-plaintext highlighter-rouge">az webapp exec</code> to open an interactive shell in the app and check its running runtime version.</li>
  <li><strong>Update custom containers and bring-your-own runtimes yourself.</strong> App Service does not patch Node.js or Python runtimes that you supply. Update your runtime or rebuild your container image with the applicable fixed version, test your app, and redeploy.</li>
</ol>

<h3 id="change-your-platform-release-channel">Change your Platform Release Channel</h3>

<p><strong>Azure portal</strong></p>

<ol>
  <li>In the Azure portal, go to your App Service app.</li>
  <li>In the left menu, select <strong>Stack settings</strong>.</li>
  <li>Under <strong>Platform Release Channel</strong>, select <strong>Standard</strong>.</li>
  <li>Select <strong>Save</strong>.</li>
</ol>

<p><strong>Azure CLI</strong></p>

<p>Use <a href="https://learn.microsoft.com/cli/azure/webapp#az-webapp-update">az webapp update</a> to move your app to Standard:</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>az webapp update <span class="se">\</span>
  <span class="nt">--resource-group</span> &lt;resource-group&gt; <span class="se">\</span>
  <span class="nt">--name</span> &lt;app-name&gt; <span class="se">\</span>
  <span class="nt">--platform-release-channel</span> Standard
</code></pre></div></div>

<p>Replace the placeholders with your app’s resource group and name. For a deployment slot, add <code class="language-plaintext highlighter-rouge">--slot &lt;slot-name&gt;</code>.</p>

<p>If your app is already on <strong>Standard</strong> or <strong>Latest</strong>, no channel change is needed for these updates.</p>

<p>For more information, see <a href="https://learn.microsoft.com/azure/app-service/overview-patch-os-runtime#control-runtime-patch-update-timing-with-platform-release-channel">OS and runtime patching in Azure App Service</a>.</p>

<h3 id="verify-your-runtime-version">Verify your runtime version</h3>

<p>Use <a href="https://learn.microsoft.com/cli/azure/webapp#az-webapp-exec">az webapp exec</a> (currently in preview) with Azure CLI <strong>2.90.0 or later</strong> to open an interactive shell in your running app:</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>az webapp <span class="nb">exec</span> <span class="nt">--resource-group</span> &lt;resource-group&gt; <span class="nt">--name</span> &lt;app-name&gt;
</code></pre></div></div>

<p>Replace the placeholders with your app’s resource group and name. For a deployment slot, add <code class="language-plaintext highlighter-rouge">--slot &lt;slot-name&gt;</code>.</p>

<p>In the interactive shell, run the command for your runtime.</p>

<p>For Node.js:</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>node <span class="nt">--version</span>
</code></pre></div></div>

<p>For Python:</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>python <span class="nt">--version</span>
</code></pre></div></div>

<p>Verify the version in your running app rather than relying only on the selected Platform Release Channel.</p>

<p>Use the interactive shell for these checks rather than detached execute mode, which does not return command output or an exit code.</p>

<h2 id="related-updates">Related updates</h2>

<ul>
  <li><a href="/2026/10/22/node-emergency-release-app-service-windows.html">Emergency Node.js runtime updates on App Service for Windows</a> covers the separate Windows Node.js rollout. Linux Platform Release Channel settings do not apply to Windows.</li>
  <li><a href="/2026/10/22/time-zone-updates-app-service-linux.html">Time zone updates on App Service for Linux</a> covers the updated time-zone rules and checks for OS and application-managed time-zone data.</li>
  <li><a href="/2026/10/22/emudhra-certificate-issue-app-service-linux.html">eMudhra / emSign certificate security updates on App Service for Linux</a> provides additional guidance on OS trust stores and application-managed CA bundles. Updating the runtime does not replace certificate bundles managed by your app.</li>
  <li><a href="/2026/10/21/php-critical-security-release-app-service-linux.html">Critical PHP security release guidance for App Service</a> covers the separate PHP security release and actions for PHP workloads.</li>
</ul>

<h2 id="stay-informed">Stay informed</h2>

<p>We will share further updates here as needed.</p>

<p>Thank you for helping us keep your Node.js and Python apps on Azure App Service secure.</p>]]></content><author><name>Azure App Service</name></author><summary type="html"><![CDATA[Update (22 October 2026): Rollout of the updated built-in Node.js and Python images is complete on both the Latest and Standard Platform Release Channels for Azure App Service on Linux.]]></summary></entry><entry><title type="html">Time Zone Updates on Azure App Service for Linux</title><link href="https://azure.github.io/2026/10/22/time-zone-updates-app-service-linux.html" rel="alternate" type="text/html" title="Time Zone Updates on Azure App Service for Linux" /><published>2026-10-22T00:00:00+00:00</published><updated>2026-10-22T00:00:00+00:00</updated><id>https://azure.github.io/2026/10/22/time-zone-updates-app-service-linux</id><content type="html" xml:base="https://azure.github.io/2026/10/22/time-zone-updates-app-service-linux.html"><![CDATA[<blockquote>
  <p><strong>Update (25 October 2026):</strong> The Java rollout is now complete on <strong>Standard</strong>. Rollout of updated built-in Linux images for the time-zone rule changes in <strong>IANA time zone database 2026e</strong> is <strong>complete on Latest and Standard</strong> for all supported runtimes covered below, including <strong>Java</strong>. <strong>No channel change is needed.</strong> The PHP 8.2, PHP 8.3, and EOL exclusions described below remain unchanged.</p>
</blockquote>

<p>Time-zone rules change when governments update local timekeeping policies. Apps need current time-zone data to convert UTC timestamps to local time and calculate schedules correctly.</p>

<p>The <a href="https://github.com/eggert/tz/blob/main/NEWS">upstream time zone database release notes</a> describe changes affecting several Canadian regions around the <strong>1 November 2026</strong> clock transition, as well as an earlier change affecting Morocco and Western Sahara. <strong>UTC itself does not change.</strong></p>

<h2 id="what-changes-in-the-time-zone-data">What changes in the time-zone data</h2>

<p>The updates are cumulative. <strong>2026e</strong> includes the following rule changes from releases 2026b through 2026e:</p>

<table>
  <thead>
    <tr>
      <th>Region</th>
      <th>Updated behavior</th>
      <th>First included</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>British Columbia (including <code class="language-plaintext highlighter-rouge">America/Vancouver</code>)</td>
      <td>Remains on UTC-07 instead of falling back on 1 November.</td>
      <td>2026b</td>
    </tr>
    <tr>
      <td>Alberta (including <code class="language-plaintext highlighter-rouge">America/Edmonton</code>)</td>
      <td>Remains on UTC-06 instead of falling back on 1 November.</td>
      <td>2026c</td>
    </tr>
    <tr>
      <td>Morocco and Western Sahara</td>
      <td>Move to permanent UTC+00 on 20 September 2026.</td>
      <td>2026c</td>
    </tr>
    <tr>
      <td>Northwest Territories</td>
      <td>Remains on UTC-06 instead of falling back on 1 November.</td>
      <td>2026d</td>
    </tr>
    <tr>
      <td>Manitoba (including <code class="language-plaintext highlighter-rouge">America/Winnipeg</code>)</td>
      <td>Remains on UTC-05 instead of falling back on 1 November.</td>
      <td>2026e</td>
    </tr>
  </tbody>
</table>

<p>See the upstream release notes for exact zone coverage and transition details. These changes do not mean that every location in Canada follows the same rules.</p>

<p>Older data can apply a clock change that no longer occurs, producing incorrect local-time displays, job schedules, deadlines, and date-based calculations. Apps on different data versions can also disagree about the same timestamp.</p>

<h2 id="what-we-are-doing">What we are doing</h2>

<p>Updated built-in Linux images are available on <strong>Latest and Standard</strong> for <strong>non-EOL runtimes</strong>, with the <a href="#php-82-and-83-exceptions">PHP 8.2 and 8.3 exceptions</a> described below. The updates address the time-zone data needed for these rule changes, including OS data and runtime-bundled data where applicable.
<strong>Java is available on both Latest and Standard; its rollout is complete.</strong></p>

<p>The following runtime versions are included in the completed rollout to <strong>Latest and Standard</strong>. For Java, the table summarizes Java SE versions rather than listing individual application-server combinations.</p>

<table>
  <thead>
    <tr>
      <th>Runtime</th>
      <th>Versions included in the image updates</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>.NET</td>
      <td>8, 9, 10, 11</td>
    </tr>
    <tr>
      <td>Node.js</td>
      <td>22, 24</td>
    </tr>
    <tr>
      <td>Python</td>
      <td>3.10, 3.11, 3.12, 3.13, 3.14</td>
    </tr>
    <tr>
      <td>PHP</td>
      <td>8.4, 8.5</td>
    </tr>
    <tr>
      <td>Java SE</td>
      <td>8, 11, 17, 21, 25</td>
    </tr>
  </tbody>
</table>

<p><strong>EOL runtimes do not receive these image updates.</strong> Updating an image does not automatically replace time-zone databases bundled in your app or its dependencies.</p>

<h3 id="php-82-and-83-exceptions">PHP 8.2 and 8.3 exceptions</h3>

<p><strong>PHP 8.2 and PHP 8.3 are not included in this initial time-zone update payload.</strong> These stacks use a custom PHP time-zone database that is not current. We are investigating an update plan for these two stacks; no availability date is confirmed.</p>

<p>Moving an app on either stack to Latest alone does not address this exception. If your app depends on the changed rules, update and test it on a supported PHP stack included in this rollout, such as <strong>PHP 8.4 or 8.5</strong>, and verify its date/time behavior before switching production traffic.</p>

<h3 id="rollout-by-platform-release-channel">Rollout by Platform Release Channel</h3>

<table>
  <thead>
    <tr>
      <th>Channel</th>
      <th>Availability of the updates</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td><strong>Latest</strong></td>
      <td>Rollout <strong>complete</strong> for the included runtimes.</td>
    </tr>
    <tr>
      <td><strong>Standard</strong> (default)</td>
      <td>Rollout <strong>complete</strong> for the included runtimes, including Java.</td>
    </tr>
  </tbody>
</table>

<p>Both channels include these updates for all covered runtimes, <strong>including Java</strong>. Changing your channel does not upgrade your app to a different runtime version or make an EOL runtime supported.</p>

<h2 id="what-you-should-do">What you should do</h2>

<ol>
  <li><strong>Use Standard or Latest to receive the updated rules.</strong> For eligible runtimes, including Java, apps on either channel do not need a channel change.</li>
  <li><strong>Check your app’s actual date/time behavior.</strong> Test conversions and schedules for the regions your app uses, including timestamps on both sides of the relevant transition. Do not rely on the selected channel or OS package version alone.</li>
  <li><strong>Review application-managed time-zone data.</strong> Libraries, bundled ICU data, and custom time-zone databases can differ from the OS database. Update affected dependencies and rebuild and redeploy your app as needed.</li>
  <li><strong>Review PHP 8.2, PHP 8.3, and EOL workloads.</strong> The two PHP stacks are excluded from this initial payload, and EOL runtimes do not receive these updates. Move to an included supported stack where possible and test before production deployment.</li>
  <li><strong>Update custom containers and bring-your-own runtimes yourself.</strong> App Service does not patch their contents. Pull an updated supported base image, update OS and runtime-specific time-zone data, then rebuild, test, and redeploy. Selecting Latest does not update your custom image.</li>
</ol>

<h3 id="change-your-platform-release-channel">Change your Platform Release Channel</h3>

<p><strong>Azure portal</strong></p>

<ol>
  <li>In the Azure portal, go to your App Service app.</li>
  <li>In the left menu, select <strong>Stack settings</strong>.</li>
  <li>Under <strong>Platform Release Channel</strong>, select <strong>Standard</strong>.</li>
  <li>Select <strong>Save</strong>.</li>
</ol>

<p><strong>Azure CLI</strong></p>

<p>Use <a href="https://learn.microsoft.com/cli/azure/webapp#az-webapp-update">az webapp update</a> to move your app to Standard:</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>az webapp update <span class="se">\</span>
  <span class="nt">--resource-group</span> &lt;resource-group&gt; <span class="se">\</span>
  <span class="nt">--name</span> &lt;app-name&gt; <span class="se">\</span>
  <span class="nt">--platform-release-channel</span> Standard
</code></pre></div></div>

<p>Replace the placeholders with your app’s resource group and name. For a deployment slot, add <code class="language-plaintext highlighter-rouge">--slot &lt;slot-name&gt;</code>.</p>

<p>Eligible apps, including Java apps, already on <strong>Standard</strong> or <strong>Latest</strong> do not need a channel change.</p>

<p>For more information, see <a href="https://learn.microsoft.com/azure/app-service/overview-patch-os-runtime#control-runtime-patch-update-timing-with-platform-release-channel">OS and runtime patching in Azure App Service</a>.</p>

<h3 id="verify-time-zone-behavior">Verify time-zone behavior</h3>

<p>Use <a href="https://learn.microsoft.com/cli/azure/webapp#az-webapp-exec">az webapp exec</a> (currently in preview) with Azure CLI <strong>2.90.0 or later</strong> to open an interactive shell in the running app:</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>az webapp <span class="nb">exec</span> <span class="nt">--resource-group</span> &lt;resource-group&gt; <span class="nt">--name</span> &lt;app-name&gt;
</code></pre></div></div>

<p>For a deployment slot, add <code class="language-plaintext highlighter-rouge">--slot &lt;slot-name&gt;</code>. Use <code class="language-plaintext highlighter-rouge">--instance &lt;instance-id&gt;</code> to check other instances as needed.</p>

<p>Inside an Ubuntu- or Debian-based container, inspect the OS and installed time-zone package:</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nb">cat</span> /etc/os-release
dpkg-query <span class="nt">-W</span> <span class="nt">-f</span><span class="o">=</span><span class="s1">'${Package} ${Version}\n'</span> tzdata
</code></pre></div></div>

<p>For a quick OS-level behavior check, convert a timestamp after the November transition:</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nv">TZ</span><span class="o">=</span>America/Winnipeg <span class="nb">date</span> <span class="nt">-d</span> <span class="s1">'2026-11-01 12:00:00 UTC'</span> <span class="s1">'+%Y-%m-%d %H:%M:%S %z'</span>
</code></pre></div></div>

<p>With the updated Manitoba rules, the expected result is:</p>

<div class="language-text highlighter-rouge"><div class="highlight"><pre class="highlight"><code>2026-11-01 07:00:00 -0500
</code></pre></div></div>

<p><strong>This checks the OS time-zone data on one instance, not the database used by every runtime or library.</strong> Repeat relevant conversions through your app’s own date/time APIs and scheduling libraries. An OS package update alone is not proof that application-bundled ICU or other time-zone data is current.</p>

<h2 id="related-updates">Related updates</h2>

<ul>
  <li><a href="/2026/10/21/php-critical-security-release-app-service-linux.html">Critical PHP security release guidance for App Service</a> covers the separate PHP runtime vulnerabilities and security-patch rollout.</li>
  <li><a href="/2026/10/22/node-python-emergency-release-app-service-linux.html">Node.js and Python emergency runtime updates on App Service for Linux</a> covers the related runtime releases.</li>
  <li><a href="/2026/10/22/emudhra-certificate-issue-app-service-linux.html">eMudhra / emSign certificate security updates on App Service for Linux</a> covers the separate certificate trust-store updates. Its PHP exclusions differ from the time-zone update exclusions described here.</li>
</ul>

<h2 id="stay-informed">Stay informed</h2>

<p>We share further updates here as the PHP 8.2 and 8.3 update plan becomes available.</p>

<p>Thank you for keeping your apps’ time-zone data current on Azure App Service.</p>]]></content><author><name>Azure App Service</name></author><summary type="html"><![CDATA[Update (25 October 2026): The Java rollout is now complete on Standard. Rollout of updated built-in Linux images for the time-zone rule changes in IANA time zone database 2026e is complete on Latest and Standard for all supported runtimes covered below, including Java. No channel change is needed. The PHP 8.2, PHP 8.3, and EOL exclusions described below remain unchanged.]]></summary></entry></feed>