<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>Cloudflare changelogs | Pages</title><description>Cloudflare changelogs for Pages</description><link>https://developers.cloudflare.com/changelog/</link><item><title>Pages - Increased Pages file limit to 100,000 for paid plans</title><link>https://developers.cloudflare.com/changelog/post/2026-01-23-pages-file-limit-increase/</link><guid isPermaLink="true">https://developers.cloudflare.com/changelog/post/2026-01-23-pages-file-limit-increase/</guid><description>&lt;p&gt;Paid plans can now have up to 100,000 files per Pages site, increased from the previous limit of 20,000 files.&lt;/p&gt;
&lt;p&gt;To enable this increased limit, set the environment variable &lt;code&gt;PAGES_WRANGLER_MAJOR_VERSION=4&lt;/code&gt; in your Pages project settings.&lt;/p&gt;
&lt;p&gt;The Free plan remains at 20,000 files per site.&lt;/p&gt;
&lt;p&gt;For more details, refer to the &lt;a href=&quot;https://developers.cloudflare.com/pages/platform/limits/#files&quot;&gt;Pages limits documentation&lt;/a&gt;.&lt;/p&gt;</description><pubDate>Fri, 23 Jan 2026 00:00:00 GMT</pubDate><product>Pages</product><category>Pages</category></item><item><title>Pages - Cloudflare Pages builds now provide Node.js v22 by default</title><link>https://developers.cloudflare.com/changelog/post/2025-05-30-pages-build-image-v3/</link><guid isPermaLink="true">https://developers.cloudflare.com/changelog/post/2025-05-30-pages-build-image-v3/</guid><description>&lt;p&gt;When you use the built-in build system that is part of &lt;a href=&quot;https://developers.cloudflare.com/pages/&quot;&gt;Cloudflare Pages&lt;/a&gt;, the &lt;a href=&quot;https://developers.cloudflare.com/pages/configuration/build-image/&quot;&gt;Build Image&lt;/a&gt; now includes Node.js v22. Previously, Node.js v18 was provided by default, and Node.js v18 is now end-of-life (EOL).&lt;/p&gt;
&lt;p&gt;If you are creating a new Pages project, the new V3 build image that includes Node.js v22 will be used by default. If you have an existing Pages project, you can update to the latest build image by navigating to Settings &gt; Build &amp;#x26; deployments &gt; Build system version in the Cloudflare dashboard for a specific Pages project.&lt;/p&gt;
&lt;p&gt;Note that you can always specify a particular version of Node.js or other built-in dependencies by &lt;a href=&quot;https://developers.cloudflare.com/pages/configuration/build-image/#override-default-versions&quot;&gt;setting an environment variable&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;For more, refer to the &lt;a href=&quot;https://developers.cloudflare.com/pages/configuration/build-image&quot;&gt;developer docs for Cloudflare Pages builds&lt;/a&gt;&lt;/p&gt;</description><pubDate>Fri, 30 May 2025 00:00:00 GMT</pubDate><product>Pages</product><category>Pages</category></item><item><title>Workers, Pages, WAF - New Managed WAF rule for Next.js CVE-2025-29927.</title><link>https://developers.cloudflare.com/changelog/post/2025-03-22-next-js-vulnerability-waf/</link><guid isPermaLink="true">https://developers.cloudflare.com/changelog/post/2025-03-22-next-js-vulnerability-waf/</guid><description>&lt;p&gt;&lt;strong&gt;Update: Mon Mar 24th, 11PM UTC&lt;/strong&gt;: Next.js has made further changes to address a smaller vulnerability introduced in the patches made to its middleware handling. Users should upgrade to Next.js versions &lt;code&gt;15.2.4&lt;/code&gt;, &lt;code&gt;14.2.26&lt;/code&gt;, &lt;code&gt;13.5.10&lt;/code&gt; or &lt;code&gt;12.3.6&lt;/code&gt;. &lt;strong&gt;If you are unable to immediately upgrade or are running an older version of Next.js, you can enable the WAF rule described in this changelog as a mitigation&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Update: Mon Mar 24th, 8PM UTC&lt;/strong&gt;: Next.js has now &lt;a href=&quot;https://github.com/advisories/GHSA-f82v-jwr5-mffw&quot; target=&quot;_blank&quot;&gt;backported the patch for this vulnerability&lt;/a&gt; to cover Next.js v12 and v13. Users on those versions will need to patch to &lt;code&gt;13.5.9&lt;/code&gt; and &lt;code&gt;12.3.5&lt;/code&gt; (respectively) to mitigate the vulnerability.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Update: Sat Mar 22nd, 4PM UTC&lt;/strong&gt;: We have changed this WAF rule to opt-in only, as sites that use auth middleware with third-party auth vendors were observing failing requests.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;We strongly recommend updating your version of Next.js (if eligible)&lt;/strong&gt; to the patched versions, as your app will otherwise be vulnerable to an authentication bypass attack regardless of auth provider.&lt;/p&gt;
&lt;h4&gt;Enable the Managed Rule (strongly recommended)&lt;/h4&gt;
&lt;p&gt;This rule is opt-in only for sites on the Pro plan or above in the &lt;a href=&quot;https://developers.cloudflare.com/waf/managed-rules/&quot;&gt;WAF managed ruleset&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;To enable the rule:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Head to Security &gt; WAF &gt; Managed rules in the Cloudflare dashboard for the zone (website) you want to protect.&lt;/li&gt;
&lt;li&gt;Click the three dots next to &lt;strong&gt;Cloudflare Managed Ruleset&lt;/strong&gt; and choose &lt;strong&gt;Edit&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Scroll down and choose &lt;strong&gt;Browse Rules&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Search for &lt;strong&gt;CVE-2025-29927&lt;/strong&gt; (ruleId: &lt;code&gt;34583778093748cc83ff7b38f472013e&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;Change the &lt;strong&gt;Status&lt;/strong&gt; to &lt;strong&gt;Enabled&lt;/strong&gt; and the &lt;strong&gt;Action&lt;/strong&gt; to &lt;strong&gt;Block&lt;/strong&gt;. You can optionally set the rule to Log, to validate potential impact before enabling it. Log will not block requests.&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;Next&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Scroll down and choose &lt;strong&gt;Save&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;This will enable the WAF rule and block requests with the &lt;code&gt;x-middleware-subrequest&lt;/code&gt; header regardless of Next.js version.&lt;/p&gt;
&lt;h4&gt;Create a WAF rule (manual)&lt;/h4&gt;
&lt;p&gt;For users on the Free plan, or who want to define a more specific rule, you can create a &lt;a href=&quot;https://developers.cloudflare.com/waf/custom-rules/create-dashboard/&quot;&gt;Custom WAF rule&lt;/a&gt; to block requests with the &lt;code&gt;x-middleware-subrequest&lt;/code&gt; header regardless of Next.js version.&lt;/p&gt;
&lt;p&gt;To create a custom rule:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Head to Security &gt; WAF &gt; Custom rules in the Cloudflare dashboard for the zone (website) you want to protect.&lt;/li&gt;
&lt;li&gt;Give the rule a name - e.g. &lt;code&gt;next-js-CVE-2025-29927&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Set the matching parameters for the rule match any request where the &lt;code&gt;x-middleware-subrequest&lt;/code&gt; header &lt;code&gt;exists&lt;/code&gt; per the rule expression below.&lt;/li&gt;
&lt;/ol&gt;
&lt;div&gt;&lt;figure&gt;&lt;pre data-language=&quot;sh&quot;&gt;&lt;code class=&quot;language-sh&quot;&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;len(http.request.headers[&lt;/span&gt;&lt;span&gt;&quot;x-middleware-subrequest&quot;&lt;/span&gt;&lt;span&gt;]&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&gt;&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;0&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;ol&gt;
&lt;li&gt;Set the action to &apos;block&apos;. If you want to observe the impact before blocking requests, set the action to &apos;log&apos; (and edit the rule later).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Deploy&lt;/strong&gt; the rule.&lt;/li&gt;
&lt;/ol&gt;
&lt;starlight-image-zoom-zoomable&gt;&lt;img src=&quot;https://developers.cloudflare.com/_astro/waf-rule-cve-2025-29927.0i0XiweZ_Z8mlyw.webp&quot; alt=&quot;Next.js CVE-2025-29927 WAF rule&quot;&gt;&lt;/starlight-image-zoom-zoomable&gt;
&lt;h4&gt;Next.js CVE-2025-29927&lt;/h4&gt;
&lt;p&gt;We&apos;ve made a WAF (Web Application Firewall) rule available to all sites on Cloudflare to protect against the &lt;a href=&quot;https://github.com/advisories/GHSA-f82v-jwr5-mffw&quot; target=&quot;_blank&quot;&gt;Next.js authentication bypass vulnerability&lt;/a&gt; (&lt;code&gt;CVE-2025-29927&lt;/code&gt;) published on March 21st, 2025.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt;: This rule is not enabled by default as it blocked requests across sites for specific authentication middleware.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;This managed rule protects sites using Next.js on Workers and Pages, as well as sites using Cloudflare to protect Next.js applications hosted elsewhere.&lt;/li&gt;
&lt;li&gt;This rule has been made available (but not enabled by default) to all sites as part of our &lt;a href=&quot;https://developers.cloudflare.com/waf/managed-rules/reference/cloudflare-managed-ruleset/&quot;&gt;WAF Managed Ruleset&lt;/a&gt; and blocks requests that attempt to bypass authentication in Next.js applications.&lt;/li&gt;
&lt;li&gt;The vulnerability affects almost all Next.js versions, and has been fully patched in Next.js &lt;code&gt;14.2.26&lt;/code&gt; and &lt;code&gt;15.2.4&lt;/code&gt;. Earlier, interim releases did not fully patch this vulnerability.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Users on older versions of Next.js (&lt;code&gt;11.1.4&lt;/code&gt; to &lt;code&gt;13.5.6&lt;/code&gt;) did not originally have a patch available&lt;/strong&gt;, but this the patch for this vulnerability and a subsequent additional patch have been backported to Next.js versions &lt;code&gt;12.3.6&lt;/code&gt; and &lt;code&gt;13.5.10&lt;/code&gt; as of Monday, March 24th. Users on Next.js v11 will need to deploy the stated workaround or enable the WAF rule.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The managed WAF rule mitigates this by blocking &lt;em&gt;external&lt;/em&gt; user requests with the &lt;code&gt;x-middleware-subrequest&lt;/code&gt; header regardless of Next.js version, but we recommend users using Next.js 14 and 15 upgrade to the patched versions of Next.js as an additional mitigation.&lt;/p&gt;</description><pubDate>Sat, 22 Mar 2025 00:00:00 GMT</pubDate><product>Workers</product><category>Workers</category><category>Pages</category><category>WAF</category></item><item><title>Workers, Pages - Smart Placement is smarter about running Workers and Pages Functions in the best locations</title><link>https://developers.cloudflare.com/changelog/post/2025-03-22-smart-placement-stablization/</link><guid isPermaLink="true">https://developers.cloudflare.com/changelog/post/2025-03-22-smart-placement-stablization/</guid><description>&lt;p&gt;&lt;a href=&quot;https://developers.cloudflare.com/workers/configuration/placement/&quot;&gt;Smart Placement&lt;/a&gt; is a unique Cloudflare feature that can make decisions to move your Worker to run in a more optimal location (such as closer to a database). Instead of always running in the default location (the one closest to where the request is received), Smart Placement uses certain “heuristics” (rules and thresholds) to decide if a different location might be faster or more efficient.&lt;/p&gt;
&lt;p&gt;Previously, if these heuristics weren&apos;t consistently met, your Worker would revert to running in the default location—even after it had been optimally placed. This meant that if your Worker received minimal traffic for a period of time, the system would reset to the default location, rather than remaining in the optimal one.&lt;/p&gt;
&lt;p&gt;Now, once Smart Placement has identified and assigned an optimal location, temporarily dropping below the heuristic thresholds will not force a return to default locations. For example in the previous algorithm, a drop in requests for a few days might return to default locations and heuristics would have to be met again. This was problematic for workloads that made requests to a geographically located resource every few days or longer. In this scenario, your Worker would never get placed optimally. This is no longer the case.&lt;/p&gt;</description><pubDate>Sat, 22 Mar 2025 00:00:00 GMT</pubDate><product>Workers</product><category>Workers</category><category>Pages</category></item><item><title>Workers, Pages - Retry Pages &amp; Workers Builds Directly from GitHub</title><link>https://developers.cloudflare.com/changelog/post/2025-03-17-rerun-build/</link><guid isPermaLink="true">https://developers.cloudflare.com/changelog/post/2025-03-17-rerun-build/</guid><description>&lt;p&gt;You can now retry your Cloudflare Pages and Workers builds directly from GitHub. No need to switch to the Cloudflare Dashboard for a simple retry!&lt;/p&gt;
&lt;p&gt;Let\u2019s say you push a commit, but your build fails due to a spurious error like a network timeout. Instead of going to the Cloudflare Dashboard to manually retry, you can now rerun the build with just a few clicks inside GitHub, keeping you inside your workflow.&lt;/p&gt;
&lt;p&gt;For Pages and Workers projects connected to a GitHub repository:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;When a build fails, go to your GitHub repository or pull request&lt;/li&gt;
&lt;li&gt;Select the failed Check Run for the build&lt;/li&gt;
&lt;li&gt;Select &quot;Details&quot; on the Check Run&lt;/li&gt;
&lt;li&gt;Select &quot;Rerun&quot; to trigger a retry build for that commit&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Learn more about &lt;a href=&quot;https://developers.cloudflare.com/pages/configuration/git-integration/github-integration/&quot;&gt;Pages Builds&lt;/a&gt; and &lt;a href=&quot;https://developers.cloudflare.com/workers/ci-cd/builds/git-integration/github-integration/&quot;&gt;Workers Builds&lt;/a&gt;.&lt;/p&gt;</description><pubDate>Mon, 17 Mar 2025 00:00:00 GMT</pubDate><product>Workers</product><category>Workers</category><category>Pages</category></item></channel></rss>