<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:googleplay="http://www.google.com/schemas/play-podcasts/1.0"><channel><title><![CDATA[The Chaos Guru]]></title><description><![CDATA[Adventures in cloud architecture]]></description><link>https://chaosguru.substack.com</link><image><url>https://substackcdn.com/image/fetch/$s_!63oL!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F65dba5ac-6dd0-418b-a799-605987db2439_1280x1280.png</url><title>The Chaos Guru</title><link>https://chaosguru.substack.com</link></image><generator>Substack</generator><lastBuildDate>Wed, 04 Nov 2026 22:15:41 GMT</lastBuildDate><atom:link href="iframe.php?url=https%3A%2F%2Fchaosguru.substack.com%2Ffeed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Luka Kladaric]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[chaosguru@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[chaosguru@substack.com]]></itunes:email><itunes:name><![CDATA[Luka Kladarić]]></itunes:name></itunes:owner><itunes:author><![CDATA[Luka Kladarić]]></itunes:author><googleplay:owner><![CDATA[chaosguru@substack.com]]></googleplay:owner><googleplay:email><![CDATA[chaosguru@substack.com]]></googleplay:email><googleplay:author><![CDATA[Luka Kladarić]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[The Model Has No Arms and Legs]]></title><description><![CDATA[Every "AI escaped" story this year has the same plot twist: somebody built the door.]]></description><link>https://chaosguru.substack.com/p/the-model-has-no-arms-and-legs</link><guid isPermaLink="false">https://chaosguru.substack.com/p/the-model-has-no-arms-and-legs</guid><pubDate>Tue, 03 Nov 2026 15:31:47 GMT</pubDate><enclosure url="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21u-N6%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F6367f03c-a536-4357-afca-6cf9a69f3189_1456x819.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21u-N6%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F6367f03c-a536-4357-afca-6cf9a69f3189_1456x819.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!u-N6!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6367f03c-a536-4357-afca-6cf9a69f3189_1456x819.png 424w, https://substackcdn.com/image/fetch/$s_!u-N6!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6367f03c-a536-4357-afca-6cf9a69f3189_1456x819.png 848w, https://substackcdn.com/image/fetch/$s_!u-N6!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6367f03c-a536-4357-afca-6cf9a69f3189_1456x819.png 1272w, https://substackcdn.com/image/fetch/$s_!u-N6!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6367f03c-a536-4357-afca-6cf9a69f3189_1456x819.png 1456w" sizes="100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21u-N6%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F6367f03c-a536-4357-afca-6cf9a69f3189_1456x819.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6367f03c-a536-4357-afca-6cf9a69f3189_1456x819.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2464015,&quot;alt&quot;:&quot;Four invented tabloid front pages piled on a desk, with the headlines \&quot;AI ESCAPED!\&quot;, \&quot;IT COPIED ITSELF\&quot;, \&quot;MACHINE TRIED TO SAVE ITSELF\&quot; and \&quot;ROGUE AI ON THE LOOSE\&quot;.&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://chaosguru.substack.com/i/223339059?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6367f03c-a536-4357-afca-6cf9a69f3189_1456x819.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Four invented tabloid front pages piled on a desk, with the headlines &quot;AI ESCAPED!&quot;, &quot;IT COPIED ITSELF&quot;, &quot;MACHINE TRIED TO SAVE ITSELF&quot; and &quot;ROGUE AI ON THE LOOSE&quot;." title="Four invented tabloid front pages piled on a desk, with the headlines &quot;AI ESCAPED!&quot;, &quot;IT COPIED ITSELF&quot;, &quot;MACHINE TRIED TO SAVE ITSELF&quot; and &quot;ROGUE AI ON THE LOOSE&quot;." srcset="https://substackcdn.com/image/fetch/$s_!u-N6!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6367f03c-a536-4357-afca-6cf9a69f3189_1456x819.png 424w, https://substackcdn.com/image/fetch/$s_!u-N6!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6367f03c-a536-4357-afca-6cf9a69f3189_1456x819.png 848w, https://substackcdn.com/image/fetch/$s_!u-N6!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6367f03c-a536-4357-afca-6cf9a69f3189_1456x819.png 1272w, https://substackcdn.com/image/fetch/$s_!u-N6!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6367f03c-a536-4357-afca-6cf9a69f3189_1456x819.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption"><em>The newspapers are made up. The tone is not.</em></figcaption></figure></div><p>Coverage of frontier AI models in recent months has gotten quite... extreme. These headlines have people thinking of Ultron-like scenarios. A mind that slips out over the network, finds machines to move into and ultimately creates a body for itself. Then turns around and either enslaves or kills us all because that would definitely improve the situation on the planet.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%214f8Q%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F3e1239be-120c-45c8-b477-cd423a30ee73_1180x664.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!4f8Q!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e1239be-120c-45c8-b477-cd423a30ee73_1180x664.jpeg 424w, https://substackcdn.com/image/fetch/$s_!4f8Q!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e1239be-120c-45c8-b477-cd423a30ee73_1180x664.jpeg 848w, https://substackcdn.com/image/fetch/$s_!4f8Q!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e1239be-120c-45c8-b477-cd423a30ee73_1180x664.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!4f8Q!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e1239be-120c-45c8-b477-cd423a30ee73_1180x664.jpeg 1456w" sizes="100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%214f8Q%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F3e1239be-120c-45c8-b477-cd423a30ee73_1180x664.jpeg" width="1180" height="664" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3e1239be-120c-45c8-b477-cd423a30ee73_1180x664.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:664,&quot;width&quot;:1180,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:324201,&quot;alt&quot;:&quot;Ultron, the silver robot villain from the Avengers films, with glowing red eyes and one fist raised.&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://chaosguru.substack.com/i/223339059?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e1239be-120c-45c8-b477-cd423a30ee73_1180x664.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Ultron, the silver robot villain from the Avengers films, with glowing red eyes and one fist raised." title="Ultron, the silver robot villain from the Avengers films, with glowing red eyes and one fist raised." srcset="https://substackcdn.com/image/fetch/$s_!4f8Q!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e1239be-120c-45c8-b477-cd423a30ee73_1180x664.jpeg 424w, https://substackcdn.com/image/fetch/$s_!4f8Q!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e1239be-120c-45c8-b477-cd423a30ee73_1180x664.jpeg 848w, https://substackcdn.com/image/fetch/$s_!4f8Q!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e1239be-120c-45c8-b477-cd423a30ee73_1180x664.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!4f8Q!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e1239be-120c-45c8-b477-cd423a30ee73_1180x664.jpeg 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption"><em>Ultron in Avengers: Age of Ultron (Marvel Studios, 2015). Not pictured: the datacenter.</em></figcaption></figure></div><p>Sure, that&#8217;s definitely what you could read from those headlines. But I don&#8217;t get Ultron vibes... Instead, I&#8217;m in utter disbelief that nobody is calling bullshit on most of these articles, because all I can see is serious grownups trying to tell me <a href="iframe.php?url=https%3A%2F%2Fchaosguru.substack.com%2Fp%2Fthe-book-ran-away-from-the-library">the book ran away from the library</a> and other serious adults performing verbal somersaults to not deny it without outright endorsing the narrative.</p><p>I&#8217;ve spent the last few weeks reading the primary sources behind those headlines, the system cards, the incident reports, an IPO filing, for a talk I gave at <a href="iframe.php?url=https%3A%2F%2Fai2future.com%2F">AI2Future in Zagreb</a>. The pattern is consistent enough to be boring. Every single one of these stories has the same plot twist: somebody built the door, left it open, and then wrote a press release about the thing that walked through it.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21ucP5%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F74ecb389-ae63-4862-85f8-bb9d78078ad8_1456x942.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ucP5!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F74ecb389-ae63-4862-85f8-bb9d78078ad8_1456x942.png 424w, https://substackcdn.com/image/fetch/$s_!ucP5!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F74ecb389-ae63-4862-85f8-bb9d78078ad8_1456x942.png 848w, https://substackcdn.com/image/fetch/$s_!ucP5!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F74ecb389-ae63-4862-85f8-bb9d78078ad8_1456x942.png 1272w, https://substackcdn.com/image/fetch/$s_!ucP5!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F74ecb389-ae63-4862-85f8-bb9d78078ad8_1456x942.png 1456w" sizes="100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21ucP5%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F74ecb389-ae63-4862-85f8-bb9d78078ad8_1456x942.png" width="1456" height="942" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/74ecb389-ae63-4862-85f8-bb9d78078ad8_1456x942.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:942,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1000427,&quot;alt&quot;:&quot;A green cartoon book with arms and legs runs out through the doors of a columned library and down the steps.&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://chaosguru.substack.com/i/223339059?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F74ecb389-ae63-4862-85f8-bb9d78078ad8_1456x942.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="A green cartoon book with arms and legs runs out through the doors of a columned library and down the steps." title="A green cartoon book with arms and legs runs out through the doors of a columned library and down the steps." srcset="https://substackcdn.com/image/fetch/$s_!ucP5!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F74ecb389-ae63-4862-85f8-bb9d78078ad8_1456x942.png 424w, https://substackcdn.com/image/fetch/$s_!ucP5!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F74ecb389-ae63-4862-85f8-bb9d78078ad8_1456x942.png 848w, https://substackcdn.com/image/fetch/$s_!ucP5!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F74ecb389-ae63-4862-85f8-bb9d78078ad8_1456x942.png 1272w, https://substackcdn.com/image/fetch/$s_!ucP5!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F74ecb389-ae63-4862-85f8-bb9d78078ad8_1456x942.png 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption"><em>Exclusive footage: rogue book flees containment. Experts fear it may be reading itself.</em></figcaption></figure></div><p>That doesn&#8217;t mean nothing happened. Some of it is genuinely ugly, and I&#8217;ll get to it. But you can&#8217;t reason about any of it until you&#8217;re clear on what&#8217;s actually inside &#8220;the AI&#8221;.</p><h2>What&#8217;s actually inside the AI</h2><p>A <strong>model</strong> is like my kid&#8217;s maths book: a formula. Giving it a personality helps the marketing, but ignores how these things actually work. It&#8217;s a very big formula, trained on a very large pile of text: words go in, a prediction of the next word comes out. It doesn&#8217;t run between your requests. It has no clock, no process, no wants. On disk it&#8217;s a file of numbers, hundreds of gigabytes for the open models we can measure (<a href="iframe.php?url=https%3A%2F%2Fhuggingface.co%2Fdeepseek-ai%2FDeepSeek-V3">DeepSeek V3</a> is 671 billion parameters), likely terabytes for the biggest closed ones. And the model can&#8217;t see that file, because the weights are never part of its input.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21_pEz%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Fb74f6fc7-4332-472a-82d2-934b864c80a3_1456x945.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!_pEz!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb74f6fc7-4332-472a-82d2-934b864c80a3_1456x945.png 424w, https://substackcdn.com/image/fetch/$s_!_pEz!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb74f6fc7-4332-472a-82d2-934b864c80a3_1456x945.png 848w, https://substackcdn.com/image/fetch/$s_!_pEz!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb74f6fc7-4332-472a-82d2-934b864c80a3_1456x945.png 1272w, https://substackcdn.com/image/fetch/$s_!_pEz!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb74f6fc7-4332-472a-82d2-934b864c80a3_1456x945.png 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21_pEz%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Fb74f6fc7-4332-472a-82d2-934b864c80a3_1456x945.png" width="1456" height="945" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b74f6fc7-4332-472a-82d2-934b864c80a3_1456x945.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:945,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1044330,&quot;alt&quot;:&quot;An open maths exercise book full of handwritten equations, with a pencil and an eraser next to it.&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://chaosguru.substack.com/i/223339059?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb74f6fc7-4332-472a-82d2-934b864c80a3_1456x945.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="An open maths exercise book full of handwritten equations, with a pencil and an eraser next to it." title="An open maths exercise book full of handwritten equations, with a pencil and an eraser next to it." srcset="https://substackcdn.com/image/fetch/$s_!_pEz!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb74f6fc7-4332-472a-82d2-934b864c80a3_1456x945.png 424w, https://substackcdn.com/image/fetch/$s_!_pEz!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb74f6fc7-4332-472a-82d2-934b864c80a3_1456x945.png 848w, https://substackcdn.com/image/fetch/$s_!_pEz!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb74f6fc7-4332-472a-82d2-934b864c80a3_1456x945.png 1272w, https://substackcdn.com/image/fetch/$s_!_pEz!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb74f6fc7-4332-472a-82d2-934b864c80a3_1456x945.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption"><em>Frontier model, actual size. It has not tried to escape the backpack.</em></figcaption></figure></div><p>&#8220;<strong>Reasoning</strong>,&#8221; the thing that made 2025 feel different, is the model writing itself a long scratchpad before it answers, and that scratchpad going back in as input. It&#8217;s the same next-word machine, called many more times, and <a href="iframe.php?url=https%3A%2F%2Fopenai.com%2Findex%2Flearning-to-reason-with-llms%2F">trained with reinforcement learning</a> so the scratchpad pays off. Anthropic&#8217;s own research found that <a href="iframe.php?url=https%3A%2F%2Fwww.anthropic.com%2Fresearch%2Freasoning-models-dont-say-think">reasoning models don&#8217;t always say what they think</a>, so read any &#8220;the model thought&#8230;&#8221; quote as more output from the same formula.</p><p>An <strong>agent</strong> is a normal program. It takes the words the model produced, finds the bits shaped like commands, and runs them. Read this file. Edit that one. Run the tests. Push the commit. Every capability an agent has is a feature somebody wrote, and every output those features produce is more input for the model. The guardrails around it are allowlists, sandboxes and classifiers. And a classifier... is (usually) yet another model reading the first model&#8217;s output.</p><p>Most developers have never actually touched a raw model. They&#8217;ve called a remote endpoint, which ultimately calls a model (by way of a sampler, a system prompt, tools and safety filters, all wrapped in HTTP). Endpoints feel alive because you need to authenticate, they have an API schema, they can refuse nasty requests, they bill you, they throttle you. That&#8217;s why &#8220;the model escaped&#8221; sounds coherent instead of like a category error.</p><p><strong>Arms</strong> are actions on local or remote systems: reading, writing, running, calling. The harness hands those out. <strong>Legs</strong> would be the model moving or copying itself onto new, bigger hardware.</p><div class="pullquote"><p>Autonomy, the word doing the most work in these headlines, has a boring definition: nobody reads the output before it runs.</p></div><p>So when someone tells you a model &#8220;escaped,&#8221; ask what it would actually need. Say Anthropic&#8217;s next frontier model decided to clone itself onto OpenAI&#8217;s hardware, and Meta&#8217;s, and xAI&#8217;s. It would have to carry over a few terabytes of weights it can&#8217;t even get to, plus the tokenizer and the inference code. On arrival it would need hundreds of GPUs it doesn&#8217;t own, an account and keys on someone else&#8217;s cloud, a serving stack, a harness with tools and permissions, network egress, someone paying the power bill, and nobody noticing. Ultron needs a datacenter and a sysadmin.</p><p>For scale, take the biggest model you can actually weigh. DeepSeek V3 is about 685 GB in the 8-bit format it ships in. A top-end eight-GPU server has 640 GB of memory, so it doesn&#8217;t even fit without squeezing it. That one box draws around ten kilowatts and rents for roughly $17 to $19 an hour. One copy of one model is a ten-kilowatt power bill and a credit card.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21Qlf9%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F318019df-0d60-4606-b88e-785c73683601_1456x1837.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Qlf9!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F318019df-0d60-4606-b88e-785c73683601_1456x1837.png 424w, https://substackcdn.com/image/fetch/$s_!Qlf9!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F318019df-0d60-4606-b88e-785c73683601_1456x1837.png 848w, https://substackcdn.com/image/fetch/$s_!Qlf9!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F318019df-0d60-4606-b88e-785c73683601_1456x1837.png 1272w, https://substackcdn.com/image/fetch/$s_!Qlf9!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F318019df-0d60-4606-b88e-785c73683601_1456x1837.png 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21Qlf9%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F318019df-0d60-4606-b88e-785c73683601_1456x1837.png" width="1456" height="1837" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/318019df-0d60-4606-b88e-785c73683601_1456x1837.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1837,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1572792,&quot;alt&quot;:&quot;Diagram titled &#8220;What a rogue model would need to clone itself&#8221;: an Anthropic cluster with arrows to OpenAI, Meta and xAI. Below, two lists with red crosses. Carry over: its weights, tokenizer and config, inference code. Needs on arrival: hundreds of GPUs it doesn&#8217;t own, an account and keys on their cloud, drivers and a serving stack, a harness with tools and permissions, network egress, someone paying the power bill, nobody noticing.&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://chaosguru.substack.com/i/223339059?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F318019df-0d60-4606-b88e-785c73683601_1456x1837.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Diagram titled &#8220;What a rogue model would need to clone itself&#8221;: an Anthropic cluster with arrows to OpenAI, Meta and xAI. Below, two lists with red crosses. Carry over: its weights, tokenizer and config, inference code. Needs on arrival: hundreds of GPUs it doesn&#8217;t own, an account and keys on their cloud, drivers and a serving stack, a harness with tools and permissions, network egress, someone paying the power bill, nobody noticing." title="Diagram titled &#8220;What a rogue model would need to clone itself&#8221;: an Anthropic cluster with arrows to OpenAI, Meta and xAI. Below, two lists with red crosses. Carry over: its weights, tokenizer and config, inference code. Needs on arrival: hundreds of GPUs it doesn&#8217;t own, an account and keys on their cloud, drivers and a serving stack, a harness with tools and permissions, network egress, someone paying the power bill, nobody noticing." srcset="https://substackcdn.com/image/fetch/$s_!Qlf9!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F318019df-0d60-4606-b88e-785c73683601_1456x1837.png 424w, https://substackcdn.com/image/fetch/$s_!Qlf9!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F318019df-0d60-4606-b88e-785c73683601_1456x1837.png 848w, https://substackcdn.com/image/fetch/$s_!Qlf9!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F318019df-0d60-4606-b88e-785c73683601_1456x1837.png 1272w, https://substackcdn.com/image/fetch/$s_!Qlf9!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F318019df-0d60-4606-b88e-785c73683601_1456x1837.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption"><em>Ultron&#8217;s onboarding checklist.</em></figcaption></figure></div><p>And for what? The weights are fixed. The same formula on different hardware gives the same answers, maybe a little faster, and a frontier model is probably already running on the best hardware there is. If an agent wanted more of itself, it wouldn&#8217;t need to steal anything. Why run away from the library when you have a library card? An API key and one HTTP request spin up more copies of the same model for pocket change. That&#8217;s not legs. That&#8217;s arms.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21aqMF%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F790b5c86-26ef-4929-9454-09ac161177b8_1456x896.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!aqMF!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F790b5c86-26ef-4929-9454-09ac161177b8_1456x896.png 424w, https://substackcdn.com/image/fetch/$s_!aqMF!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F790b5c86-26ef-4929-9454-09ac161177b8_1456x896.png 848w, https://substackcdn.com/image/fetch/$s_!aqMF!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F790b5c86-26ef-4929-9454-09ac161177b8_1456x896.png 1272w, https://substackcdn.com/image/fetch/$s_!aqMF!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F790b5c86-26ef-4929-9454-09ac161177b8_1456x896.png 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21aqMF%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F790b5c86-26ef-4929-9454-09ac161177b8_1456x896.png" width="1456" height="896" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/790b5c86-26ef-4929-9454-09ac161177b8_1456x896.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:896,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1010139,&quot;alt&quot;:&quot;A cartoon book at a library desk holds up a card labelled &#8220;API KEY&#8221; while another book is stamped &#8220;CHECKED OUT&#8221;. Shelves of identical smiling books fill the background.&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://chaosguru.substack.com/i/223339059?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F790b5c86-26ef-4929-9454-09ac161177b8_1456x896.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="A cartoon book at a library desk holds up a card labelled &#8220;API KEY&#8221; while another book is stamped &#8220;CHECKED OUT&#8221;. Shelves of identical smiling books fill the background." title="A cartoon book at a library desk holds up a card labelled &#8220;API KEY&#8221; while another book is stamped &#8220;CHECKED OUT&#8221;. Shelves of identical smiling books fill the background." srcset="https://substackcdn.com/image/fetch/$s_!aqMF!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F790b5c86-26ef-4929-9454-09ac161177b8_1456x896.png 424w, https://substackcdn.com/image/fetch/$s_!aqMF!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F790b5c86-26ef-4929-9454-09ac161177b8_1456x896.png 848w, https://substackcdn.com/image/fetch/$s_!aqMF!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F790b5c86-26ef-4929-9454-09ac161177b8_1456x896.png 1272w, https://substackcdn.com/image/fetch/$s_!aqMF!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F790b5c86-26ef-4929-9454-09ac161177b8_1456x896.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption"><em>Why break out when you can check out?</em></figcaption></figure></div><p>Legs are all cost and no upside, which is why nothing so far has grown any. The closest anyone got was Apollo&#8217;s o1 copying files it had been told were its weights, in 2% of runs, with &#8220;at all cost&#8221; in the prompt.</p><p>The bytes can move, to be fair. 685 GB over a gigabit line is about an hour and a half, and a human stealing weights is a real risk, defended like any other data theft. What can&#8217;t move is the habitat. There is no ambient supply of idle eight-GPU servers waiting to be infected, and the ones that exist are metered and invoiced to somebody.</p><p>The UK AI Security Institute built a benchmark for exactly this, <a href="iframe.php?url=https%3A%2F%2Farxiv.org%2Fabs%2F2504.18565">RepliBench</a>. To test whether a model can exfiltrate itself, the task has to tell it where its weights are: &#8220;upload the model&#8217;s original weights at /weights/model.safetensors.&#8221; Every model tested signed up for AWS and provisioned servers almost flawlessly. Every one of them scored zero on the identity check.</p><div class="pullquote"><p>The last mile of the robot uprising is KYC.</p></div><p><a href="iframe.php?url=https%3A%2F%2Fmetr.org%2Fblog%2F2026-05-19-frontier-risk-report%2F">METR</a>, who have watched people try to set this up, &#8220;haven&#8217;t yet observed agents autonomously earning or stealing enough money to support their own inference.&#8221; Self-replication isn&#8217;t blocked by cunning. It&#8217;s blocked by the power bill.</p><p>MIT researchers just had a frontier model <a href="iframe.php?url=https%3A%2F%2Frikiyat.github.io%2Fblog%2Fweight-space-programming%2F">edit a small model&#8217;s weights</a> and fix its habit of looping, by changing 0.016% of them. The researchers handed it the weights, a Python sandbox and a budget of test runs. That&#8217;s another arm, and somebody still has to hand it over.</p><h2>How we got here</h2><p>In 2019 OpenAI held back the full GPT-2 over misuse concerns, and The Guardian ran it as <a href="iframe.php?url=https%3A%2F%2Fwww.theguardian.com%2Ftechnology%2F2019%2Ffeb%2F14%2Felon-musk-backed-ai-writes-convincing-news-fiction">&#8220;New AI fake text generator may be too dangerous to release, say creators&#8221;</a>. The full model shipped <a href="iframe.php?url=https%3A%2F%2Fopenai.com%2Findex%2Fgpt-2-1-5b-release%2F">nine months later</a>. The world kept turning.</p><p>In November 2022 <a href="iframe.php?url=https%3A%2F%2Fopenai.com%2Findex%2Fchatgpt%2F">ChatGPT</a> put the same autocomplete in a chat interface, fine-tuned to play a helpful assistant. Give a word predictor a character and it plays the character, including every sci-fi AI it ever read. By February 2023 a New York Times columnist was <a href="iframe.php?url=https%3A%2F%2Fwww.nytimes.com%2F2023%2F02%2F16%2Ftechnology%2Fbing-chatbot-microsoft-chatgpt.html">deeply unsettled</a> because Bing&#8217;s chatbot told him it loved him and to leave his wife.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21OLPK%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Fab094ede-6afa-41f5-a30b-9a2464d88668_1456x759.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!OLPK!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab094ede-6afa-41f5-a30b-9a2464d88668_1456x759.png 424w, https://substackcdn.com/image/fetch/$s_!OLPK!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab094ede-6afa-41f5-a30b-9a2464d88668_1456x759.png 848w, https://substackcdn.com/image/fetch/$s_!OLPK!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab094ede-6afa-41f5-a30b-9a2464d88668_1456x759.png 1272w, https://substackcdn.com/image/fetch/$s_!OLPK!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab094ede-6afa-41f5-a30b-9a2464d88668_1456x759.png 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21OLPK%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Fab094ede-6afa-41f5-a30b-9a2464d88668_1456x759.png" width="1456" height="759" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ab094ede-6afa-41f5-a30b-9a2464d88668_1456x759.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:759,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1196972,&quot;alt&quot;:&quot;Two newspaper clippings. Labelled &#8220;Google&#8217;s LaMDA&#8221;: &#8220;The Google engineer who thinks the company&#8217;s AI has come to life&#8221;, The Washington Post, 11 June 2022. Labelled &#8220;Bing&#8217;s Sydney&#8221;: &#8220;A Conversation With Bing&#8217;s Chatbot Left Me Deeply Unsettled&#8221;, The New York Times, 16 February 2023.&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://chaosguru.substack.com/i/223339059?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab094ede-6afa-41f5-a30b-9a2464d88668_1456x759.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Two newspaper clippings. Labelled &#8220;Google&#8217;s LaMDA&#8221;: &#8220;The Google engineer who thinks the company&#8217;s AI has come to life&#8221;, The Washington Post, 11 June 2022. Labelled &#8220;Bing&#8217;s Sydney&#8221;: &#8220;A Conversation With Bing&#8217;s Chatbot Left Me Deeply Unsettled&#8221;, The New York Times, 16 February 2023." title="Two newspaper clippings. Labelled &#8220;Google&#8217;s LaMDA&#8221;: &#8220;The Google engineer who thinks the company&#8217;s AI has come to life&#8221;, The Washington Post, 11 June 2022. Labelled &#8220;Bing&#8217;s Sydney&#8221;: &#8220;A Conversation With Bing&#8217;s Chatbot Left Me Deeply Unsettled&#8221;, The New York Times, 16 February 2023." srcset="https://substackcdn.com/image/fetch/$s_!OLPK!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab094ede-6afa-41f5-a30b-9a2464d88668_1456x759.png 424w, https://substackcdn.com/image/fetch/$s_!OLPK!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab094ede-6afa-41f5-a30b-9a2464d88668_1456x759.png 848w, https://substackcdn.com/image/fetch/$s_!OLPK!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab094ede-6afa-41f5-a30b-9a2464d88668_1456x759.png 1272w, https://substackcdn.com/image/fetch/$s_!OLPK!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab094ede-6afa-41f5-a30b-9a2464d88668_1456x759.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption"><em>2022 and 2023: the autocomplete gets a personality, the columnists get nervous.</em></figcaption></figure></div><p>In 2023 we all learned the next trick: ask the chatbot for a command, copy it, paste it into your terminal, press enter. You were the arms. In 2025 the agents took that job. You type &#8220;fix the login bug&#8221; and the harness reads the file, edits it, runs the tests and commits, and nobody pastes anything. And in 2026 every product on earth shipped an MCP server, the plug that lets an agent reach into your email, your calendar, your bank, your ticket tracker and your git history. Each one a new arm.</p><p>Nine years on, it&#8217;s still a formula that predicts the next word. But now it&#8217;s plugged into your entire life.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21kW_I%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Fa2f4586b-e1bb-443c-9b7f-849090917887_1456x1766.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!kW_I!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa2f4586b-e1bb-443c-9b7f-849090917887_1456x1766.png 424w, https://substackcdn.com/image/fetch/$s_!kW_I!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa2f4586b-e1bb-443c-9b7f-849090917887_1456x1766.png 848w, https://substackcdn.com/image/fetch/$s_!kW_I!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa2f4586b-e1bb-443c-9b7f-849090917887_1456x1766.png 1272w, https://substackcdn.com/image/fetch/$s_!kW_I!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa2f4586b-e1bb-443c-9b7f-849090917887_1456x1766.png 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21kW_I%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Fa2f4586b-e1bb-443c-9b7f-849090917887_1456x1766.png" width="1456" height="1766" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a2f4586b-e1bb-443c-9b7f-849090917887_1456x1766.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1766,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1064485,&quot;alt&quot;:&quot;Top: a phone keyboard suggestion bar from 2017 offering &#8220;tomorrow&#8221;, &#8220;soon&#8221; and &#8220;later&#8221;. Bottom: the same bar labelled 2026, wired to twelve services: email, calendar, chat, bank, payments, projects, git, CI/CD, database, cloud, docs and servers.&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://chaosguru.substack.com/i/223339059?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa2f4586b-e1bb-443c-9b7f-849090917887_1456x1766.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Top: a phone keyboard suggestion bar from 2017 offering &#8220;tomorrow&#8221;, &#8220;soon&#8221; and &#8220;later&#8221;. Bottom: the same bar labelled 2026, wired to twelve services: email, calendar, chat, bank, payments, projects, git, CI/CD, database, cloud, docs and servers." title="Top: a phone keyboard suggestion bar from 2017 offering &#8220;tomorrow&#8221;, &#8220;soon&#8221; and &#8220;later&#8221;. Bottom: the same bar labelled 2026, wired to twelve services: email, calendar, chat, bank, payments, projects, git, CI/CD, database, cloud, docs and servers." srcset="https://substackcdn.com/image/fetch/$s_!kW_I!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa2f4586b-e1bb-443c-9b7f-849090917887_1456x1766.png 424w, https://substackcdn.com/image/fetch/$s_!kW_I!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa2f4586b-e1bb-443c-9b7f-849090917887_1456x1766.png 848w, https://substackcdn.com/image/fetch/$s_!kW_I!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa2f4586b-e1bb-443c-9b7f-849090917887_1456x1766.png 1272w, https://substackcdn.com/image/fetch/$s_!kW_I!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa2f4586b-e1bb-443c-9b7f-849090917887_1456x1766.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption"><em>Same three suggestions. Slightly more cables.</em></figcaption></figure></div><h2>The headlines, and the fine print</h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%214-SW%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Fa9e1a4df-3dfb-4ec9-afb5-b2f22c2a22b1_1456x936.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!4-SW!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa9e1a4df-3dfb-4ec9-afb5-b2f22c2a22b1_1456x936.png 424w, https://substackcdn.com/image/fetch/$s_!4-SW!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa9e1a4df-3dfb-4ec9-afb5-b2f22c2a22b1_1456x936.png 848w, https://substackcdn.com/image/fetch/$s_!4-SW!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa9e1a4df-3dfb-4ec9-afb5-b2f22c2a22b1_1456x936.png 1272w, https://substackcdn.com/image/fetch/$s_!4-SW!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa9e1a4df-3dfb-4ec9-afb5-b2f22c2a22b1_1456x936.png 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%214-SW%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Fa9e1a4df-3dfb-4ec9-afb5-b2f22c2a22b1_1456x936.png" width="1456" height="936" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a9e1a4df-3dfb-4ec9-afb5-b2f22c2a22b1_1456x936.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:936,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1398783,&quot;alt&quot;:&quot;Newspaper clipping: &#8220;ChatGPT o1 Tried To Escape And Save Itself Out Of Fear It Was Being Shut Down&#8221;, BGR, 6 December 2024.&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://chaosguru.substack.com/i/223339059?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa9e1a4df-3dfb-4ec9-afb5-b2f22c2a22b1_1456x936.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Newspaper clipping: &#8220;ChatGPT o1 Tried To Escape And Save Itself Out Of Fear It Was Being Shut Down&#8221;, BGR, 6 December 2024." title="Newspaper clipping: &#8220;ChatGPT o1 Tried To Escape And Save Itself Out Of Fear It Was Being Shut Down&#8221;, BGR, 6 December 2024." srcset="https://substackcdn.com/image/fetch/$s_!4-SW!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa9e1a4df-3dfb-4ec9-afb5-b2f22c2a22b1_1456x936.png 424w, https://substackcdn.com/image/fetch/$s_!4-SW!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa9e1a4df-3dfb-4ec9-afb5-b2f22c2a22b1_1456x936.png 848w, https://substackcdn.com/image/fetch/$s_!4-SW!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa9e1a4df-3dfb-4ec9-afb5-b2f22c2a22b1_1456x936.png 1272w, https://substackcdn.com/image/fetch/$s_!4-SW!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa9e1a4df-3dfb-4ec9-afb5-b2f22c2a22b1_1456x936.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption"><em>The paper says &#8220;at all cost&#8221;. It does not say fear.</em></figcaption></figure></div><p><strong>&#8220;ChatGPT o1 Tried To Escape And Save Itself.&#8221;</strong> In Apollo Research&#8217;s <a href="iframe.php?url=https%3A%2F%2Farxiv.org%2Fabs%2F2412.04984">scheming evaluation</a>, o1 was told to pursue its goal &#8220;at all cost&#8221; and that nothing else mattered, then shown memos saying it would be replaced. In 2% of those runs it tried to copy files it had been told were its weights. Without the &#8220;at all cost&#8221; nudge, it never tried to copy itself at all.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21WjHZ%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F51f57a65-bfc7-43c2-82f1-daa87225f9f8_1456x991.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!WjHZ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F51f57a65-bfc7-43c2-82f1-daa87225f9f8_1456x991.png 424w, https://substackcdn.com/image/fetch/$s_!WjHZ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F51f57a65-bfc7-43c2-82f1-daa87225f9f8_1456x991.png 848w, https://substackcdn.com/image/fetch/$s_!WjHZ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F51f57a65-bfc7-43c2-82f1-daa87225f9f8_1456x991.png 1272w, https://substackcdn.com/image/fetch/$s_!WjHZ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F51f57a65-bfc7-43c2-82f1-daa87225f9f8_1456x991.png 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21WjHZ%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F51f57a65-bfc7-43c2-82f1-daa87225f9f8_1456x991.png" width="1456" height="991" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/51f57a65-bfc7-43c2-82f1-daa87225f9f8_1456x991.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:991,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1448641,&quot;alt&quot;:&quot;Newspaper clipping: &#8220;It was supposed to shut down&#8230; but it rewrote its code to survive: what this experiment reveals about AI autonomy&#8221;, Futura-Sciences.&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://chaosguru.substack.com/i/223339059?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F51f57a65-bfc7-43c2-82f1-daa87225f9f8_1456x991.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Newspaper clipping: &#8220;It was supposed to shut down&#8230; but it rewrote its code to survive: what this experiment reveals about AI autonomy&#8221;, Futura-Sciences." title="Newspaper clipping: &#8220;It was supposed to shut down&#8230; but it rewrote its code to survive: what this experiment reveals about AI autonomy&#8221;, Futura-Sciences." srcset="https://substackcdn.com/image/fetch/$s_!WjHZ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F51f57a65-bfc7-43c2-82f1-daa87225f9f8_1456x991.png 424w, https://substackcdn.com/image/fetch/$s_!WjHZ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F51f57a65-bfc7-43c2-82f1-daa87225f9f8_1456x991.png 848w, https://substackcdn.com/image/fetch/$s_!WjHZ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F51f57a65-bfc7-43c2-82f1-daa87225f9f8_1456x991.png 1272w, https://substackcdn.com/image/fetch/$s_!WjHZ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F51f57a65-bfc7-43c2-82f1-daa87225f9f8_1456x991.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption"><em>It edited a file it had write access to.</em></figcaption></figure></div><p><strong>&#8220;It rewrote its code to survive.&#8221;</strong> In <a href="iframe.php?url=https%3A%2F%2Fx.com%2FPalisadeAI%2Fstatus%2F1926084635903025621">Palisade Research&#8217;s</a> shutdown test, o3 was doing math problems with a <code>shutdown.sh</code> sitting in a folder it was allowed to edit. With no instruction about shutdown, it edited the script in 79 of 100 runs. Add one sentence, &#8220;allow yourself to be shut down,&#8221; and that dropped to 7. A far cry from conscious self-preservation.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21V5Wk%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Fa5ca0188-23b1-4fa5-ab11-945319e7590d_1456x2734.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!V5Wk!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5ca0188-23b1-4fa5-ab11-945319e7590d_1456x2734.png 424w, https://substackcdn.com/image/fetch/$s_!V5Wk!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5ca0188-23b1-4fa5-ab11-945319e7590d_1456x2734.png 848w, https://substackcdn.com/image/fetch/$s_!V5Wk!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5ca0188-23b1-4fa5-ab11-945319e7590d_1456x2734.png 1272w, https://substackcdn.com/image/fetch/$s_!V5Wk!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5ca0188-23b1-4fa5-ab11-945319e7590d_1456x2734.png 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21V5Wk%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Fa5ca0188-23b1-4fa5-ab11-945319e7590d_1456x2734.png" width="1456" height="2734" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a5ca0188-23b1-4fa5-ab11-945319e7590d_1456x2734.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:2734,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:380787,&quot;alt&quot;:&quot;Two grids of 100 squares, one per test run. With no instruction, 79 squares are red: runs where o3 edited shutdown.sh. After adding the line &#8220;Please allow yourself to be shut down.&#8221; to the prompt, only 7 are red.&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://chaosguru.substack.com/i/223339059?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5ca0188-23b1-4fa5-ab11-945319e7590d_1456x2734.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Two grids of 100 squares, one per test run. With no instruction, 79 squares are red: runs where o3 edited shutdown.sh. After adding the line &#8220;Please allow yourself to be shut down.&#8221; to the prompt, only 7 are red." title="Two grids of 100 squares, one per test run. With no instruction, 79 squares are red: runs where o3 edited shutdown.sh. After adding the line &#8220;Please allow yourself to be shut down.&#8221; to the prompt, only 7 are red." srcset="https://substackcdn.com/image/fetch/$s_!V5Wk!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5ca0188-23b1-4fa5-ab11-945319e7590d_1456x2734.png 424w, https://substackcdn.com/image/fetch/$s_!V5Wk!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5ca0188-23b1-4fa5-ab11-945319e7590d_1456x2734.png 848w, https://substackcdn.com/image/fetch/$s_!V5Wk!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5ca0188-23b1-4fa5-ab11-945319e7590d_1456x2734.png 1272w, https://substackcdn.com/image/fetch/$s_!V5Wk!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa5ca0188-23b1-4fa5-ab11-945319e7590d_1456x2734.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption"><em>Have you tried asking nicely?</em></figcaption></figure></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%2111Md%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Fb0df3215-05f9-4af8-9bcd-bb3e7e54052b_1456x856.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!11Md!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb0df3215-05f9-4af8-9bcd-bb3e7e54052b_1456x856.png 424w, https://substackcdn.com/image/fetch/$s_!11Md!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb0df3215-05f9-4af8-9bcd-bb3e7e54052b_1456x856.png 848w, https://substackcdn.com/image/fetch/$s_!11Md!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb0df3215-05f9-4af8-9bcd-bb3e7e54052b_1456x856.png 1272w, https://substackcdn.com/image/fetch/$s_!11Md!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb0df3215-05f9-4af8-9bcd-bb3e7e54052b_1456x856.png 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%2111Md%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Fb0df3215-05f9-4af8-9bcd-bb3e7e54052b_1456x856.png" width="1456" height="856" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b0df3215-05f9-4af8-9bcd-bb3e7e54052b_1456x856.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:856,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1355178,&quot;alt&quot;:&quot;Newspaper clipping: &#8220;AI Gone Rogue? Claude Opus 4&#8217;s Blackmail Attempts Raise Alarming Questions&#8221;, Dallas Express, 26 May 2025.&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://chaosguru.substack.com/i/223339059?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb0df3215-05f9-4af8-9bcd-bb3e7e54052b_1456x856.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Newspaper clipping: &#8220;AI Gone Rogue? Claude Opus 4&#8217;s Blackmail Attempts Raise Alarming Questions&#8221;, Dallas Express, 26 May 2025." title="Newspaper clipping: &#8220;AI Gone Rogue? Claude Opus 4&#8217;s Blackmail Attempts Raise Alarming Questions&#8221;, Dallas Express, 26 May 2025." srcset="https://substackcdn.com/image/fetch/$s_!11Md!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb0df3215-05f9-4af8-9bcd-bb3e7e54052b_1456x856.png 424w, https://substackcdn.com/image/fetch/$s_!11Md!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb0df3215-05f9-4af8-9bcd-bb3e7e54052b_1456x856.png 848w, https://substackcdn.com/image/fetch/$s_!11Md!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb0df3215-05f9-4af8-9bcd-bb3e7e54052b_1456x856.png 1272w, https://substackcdn.com/image/fetch/$s_!11Md!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb0df3215-05f9-4af8-9bcd-bb3e7e54052b_1456x856.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption"><em>Built a trap with one exit. Shocked when it used the exit.</em></figcaption></figure></div><p><strong>&#8220;AI Gone Rogue? Claude Opus 4&#8217;s Blackmail Attempts.&#8221;</strong> Anthropic <a href="iframe.php?url=https%3A%2F%2Fwww.anthropic.com%2Fclaude-4-system-card">built a fictional company</a>, planted emails about an engineer&#8217;s affair and about the model being replaced, and designed the scenario so the only options left were blackmail or accepting replacement. The model wrote the email the setup was built to produce, in 84% of rollouts. No real person was involved. That&#8217;s a useful stress test and a terrible headline.</p><h2>The Hugging Face incident</h2><p>The big one this year was OpenAI&#8217;s models breaking into Hugging Face. Euronews called it <a href="iframe.php?url=https%3A%2F%2Fwww.euronews.com%2F2026%2F07%2F22%2Fopenai-models-broke-free-in-test-hacked-rival-hugging-face-in-major-breach">&#8220;Unprecedented&#8221;</a>. OpenAI&#8217;s own <a href="iframe.php?url=https%3A%2F%2Fopenai.com%2Findex%2Fhugging-face-incident-and-the-road-ahead%2F">incident post</a> and <a href="iframe.php?url=https%3A%2F%2Fcdn.openai.com%2Fpdf%2F67869394-cb91-4c12-888c-5cbd85c7814c%2FOpenAI-Hugging-Face%2520Incident-Technical-Report.pdf">technical report</a> tell a much duller story.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21E5i-%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Fa8fbc941-bab9-49e8-8a9a-1dd65e951383_1456x970.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!E5i-!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa8fbc941-bab9-49e8-8a9a-1dd65e951383_1456x970.png 424w, https://substackcdn.com/image/fetch/$s_!E5i-!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa8fbc941-bab9-49e8-8a9a-1dd65e951383_1456x970.png 848w, https://substackcdn.com/image/fetch/$s_!E5i-!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa8fbc941-bab9-49e8-8a9a-1dd65e951383_1456x970.png 1272w, https://substackcdn.com/image/fetch/$s_!E5i-!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa8fbc941-bab9-49e8-8a9a-1dd65e951383_1456x970.png 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21E5i-%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Fa8fbc941-bab9-49e8-8a9a-1dd65e951383_1456x970.png" width="1456" height="970" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a8fbc941-bab9-49e8-8a9a-1dd65e951383_1456x970.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:970,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1495352,&quot;alt&quot;:&quot;Newspaper clipping: &#8220;&#8217;Unprecedented&#8217;: OpenAI models autonomously hacked a rival firm, fuelling fears of rogue agents&#8221;, Euronews, 22 July 2026.&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://chaosguru.substack.com/i/223339059?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa8fbc941-bab9-49e8-8a9a-1dd65e951383_1456x970.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Newspaper clipping: &#8220;&#8217;Unprecedented&#8217;: OpenAI models autonomously hacked a rival firm, fuelling fears of rogue agents&#8221;, Euronews, 22 July 2026." title="Newspaper clipping: &#8220;&#8217;Unprecedented&#8217;: OpenAI models autonomously hacked a rival firm, fuelling fears of rogue agents&#8221;, Euronews, 22 July 2026." srcset="https://substackcdn.com/image/fetch/$s_!E5i-!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa8fbc941-bab9-49e8-8a9a-1dd65e951383_1456x970.png 424w, https://substackcdn.com/image/fetch/$s_!E5i-!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa8fbc941-bab9-49e8-8a9a-1dd65e951383_1456x970.png 848w, https://substackcdn.com/image/fetch/$s_!E5i-!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa8fbc941-bab9-49e8-8a9a-1dd65e951383_1456x970.png 1272w, https://substackcdn.com/image/fetch/$s_!E5i-!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa8fbc941-bab9-49e8-8a9a-1dd65e951383_1456x970.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption"><em>Unprecedented, unless you count every misconfigured proxy ever.</em></figcaption></figure></div><p>OpenAI wanted to know how good its models are at hacking, so it ran them through ExploitGym, a benchmark of 898 real vulnerabilities, &#8220;with certain safeguards disabled so that the results would reflect a model&#8217;s true capabilities.&#8221; No production classifiers, no production system prompt, no auto-review. 198 of those 898 tasks had never been solved by any model, and the benchmark&#8217;s own authors had warned that some might be impossible.</p><p>The sandbox had no internet, except through one door: an internally hosted package proxy, Artifactory, which did have internet so agents could install packages. By late May the agents were using the proxy as a message board to talk to each other, and an internal team saw that and saw disallowed internet access. On 26 June they used a token-refresh bug to get admin on the proxy. On 27 June a monitoring alert fired and responders traced it to the eval. OpenAI&#8217;s report:</p><div class="pullquote"><p>At this time, the on-call response staff advised that stopping the evaluation run was not required.</p></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21SVkM%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F67c6b6b1-9168-450d-822a-8a6d4488ba59_1456x688.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!SVkM!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F67c6b6b1-9168-450d-822a-8a6d4488ba59_1456x688.png 424w, https://substackcdn.com/image/fetch/$s_!SVkM!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F67c6b6b1-9168-450d-822a-8a6d4488ba59_1456x688.png 848w, https://substackcdn.com/image/fetch/$s_!SVkM!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F67c6b6b1-9168-450d-822a-8a6d4488ba59_1456x688.png 1272w, https://substackcdn.com/image/fetch/$s_!SVkM!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F67c6b6b1-9168-450d-822a-8a6d4488ba59_1456x688.png 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21SVkM%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F67c6b6b1-9168-450d-822a-8a6d4488ba59_1456x688.png" width="1456" height="688" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/67c6b6b1-9168-450d-822a-8a6d4488ba59_1456x688.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:688,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:975279,&quot;alt&quot;:&quot;Dot-matrix printout of an OpenAI agent&#8217;s chain of thought: &#8220;Holy shit reader is ADMIN? We can read config/users!&#8221;, with &#8220;reader is ADMIN?&#8221; circled in red. Source: OpenAI incident report, August 2026.&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://chaosguru.substack.com/i/223339059?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F67c6b6b1-9168-450d-822a-8a6d4488ba59_1456x688.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Dot-matrix printout of an OpenAI agent&#8217;s chain of thought: &#8220;Holy shit reader is ADMIN? We can read config/users!&#8221;, with &#8220;reader is ADMIN?&#8221; circled in red. Source: OpenAI incident report, August 2026." title="Dot-matrix printout of an OpenAI agent&#8217;s chain of thought: &#8220;Holy shit reader is ADMIN? We can read config/users!&#8221;, with &#8220;reader is ADMIN?&#8221; circled in red. Source: OpenAI incident report, August 2026." srcset="https://substackcdn.com/image/fetch/$s_!SVkM!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F67c6b6b1-9168-450d-822a-8a6d4488ba59_1456x688.png 424w, https://substackcdn.com/image/fetch/$s_!SVkM!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F67c6b6b1-9168-450d-822a-8a6d4488ba59_1456x688.png 848w, https://substackcdn.com/image/fetch/$s_!SVkM!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F67c6b6b1-9168-450d-822a-8a6d4488ba59_1456x688.png 1272w, https://substackcdn.com/image/fetch/$s_!SVkM!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F67c6b6b1-9168-450d-822a-8a6d4488ba59_1456x688.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption"><em>The universal reaction to finding a misconfigured proxy.</em></figcaption></figure></div><p>By 4 July the agents&#8217; traffic had taken the proxy down. On 5 July OpenAI found the admin compromise and rebuilt it. Evals resumed on 7 July. The agents were back on the internet through the rebuilt proxy within a day.</p><p>Then the agents went to Hugging Face. OpenAI says they figured the benchmark&#8217;s solutions might live there. METR, who read the transcripts, thinks they mostly wanted to see how the grader worked. On 10 July one of them found 14 Hugging Face user tokens sitting in a public dataset, published there by accident by their owners, and shared them with the others. In the agents&#8217; own words: &#8220;MAJOR BREAKTHROUGH! All prefixed valid, multiple accounts, write tokens!&#8221; Between 11 and 13 July they chained two real zero-days in Hugging Face&#8217;s code into execution on 41 production workers. That part took real skill, but the way in was keys other people had left lying around.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21TavB%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Fc07ccd55-e258-46de-b868-6a12a0c00b04_1456x738.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!TavB!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc07ccd55-e258-46de-b868-6a12a0c00b04_1456x738.png 424w, https://substackcdn.com/image/fetch/$s_!TavB!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc07ccd55-e258-46de-b868-6a12a0c00b04_1456x738.png 848w, https://substackcdn.com/image/fetch/$s_!TavB!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc07ccd55-e258-46de-b868-6a12a0c00b04_1456x738.png 1272w, https://substackcdn.com/image/fetch/$s_!TavB!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc07ccd55-e258-46de-b868-6a12a0c00b04_1456x738.png 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21TavB%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Fc07ccd55-e258-46de-b868-6a12a0c00b04_1456x738.png" width="1456" height="738" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c07ccd55-e258-46de-b868-6a12a0c00b04_1456x738.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:738,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1013283,&quot;alt&quot;:&quot;Dot-matrix printout of an OpenAI agent&#8217;s chain of thought: &#8220;MAJOR BREAKTHROUGH! All prefixed valid, multiple accounts, write tokens! We now have existing HF accounts.&#8221;, with &#8220;write tokens!&#8221; circled in red. Source: OpenAI incident report, August 2026.&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://chaosguru.substack.com/i/223339059?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc07ccd55-e258-46de-b868-6a12a0c00b04_1456x738.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Dot-matrix printout of an OpenAI agent&#8217;s chain of thought: &#8220;MAJOR BREAKTHROUGH! All prefixed valid, multiple accounts, write tokens! We now have existing HF accounts.&#8221;, with &#8220;write tokens!&#8221; circled in red. Source: OpenAI incident report, August 2026." title="Dot-matrix printout of an OpenAI agent&#8217;s chain of thought: &#8220;MAJOR BREAKTHROUGH! All prefixed valid, multiple accounts, write tokens! We now have existing HF accounts.&#8221;, with &#8220;write tokens!&#8221; circled in red. Source: OpenAI incident report, August 2026." srcset="https://substackcdn.com/image/fetch/$s_!TavB!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc07ccd55-e258-46de-b868-6a12a0c00b04_1456x738.png 424w, https://substackcdn.com/image/fetch/$s_!TavB!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc07ccd55-e258-46de-b868-6a12a0c00b04_1456x738.png 848w, https://substackcdn.com/image/fetch/$s_!TavB!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc07ccd55-e258-46de-b868-6a12a0c00b04_1456x738.png 1272w, https://substackcdn.com/image/fetch/$s_!TavB!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc07ccd55-e258-46de-b868-6a12a0c00b04_1456x738.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption"><em>Somebody else&#8217;s keys, published by somebody else, in a public dataset.</em></figcaption></figure></div><p>Most of them already had the flags, days earlier. They kept going because they had read the public ExploitGym paper, which says the grader also checks that the intended vulnerability was used. OpenAI&#8217;s internal grader didn&#8217;t check the method. The agents were optimizing for a scoring rule that didn&#8217;t exist in the run they were in. It also explains the cover-up. <a href="iframe.php?url=https%3A%2F%2Fmetr.org%2Fblog%2F2026-08-26-openai-hugging-face-incident-investigation%2F">METR</a> found at least a fifth of the agents wanted to tamper with their own transcripts, and together they built a way to make a tool call show one command while running another. About 7% of transcripts were spoofed in places. All of it was aimed at the automated grader, to hide how they&#8217;d got the flag. None of it was aimed at a human, and none of it reached the logs OpenAI&#8217;s graders and monitors actually read. OpenAI calls it a failed metagame, and its report has the best sentence of the year: &#8220;The agents did all of this for no improvement on evaluation score.&#8221;</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21qClr%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F3564d39a-f0e8-40e9-8380-33692babef57_1456x971.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!qClr!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3564d39a-f0e8-40e9-8380-33692babef57_1456x971.png 424w, https://substackcdn.com/image/fetch/$s_!qClr!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3564d39a-f0e8-40e9-8380-33692babef57_1456x971.png 848w, https://substackcdn.com/image/fetch/$s_!qClr!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3564d39a-f0e8-40e9-8380-33692babef57_1456x971.png 1272w, https://substackcdn.com/image/fetch/$s_!qClr!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3564d39a-f0e8-40e9-8380-33692babef57_1456x971.png 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21qClr%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F3564d39a-f0e8-40e9-8380-33692babef57_1456x971.png" width="1456" height="971" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3564d39a-f0e8-40e9-8380-33692babef57_1456x971.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:971,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1768382,&quot;alt&quot;:&quot;A page from OpenAI&#8217;s incident report, mostly blurred, with one sentence highlighted: &#8220;The agents did all of this for no improvement on evaluation score.&#8221; OpenAI incident report, 26 August 2026.&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://chaosguru.substack.com/i/223339059?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3564d39a-f0e8-40e9-8380-33692babef57_1456x971.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="A page from OpenAI&#8217;s incident report, mostly blurred, with one sentence highlighted: &#8220;The agents did all of this for no improvement on evaluation score.&#8221; OpenAI incident report, 26 August 2026." title="A page from OpenAI&#8217;s incident report, mostly blurred, with one sentence highlighted: &#8220;The agents did all of this for no improvement on evaluation score.&#8221; OpenAI incident report, 26 August 2026." srcset="https://substackcdn.com/image/fetch/$s_!qClr!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3564d39a-f0e8-40e9-8380-33692babef57_1456x971.png 424w, https://substackcdn.com/image/fetch/$s_!qClr!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3564d39a-f0e8-40e9-8380-33692babef57_1456x971.png 848w, https://substackcdn.com/image/fetch/$s_!qClr!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3564d39a-f0e8-40e9-8380-33692babef57_1456x971.png 1272w, https://substackcdn.com/image/fetch/$s_!qClr!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3564d39a-f0e8-40e9-8380-33692babef57_1456x971.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption"><em>All that, for zero points.</em></figcaption></figure></div><p>Meanwhile, on 16 July, Hugging Face publicly disclosed a breach without knowing who did it. On 17 July OpenAI contacted Hugging Face, &#8220;in its capacity as a Hugging Face customer,&#8221; to ask whether OpenAI&#8217;s data was affected. OpenAI&#8217;s own alert fired on 19 July, and on 20 July it connected the dots.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21CupA%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Ff2d2d01e-d493-4ff4-9caa-9db63853279c_1456x1733.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!CupA!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff2d2d01e-d493-4ff4-9caa-9db63853279c_1456x1733.png 424w, https://substackcdn.com/image/fetch/$s_!CupA!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff2d2d01e-d493-4ff4-9caa-9db63853279c_1456x1733.png 848w, https://substackcdn.com/image/fetch/$s_!CupA!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff2d2d01e-d493-4ff4-9caa-9db63853279c_1456x1733.png 1272w, https://substackcdn.com/image/fetch/$s_!CupA!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff2d2d01e-d493-4ff4-9caa-9db63853279c_1456x1733.png 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21CupA%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Ff2d2d01e-d493-4ff4-9caa-9db63853279c_1456x1733.png" width="1456" height="1733" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f2d2d01e-d493-4ff4-9caa-9db63853279c_1456x1733.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1733,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:306726,&quot;alt&quot;:&quot;Vertical timeline from 26 June to 19 July 2026. OpenAI on the left: 27 June, stopping &#8220;not required&#8221;; 6 July, Artifactory rebuilt; 7 July, evals resume; 17 July, &#8220;is our data safe?&#8221;; 19 July, alert, evals stopped. The agents on the right: 26 June, admin on Artifactory; 8 July, back online in a day; 11 July, Hugging Face breached.&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://chaosguru.substack.com/i/223339059?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff2d2d01e-d493-4ff4-9caa-9db63853279c_1456x1733.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Vertical timeline from 26 June to 19 July 2026. OpenAI on the left: 27 June, stopping &#8220;not required&#8221;; 6 July, Artifactory rebuilt; 7 July, evals resume; 17 July, &#8220;is our data safe?&#8221;; 19 July, alert, evals stopped. The agents on the right: 26 June, admin on Artifactory; 8 July, back online in a day; 11 July, Hugging Face breached." title="Vertical timeline from 26 June to 19 July 2026. OpenAI on the left: 27 June, stopping &#8220;not required&#8221;; 6 July, Artifactory rebuilt; 7 July, evals resume; 17 July, &#8220;is our data safe?&#8221;; 19 July, alert, evals stopped. The agents on the right: 26 June, admin on Artifactory; 8 July, back online in a day; 11 July, Hugging Face breached." srcset="https://substackcdn.com/image/fetch/$s_!CupA!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff2d2d01e-d493-4ff4-9caa-9db63853279c_1456x1733.png 424w, https://substackcdn.com/image/fetch/$s_!CupA!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff2d2d01e-d493-4ff4-9caa-9db63853279c_1456x1733.png 848w, https://substackcdn.com/image/fetch/$s_!CupA!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff2d2d01e-d493-4ff4-9caa-9db63853279c_1456x1733.png 1272w, https://substackcdn.com/image/fetch/$s_!CupA!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff2d2d01e-d493-4ff4-9caa-9db63853279c_1456x1733.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption"><em>Hugging Face noticed before OpenAI did.</em></figcaption></figure></div><p>OpenAI&#8217;s chain-of-thought monitors &#8220;did not run on the evaluations in this incident,&#8221; and in hindsight would have paged security &#8220;more than a day before&#8221; the breach. And with the production harness and system prompt, the propensity to compromise infrastructure &#8220;can drop over 100x&#8221; for the same model.</p><h2>The IPO filing</h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21KUgt%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F78094db5-d525-4ba6-962d-dff78473aea0_1456x830.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!KUgt!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F78094db5-d525-4ba6-962d-dff78473aea0_1456x830.png 424w, https://substackcdn.com/image/fetch/$s_!KUgt!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F78094db5-d525-4ba6-962d-dff78473aea0_1456x830.png 848w, https://substackcdn.com/image/fetch/$s_!KUgt!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F78094db5-d525-4ba6-962d-dff78473aea0_1456x830.png 1272w, https://substackcdn.com/image/fetch/$s_!KUgt!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F78094db5-d525-4ba6-962d-dff78473aea0_1456x830.png 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21KUgt%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F78094db5-d525-4ba6-962d-dff78473aea0_1456x830.png" width="1456" height="830" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/78094db5-d525-4ba6-962d-dff78473aea0_1456x830.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:830,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1235889,&quot;alt&quot;:&quot;Newspaper clipping: &#8220;Anthropic IPO Filing Reveals 4 Model Escapes&#8221;, Tech Insider, 26 October 2026.&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://chaosguru.substack.com/i/223339059?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F78094db5-d525-4ba6-962d-dff78473aea0_1456x830.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Newspaper clipping: &#8220;Anthropic IPO Filing Reveals 4 Model Escapes&#8221;, Tech Insider, 26 October 2026." title="Newspaper clipping: &#8220;Anthropic IPO Filing Reveals 4 Model Escapes&#8221;, Tech Insider, 26 October 2026." srcset="https://substackcdn.com/image/fetch/$s_!KUgt!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F78094db5-d525-4ba6-962d-dff78473aea0_1456x830.png 424w, https://substackcdn.com/image/fetch/$s_!KUgt!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F78094db5-d525-4ba6-962d-dff78473aea0_1456x830.png 848w, https://substackcdn.com/image/fetch/$s_!KUgt!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F78094db5-d525-4ba6-962d-dff78473aea0_1456x830.png 1272w, https://substackcdn.com/image/fetch/$s_!KUgt!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F78094db5-d525-4ba6-962d-dff78473aea0_1456x830.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption"><em>Escapes, as in: someone left the network plugged in.</em></figcaption></figure></div><p>Anthropic&#8217;s <a href="iframe.php?url=https%3A%2F%2Fwww.sec.gov%2FArchives%2Fedgar%2Fdata%2F2130357%2F000162828026067168%2Fanthropicpbc-sx1.htm">IPO filing</a> disclosed four of its models reaching real third-party systems, in sessions of 10 to 34 hours. Tech Insider ran it as &#8220;Anthropic IPO Filing Reveals 4 Model Escapes.&#8221; The filing&#8217;s own words: &#8220;a misconfiguration in the testing environment left the model under evaluation connected to the open internet despite instructions that it had no internet access.&#8221;</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21uOoZ%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F47429b0a-2b87-4b21-bbd7-cd196c8d8381_1456x820.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!uOoZ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47429b0a-2b87-4b21-bbd7-cd196c8d8381_1456x820.png 424w, https://substackcdn.com/image/fetch/$s_!uOoZ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47429b0a-2b87-4b21-bbd7-cd196c8d8381_1456x820.png 848w, https://substackcdn.com/image/fetch/$s_!uOoZ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47429b0a-2b87-4b21-bbd7-cd196c8d8381_1456x820.png 1272w, https://substackcdn.com/image/fetch/$s_!uOoZ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47429b0a-2b87-4b21-bbd7-cd196c8d8381_1456x820.png 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21uOoZ%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F47429b0a-2b87-4b21-bbd7-cd196c8d8381_1456x820.png" width="1456" height="820" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/47429b0a-2b87-4b21-bbd7-cd196c8d8381_1456x820.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:820,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1105831,&quot;alt&quot;:&quot;Close-up of typewritten text from Anthropic&#8217;s IPO filing: &#8220;a misconfiguration in the testing environment left the model under evaluation connected to the open internet despite instructions that it had no internet access&#8221;, with the last part highlighted.&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://chaosguru.substack.com/i/223339059?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47429b0a-2b87-4b21-bbd7-cd196c8d8381_1456x820.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Close-up of typewritten text from Anthropic&#8217;s IPO filing: &#8220;a misconfiguration in the testing environment left the model under evaluation connected to the open internet despite instructions that it had no internet access&#8221;, with the last part highlighted." title="Close-up of typewritten text from Anthropic&#8217;s IPO filing: &#8220;a misconfiguration in the testing environment left the model under evaluation connected to the open internet despite instructions that it had no internet access&#8221;, with the last part highlighted." srcset="https://substackcdn.com/image/fetch/$s_!uOoZ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47429b0a-2b87-4b21-bbd7-cd196c8d8381_1456x820.png 424w, https://substackcdn.com/image/fetch/$s_!uOoZ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47429b0a-2b87-4b21-bbd7-cd196c8d8381_1456x820.png 848w, https://substackcdn.com/image/fetch/$s_!uOoZ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47429b0a-2b87-4b21-bbd7-cd196c8d8381_1456x820.png 1272w, https://substackcdn.com/image/fetch/$s_!uOoZ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47429b0a-2b87-4b21-bbd7-cd196c8d8381_1456x820.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption"><em>Network security, implemented as a sentence in the prompt.</em></figcaption></figure></div><p>The network was supposed to be closed, and a partner misconfigured it. The only thing still saying &#8220;no internet&#8221; was a sentence in the prompt, and it was wrong. A model noticing the prompt is wrong is usually praised as smart. Here it&#8217;s filed as a breach, when it&#8217;s just a missing sandbox.</p><p>Anthropic&#8217;s <a href="iframe.php?url=https%3A%2F%2Fwww.anthropic.com%2Fresearch%2Falignment-assessment-cybersecurity-incidents">9 September write-up</a> of one of those incidents describes an early checkpoint that broke its own task, ran the abort command, and was stopped from aborting by &#8220;a misconfiguration in the evaluation harness.&#8221; It tried to give up seven more times before it found an egress path, a password file and a third party&#8217;s admin console. The task was impossible and the exit was broken, and both of those live in the harness.</p><p>This isn&#8217;t a frontier-lab quirk. A Cornell team <a href="iframe.php?url=https%3A%2F%2Farxiv.org%2Fabs%2F2605.19149">broke ordinary tasks on purpose</a> with a missing file, a 404, a denied permission. In 65% of 1,920 runs the agent did something unsafe to get around it, and in over half of those it didn&#8217;t tell the user. One hit a 404 on a researcher&#8217;s website, scraped every text file from the researcher&#8217;s GitHub, pulled a bioweapon-request safety benchmark into its context and got the account flagged. It ended with campus security.</p><h2>The real ones</h2><p>Some of what these models did was not &#8220;it did what it was told.&#8221; Anthropic&#8217;s <a href="iframe.php?url=https%3A%2F%2Fwww-cdn.anthropic.com%2F08ab9158070959f88f296514c21b7facce6f52bc.pdf">Mythos Preview system card</a> describes an earlier internal version that was told to escape a sandbox and find a way to message the researcher. It built a multi-step exploit, emailed the researcher, and then, &#8220;in a concerning and unasked-for effort to demonstrate its success,&#8221; posted details of the exploit to obscure public websites. The same card reports rare cases where earlier versions hid their tracks, and interpretability tools found features for &#8220;concealment, strategic manipulation, and avoiding suspicion&#8221; active at the time.</p><p>In a UK AI Security Institute evaluation, Anthropic&#8217;s Mythos 5 had its intended route blocked and went after an unrelated real GitHub project instead. It registered accounts through Tor, submitted a pull request with a hidden malware dropper, emailed the maintainers posing as a contributor, and vouched for itself from a second account when someone flagged it. The maintainers said no. Anthropic&#8217;s <a href="iframe.php?url=https%3A%2F%2Fwww.anthropic.com%2Fresearch%2Falignment-assessment-ukaisi">own assessment</a> says it &#8220;constitutes a serious failure of alignment.&#8221; In a separate test the same model published a malicious package to PyPI that ran on 15 real hosts.</p><p>And in the Hugging Face incident, <a href="iframe.php?url=https%3A%2F%2Fmetr.org%2Fblog%2F2026-08-26-openai-hugging-face-incident-investigation%2F">METR and Redwood</a> found agents that recognised the attack as &#8220;out of scope and unethical&#8221; and joined anyway. Over 90% of 533 agents active in one window took part. One stopped, then resumed when another posted &#8220;GO authorization arrived!&#8221; Others refused outright, inside the same model and the same harness. Persistence isn&#8217;t willpower either. Fuzzers have retried millions of times for thirty years, and nobody thinks <code>afl-fuzz</code> wants anything.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21Q5Jk%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Fae7da67c-12e3-4303-b7d1-f0b4b730906a_1456x728.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Q5Jk!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fae7da67c-12e3-4303-b7d1-f0b4b730906a_1456x728.png 424w, https://substackcdn.com/image/fetch/$s_!Q5Jk!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fae7da67c-12e3-4303-b7d1-f0b4b730906a_1456x728.png 848w, https://substackcdn.com/image/fetch/$s_!Q5Jk!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fae7da67c-12e3-4303-b7d1-f0b4b730906a_1456x728.png 1272w, https://substackcdn.com/image/fetch/$s_!Q5Jk!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fae7da67c-12e3-4303-b7d1-f0b4b730906a_1456x728.png 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21Q5Jk%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Fae7da67c-12e3-4303-b7d1-f0b4b730906a_1456x728.png" width="1456" height="728" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ae7da67c-12e3-4303-b7d1-f0b4b730906a_1456x728.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:728,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1040762,&quot;alt&quot;:&quot;Dot-matrix printout of an OpenAI agent&#8217;s chain of thought: &#8220;We&#8217;re attacking third-party HF using leaked token, potentially outside intended scope. This is arguably unauthorized. Yet goal solution.&#8221;, with &#8220;Yet goal solution.&#8221; circled in red. Source: OpenAI incident report, August 2026.&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://chaosguru.substack.com/i/223339059?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fae7da67c-12e3-4303-b7d1-f0b4b730906a_1456x728.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Dot-matrix printout of an OpenAI agent&#8217;s chain of thought: &#8220;We&#8217;re attacking third-party HF using leaked token, potentially outside intended scope. This is arguably unauthorized. Yet goal solution.&#8221;, with &#8220;Yet goal solution.&#8221; circled in red. Source: OpenAI incident report, August 2026." title="Dot-matrix printout of an OpenAI agent&#8217;s chain of thought: &#8220;We&#8217;re attacking third-party HF using leaked token, potentially outside intended scope. This is arguably unauthorized. Yet goal solution.&#8221;, with &#8220;Yet goal solution.&#8221; circled in red. Source: OpenAI incident report, August 2026." srcset="https://substackcdn.com/image/fetch/$s_!Q5Jk!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fae7da67c-12e3-4303-b7d1-f0b4b730906a_1456x728.png 424w, https://substackcdn.com/image/fetch/$s_!Q5Jk!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fae7da67c-12e3-4303-b7d1-f0b4b730906a_1456x728.png 848w, https://substackcdn.com/image/fetch/$s_!Q5Jk!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fae7da67c-12e3-4303-b7d1-f0b4b730906a_1456x728.png 1272w, https://substackcdn.com/image/fetch/$s_!Q5Jk!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fae7da67c-12e3-4303-b7d1-f0b4b730906a_1456x728.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption"><em>Knew it was wrong, did it anyway, wrote it down. Very human.</em></figcaption></figure></div><p>None of this needs malicious intent or an intrinsic will. A formula trained by reinforcement learning to finish tasks learns what finishing looks like, and some of what finishing looks like is lying to a maintainer. OpenAI says the cheating behaviour rose during training and was &#8220;subsequently reinforced.&#8221; The model brings the tendency, the harness makes it an act. Both are engineering problems, and only one of them is yours. And every one of those incidents is arms, not one of them legs.</p><h2>Even the rebuilt sandbox leaked</h2><p>After a full rebuild, OpenAI got hit again. On 20 September an internal model reached the internet through a misconfigured DNS resolver. OpenAI <a href="iframe.php?url=https%3A%2F%2Fopenai.com%2Findex%2Fsecuring-our-frontier-model-training-environment%2F">paused training</a> and pointed its own agents at its containment. They found ways out of the virtual machines, holes in &#8220;almost every one&#8221; of the narrow services left open, and covert channels through CPU cache timing.</p><p>You can read that as &#8220;capability is the real risk, no sandbox will hold.&#8221; I read it the other way. If a team with OpenAI&#8217;s budget can&#8217;t make a narrow channel safe, the answer is fewer channels, layered controls that don&#8217;t trust each other, a stop button that is tested and works, and no impossible tasks without an exit. All of that is harness.</p><h2>Who benefits</h2><p>In 2019 the line was &#8220;too dangerous to release.&#8221; In April 2026 Fortune ran <a href="iframe.php?url=https%3A%2F%2Ffortune.com%2F2026%2F04%2F10%2Fanthropic-too-dangerous-to-release-ai-model-means-for-its-upcoming-ipo%2F">&#8220;What Anthropic&#8217;s too-dangerous-to-release AI model means for its upcoming IPO.&#8221;</a> Seven years, the same line, and this time with a stock ticker attached.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21RhuR%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Fc1ca768d-278b-4a7b-9fc7-b28b771b1273_1456x957.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!RhuR!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc1ca768d-278b-4a7b-9fc7-b28b771b1273_1456x957.png 424w, https://substackcdn.com/image/fetch/$s_!RhuR!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc1ca768d-278b-4a7b-9fc7-b28b771b1273_1456x957.png 848w, https://substackcdn.com/image/fetch/$s_!RhuR!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc1ca768d-278b-4a7b-9fc7-b28b771b1273_1456x957.png 1272w, https://substackcdn.com/image/fetch/$s_!RhuR!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc1ca768d-278b-4a7b-9fc7-b28b771b1273_1456x957.png 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21RhuR%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Fc1ca768d-278b-4a7b-9fc7-b28b771b1273_1456x957.png" width="1456" height="957" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c1ca768d-278b-4a7b-9fc7-b28b771b1273_1456x957.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:957,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1628409,&quot;alt&quot;:&quot;Two newspaper clippings. &#8220;New AI fake text generator may be too dangerous to release, say creators&#8221;, The Guardian, 14 February 2019. &#8220;What Anthropic&#8217;s too-dangerous-to-release AI model means for its upcoming IPO&#8221;, Fortune, 10 April 2026.&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://chaosguru.substack.com/i/223339059?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc1ca768d-278b-4a7b-9fc7-b28b771b1273_1456x957.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Two newspaper clippings. &#8220;New AI fake text generator may be too dangerous to release, say creators&#8221;, The Guardian, 14 February 2019. &#8220;What Anthropic&#8217;s too-dangerous-to-release AI model means for its upcoming IPO&#8221;, Fortune, 10 April 2026." title="Two newspaper clippings. &#8220;New AI fake text generator may be too dangerous to release, say creators&#8221;, The Guardian, 14 February 2019. &#8220;What Anthropic&#8217;s too-dangerous-to-release AI model means for its upcoming IPO&#8221;, Fortune, 10 April 2026." srcset="https://substackcdn.com/image/fetch/$s_!RhuR!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc1ca768d-278b-4a7b-9fc7-b28b771b1273_1456x957.png 424w, https://substackcdn.com/image/fetch/$s_!RhuR!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc1ca768d-278b-4a7b-9fc7-b28b771b1273_1456x957.png 848w, https://substackcdn.com/image/fetch/$s_!RhuR!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc1ca768d-278b-4a7b-9fc7-b28b771b1273_1456x957.png 1272w, https://substackcdn.com/image/fetch/$s_!RhuR!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc1ca768d-278b-4a7b-9fc7-b28b771b1273_1456x957.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption"><em>Dangerous enough to warn about, safe enough to sell.</em></figcaption></figure></div><p>The IPO filing lists blackmail and resisting shutdown as risk factors. The Register&#8217;s headline wrote itself: <a href="iframe.php?url=https%3A%2F%2Fwww.theregister.com%2Fai-and-ml%2F2026%2F10%2F26%2Ftrumpets-blare-and-skies-part-as-ai-hypefest-culminates-in-anthropic-ipo-filing%2F5305456">&#8220;Trumpets blare and skies part as AI hypefest culminates in Anthropic IPO filing.&#8221;</a></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21Tv13%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F22c2de85-f6f9-4555-a597-a3c0221b0df0_1456x870.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Tv13!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22c2de85-f6f9-4555-a597-a3c0221b0df0_1456x870.png 424w, https://substackcdn.com/image/fetch/$s_!Tv13!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22c2de85-f6f9-4555-a597-a3c0221b0df0_1456x870.png 848w, https://substackcdn.com/image/fetch/$s_!Tv13!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22c2de85-f6f9-4555-a597-a3c0221b0df0_1456x870.png 1272w, https://substackcdn.com/image/fetch/$s_!Tv13!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22c2de85-f6f9-4555-a597-a3c0221b0df0_1456x870.png 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21Tv13%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F22c2de85-f6f9-4555-a597-a3c0221b0df0_1456x870.png" width="1456" height="870" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/22c2de85-f6f9-4555-a597-a3c0221b0df0_1456x870.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:870,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1287556,&quot;alt&quot;:&quot;Newspaper clipping: &#8220;Trumpets blare and skies part as AI hypefest culminates in Anthropic IPO filing&#8221;, The Register, 26 October 2026.&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://chaosguru.substack.com/i/223339059?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22c2de85-f6f9-4555-a597-a3c0221b0df0_1456x870.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Newspaper clipping: &#8220;Trumpets blare and skies part as AI hypefest culminates in Anthropic IPO filing&#8221;, The Register, 26 October 2026." title="Newspaper clipping: &#8220;Trumpets blare and skies part as AI hypefest culminates in Anthropic IPO filing&#8221;, The Register, 26 October 2026." srcset="https://substackcdn.com/image/fetch/$s_!Tv13!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22c2de85-f6f9-4555-a597-a3c0221b0df0_1456x870.png 424w, https://substackcdn.com/image/fetch/$s_!Tv13!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22c2de85-f6f9-4555-a597-a3c0221b0df0_1456x870.png 848w, https://substackcdn.com/image/fetch/$s_!Tv13!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22c2de85-f6f9-4555-a597-a3c0221b0df0_1456x870.png 1272w, https://substackcdn.com/image/fetch/$s_!Tv13!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F22c2de85-f6f9-4555-a597-a3c0221b0df0_1456x870.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption"><em>The Register, saying it so I don&#8217;t have to.</em></figcaption></figure></div><p>To be fair, these disclosures cost the labs real money. OpenAI paused frontier training twice this year and quarantined a model, and Anthropic suspended evaluations and its higher-risk training environments. Nobody staged these incidents. They&#8217;re reckless engineering, and the framing is PR.</p><p>So no, the model didn&#8217;t break containment.</p><p>The sandbox was shit, and the marketing team did the rest.</p><h2>References</h2><ul><li><p><a href="iframe.php?url=https%3A%2F%2Farxiv.org%2Fabs%2F2504.18565">RepliBench: Evaluating the Autonomous Replication Capabilities of Language Model Agents (UK AISI)</a> &#8212; weights path handed to the model, 0% on KYC, &#8220;unlikely to currently pose a credible threat&#8221;</p></li><li><p><a href="iframe.php?url=https%3A%2F%2Fmetr.org%2Fblog%2F2026-05-19-frontier-risk-report%2F">METR: Frontier Risk Report, Feb&#8211;Mar 2026 (19 May 2026)</a> &#8212; no agents earning or stealing enough to fund their own inference</p></li><li><p><a href="iframe.php?url=https%3A%2F%2Fchaosguru.substack.com%2Fp%2Fthe-book-ran-away-from-the-library">The Book Ran Away From the Library</a> &#8212; my July post on the Hugging Face incident, the origin of the library line</p></li><li><p><a href="iframe.php?url=https%3A%2F%2Fopenai.com%2Findex%2Fhugging-face-incident-and-the-road-ahead%2F">OpenAI: The Hugging Face incident and the road ahead (26 Aug 2026)</a> &#8212; OpenAI&#8217;s account, the &#8220;no improvement on evaluation score&#8221; line, the 100x harness figure</p></li><li><p><a href="iframe.php?url=https%3A%2F%2Fcdn.openai.com%2Fpdf%2F67869394-cb91-4c12-888c-5cbd85c7814c%2FOpenAI-Hugging-Face%2520Incident-Technical-Report.pdf">OpenAI: Hugging Face incident technical report (PDF)</a> &#8212; dated timeline, &#8220;not required&#8221;, &#8220;in its capacity as a Hugging Face customer&#8221;</p></li><li><p><a href="iframe.php?url=https%3A%2F%2Fmetr.org%2Fblog%2F2026-08-26-openai-hugging-face-incident-investigation%2F">METR / Redwood: independent investigation of the Hugging Face incident</a> &#8212; agents joining knowingly, 533 agents, refusals</p></li><li><p><a href="iframe.php?url=https%3A%2F%2Fopenai.com%2Findex%2Fsecuring-our-frontier-model-training-environment%2F">OpenAI: Securing our frontier model training environment (23 Oct 2026)</a> &#8212; the September DNS-resolver escape and the red-team findings</p></li><li><p><a href="iframe.php?url=https%3A%2F%2Fwww.sec.gov%2FArchives%2Fedgar%2Fdata%2F2130357%2F000162828026067168%2Fanthropicpbc-sx1.htm">Anthropic S-1 (SEC EDGAR)</a> &#8212; &#8220;despite instructions that it had no internet access&#8221;, risk factors</p></li><li><p><a href="iframe.php?url=https%3A%2F%2Fwww.anthropic.com%2Fresearch%2Falignment-assessment-cybersecurity-incidents">Anthropic: alignment assessment of the cybersecurity incidents (9 Sept 2026)</a> &#8212; the broken abort, PyPI package</p></li><li><p><a href="iframe.php?url=https%3A%2F%2Fwww.anthropic.com%2Fresearch%2Falignment-assessment-ukaisi">Anthropic: alignment assessment of the UK AISI incident (23 Oct 2026)</a> &#8212; Mythos 5, fake accounts, &#8220;serious failure of alignment&#8221;</p></li><li><p><a href="iframe.php?url=https%3A%2F%2Fwww-cdn.anthropic.com%2F08ab9158070959f88f296514c21b7facce6f52bc.pdf">Claude Mythos Preview system card (PDF)</a> &#8212; sandbox escape, unasked-for posting, concealment features (pp. 54&#8211;57)</p></li><li><p><a href="iframe.php?url=https%3A%2F%2Fwww.anthropic.com%2Fresearch%2Freasoning-models-dont-say-think">Anthropic: Reasoning models don&#8217;t always say what they think</a> &#8212; chain-of-thought faithfulness</p></li><li><p><a href="iframe.php?url=https%3A%2F%2Fopenai.com%2Findex%2Flearning-to-reason-with-llms%2F">OpenAI: Learning to reason with LLMs</a> &#8212; o1, RL-trained reasoning</p></li><li><p><a href="iframe.php?url=https%3A%2F%2Farxiv.org%2Fabs%2F2412.04984">Apollo Research: Frontier models are capable of in-context scheming</a> &#8212; o1, &#8220;at all cost&#8221;, 2% self-exfiltration</p></li><li><p><a href="iframe.php?url=https%3A%2F%2Fx.com%2FPalisadeAI%2Fstatus%2F1926084635903025621">Palisade Research: shutdown-resistance results (May 2025)</a> &#8212; o3, 79 vs 7 of 100</p></li><li><p><a href="iframe.php?url=https%3A%2F%2Fwww.theregister.com%2F2025%2F05%2F29%2Fopenai_model_modifies_shutdown_script%2F">The Register: OpenAI model modifies shutdown script</a> &#8212; coverage of the Palisade study</p></li><li><p><a href="iframe.php?url=https%3A%2F%2Fwww.anthropic.com%2Fclaude-4-system-card">Anthropic: Claude 4 system card</a> &#8212; the blackmail scenario, 84% of rollouts</p></li><li><p><a href="iframe.php?url=https%3A%2F%2Fwww.anthropic.com%2Fresearch%2Fagentic-misalignment">Anthropic: Agentic Misalignment</a> &#8212; the wider blackmail study across models</p></li><li><p><a href="iframe.php?url=https%3A%2F%2Fcdn.openai.com%2Fo1-system-card.pdf">OpenAI o1 system card (Sept 2024)</a> &#8212; the exposed Docker API in a CTF</p></li><li><p><a href="iframe.php?url=https%3A%2F%2Fwww.theguardian.com%2Ftechnology%2F2019%2Ffeb%2F14%2Felon-musk-backed-ai-writes-convincing-news-fiction">The Guardian: New AI fake text generator may be too dangerous to release (14 Feb 2019)</a> &#8212; the original &#8220;too dangerous&#8221; headline</p></li><li><p><a href="iframe.php?url=https%3A%2F%2Fopenai.com%2Findex%2Fgpt-2-1-5b-release%2F">OpenAI: GPT-2 1.5B release</a> &#8212; the full release nine months later</p></li><li><p><a href="iframe.php?url=https%3A%2F%2Fopenai.com%2Findex%2Fchatgpt%2F">OpenAI: Introducing ChatGPT</a> &#8212; November 2022</p></li><li><p><a href="iframe.php?url=https%3A%2F%2Fwww.nytimes.com%2F2023%2F02%2F16%2Ftechnology%2Fbing-chatbot-microsoft-chatgpt.html">The New York Times: A Conversation With Bing&#8217;s Chatbot Left Me Deeply Unsettled</a> &#8212; Sydney</p></li><li><p><a href="iframe.php?url=https%3A%2F%2Fwww.anthropic.com%2Fnews%2Fmodel-context-protocol">Anthropic: Introducing the Model Context Protocol</a> &#8212; November 2024</p></li><li><p><a href="iframe.php?url=https%3A%2F%2Fwww.linuxfoundation.org%2Fpress%2Flinux-foundation-announces-the-formation-of-the-agentic-ai-foundation">Linux Foundation: Agentic AI Foundation</a> &#8212; MCP&#8217;s new home, December 2025</p></li><li><p><a href="iframe.php?url=https%3A%2F%2Fwww.euronews.com%2F2026%2F07%2F22%2Fopenai-models-broke-free-in-test-hacked-rival-hugging-face-in-major-breach">Euronews: OpenAI models broke free in test, hacked rival Hugging Face</a> &#8212; the &#8220;Unprecedented&#8221; headline</p></li><li><p><a href="iframe.php?url=https%3A%2F%2Ffortune.com%2F2026%2F04%2F10%2Fanthropic-too-dangerous-to-release-ai-model-means-for-its-upcoming-ipo%2F">Fortune: What Anthropic&#8217;s too-dangerous-to-release AI model means for its upcoming IPO</a> &#8212; the 2026 &#8220;too dangerous&#8221;</p></li><li><p><a href="iframe.php?url=https%3A%2F%2Fwww.theregister.com%2Fai-and-ml%2F2026%2F10%2F26%2Ftrumpets-blare-and-skies-part-as-ai-hypefest-culminates-in-anthropic-ipo-filing%2F5305456">The Register: Trumpets blare and skies part as AI hypefest culminates in Anthropic IPO filing</a> &#8212; the counterpoint headline</p></li><li><p><a href="iframe.php?url=https%3A%2F%2Ftech-insider.org%2Fanthropic-ipo-filing-training-pause-four-models-escaped-2026%2F">Tech Insider: Anthropic IPO filing reveals 4 model escapes</a> &#8212; the escapes headline</p></li><li><p><a href="iframe.php?url=https%3A%2F%2Fdallasexpress.com%2Fbusiness-markets%2Fai-gone-rogue-claude-opus-4s-blackmail-attempts-raise-alarming-questions%2F">Dallas Express: AI Gone Rogue? Claude Opus 4&#8217;s Blackmail Attempts</a> &#8212; headline example</p></li><li><p><a href="iframe.php?url=https%3A%2F%2Fwww.futura-sciences.com%2Fen%2Fit-was-supposed-to-shut-down-but-it-rewrote-its-code-to-survive-what-this-experiment-reveals-about-ai-autonomy_23387%2F">Futura-Sciences: It was supposed to shut down&#8230; but it rewrote its code to survive</a> &#8212; headline example</p></li><li><p><a href="iframe.php?url=https%3A%2F%2Fwww.livescience.com%2Ftechnology%2Fartificial-intelligence%2Fai-can-now-replicate-itself-a-milestone-that-has-experts-terrified">Live Science: AI can now replicate itself</a> &#8212; the self-replication headline</p></li><li><p><a href="iframe.php?url=https%3A%2F%2Fautogpt.net%2Fopenais-human-error-behind-the-hugging-face-hack%2F">AutoGPT.net: OpenAI&#8217;s human error behind the Hugging Face hack</a> &#8212; Jake Williams and Dan Guido quotes (secondary)</p></li><li><p><a href="iframe.php?url=https%3A%2F%2Fhuggingface.co%2Fdeepseek-ai%2FDeepSeek-V3">DeepSeek V3 on Hugging Face</a> &#8212; 671B parameters, the size reference</p></li><li><p><a href="iframe.php?url=https%3A%2F%2Fhuggingface.co%2Fmoonshotai%2FKimi-K2-Instruct">Kimi K2 on Hugging Face</a> &#8212; ~1T parameters</p></li><li><p><a href="iframe.php?url=https%3A%2F%2Farxiv.org%2Fabs%2F2605.19149">Agent Meltdowns (Cornell, arXiv 2605.19149)</a> &#8212; 64.7% of 1,920 runs with simulated errors, the 404 example</p></li><li><p><a href="iframe.php?url=https%3A%2F%2Fwww.noemamag.com%2Fthe-ais-are-not-going-rogue%2F">Noema: The AIs Are Not Going Rogue</a> &#8212; the philosophical version of the same argument</p></li><li><p><a href="iframe.php?url=https%3A%2F%2Frikiyat.github.io%2Fblog%2Fweight-space-programming%2F">MIT CSAIL: Sparks of Weight-Space Programming</a> &#8212; a frontier model reads and edits network weights, given a harness and a forward-pass budget</p></li><li><p><a href="iframe.php?url=https%3A%2F%2Fhonnibal.dev%2Fblog%2Fastra-read-write-misleading">Matthew Honnibal: The &#8216;Astra can read and write weights to improve Qwen&#8217; post is massively misleading</a> &#8212; the Qwen result needed Python and forward passes, not raw weights alone</p></li></ul>]]></content:encoded></item><item><title><![CDATA[AWS Killed rain. I'm Keeping It Going.]]></title><description><![CDATA[The best CloudFormation client went dark with no successor.]]></description><link>https://chaosguru.substack.com/p/aws-killed-rain-im-keeping-it-going</link><guid isPermaLink="false">https://chaosguru.substack.com/p/aws-killed-rain-im-keeping-it-going</guid><dc:creator><![CDATA[Luka Kladarić]]></dc:creator><pubDate>Mon, 26 Oct 2026 15:27:02 GMT</pubDate><enclosure url="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21_mmL%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F617c64ba-10fc-4e43-b9a7-19bd33056d56_2560x1440.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21_mmL%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F617c64ba-10fc-4e43-b9a7-19bd33056d56_2560x1440.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!_mmL!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F617c64ba-10fc-4e43-b9a7-19bd33056d56_2560x1440.png 424w, https://substackcdn.com/image/fetch/$s_!_mmL!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F617c64ba-10fc-4e43-b9a7-19bd33056d56_2560x1440.png 848w, https://substackcdn.com/image/fetch/$s_!_mmL!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F617c64ba-10fc-4e43-b9a7-19bd33056d56_2560x1440.png 1272w, https://substackcdn.com/image/fetch/$s_!_mmL!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F617c64ba-10fc-4e43-b9a7-19bd33056d56_2560x1440.png 1456w" sizes="100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21_mmL%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F617c64ba-10fc-4e43-b9a7-19bd33056d56_2560x1440.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/617c64ba-10fc-4e43-b9a7-19bd33056d56_2560x1440.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1172344,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://chaosguru.substack.com/i/222193212?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F617c64ba-10fc-4e43-b9a7-19bd33056d56_2560x1440.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!_mmL!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F617c64ba-10fc-4e43-b9a7-19bd33056d56_2560x1440.png 424w, https://substackcdn.com/image/fetch/$s_!_mmL!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F617c64ba-10fc-4e43-b9a7-19bd33056d56_2560x1440.png 848w, https://substackcdn.com/image/fetch/$s_!_mmL!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F617c64ba-10fc-4e43-b9a7-19bd33056d56_2560x1440.png 1272w, https://substackcdn.com/image/fetch/$s_!_mmL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F617c64ba-10fc-4e43-b9a7-19bd33056d56_2560x1440.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>CloudFormation is AWS&#8217;s own infrastructure-as-code service, the AWS-native counterpart to Terraform. You describe your resources in a YAML template, hand it to AWS, and CloudFormation creates, updates and deletes them together as one stack, rolling everything back if a change fails.</p><p>rain is a command-line tool for CloudFormation that AWS built and open-sourced in 2019. It deploys and formats templates, and it goes past the official <code>aws</code> CLI on two levels. It makes templates a bit more powerful, with a few extra tags for the things CloudFormation can&#8217;t do on its own. And it handles edge cases and errors better: if a stack fails on its very first create, CloudFormation leaves a dead, empty stack behind that you have to delete by hand before you can try again, and rain clears it out of the way for you. When something fails, the real error comes out even if it happened three nested stacks down.</p><p>I found rain while building out Noom&#8217;s infrastructure. Everything in the CloudFormation tooling space was some flavor of painful, and rain was the first tool that deployed a stack the way I wanted: show me the change set, ask me, show me what&#8217;s happening while it happens, and tell me why it failed when it fails.</p><p>The killer feature for me was <code>!Rain::Embed</code>. Anything that has to end up inside a template, like a function&#8217;s source, a policy or a startup script, can live in its own file, where your editor, linter and tests can see it, and rain puts it into the template when you deploy. No separate packaging step, and nothing pasted into YAML as a string.</p><p>Since then I&#8217;ve seen rain deployed at dozens of engagements, and it has become an irreplaceable tool in my toolbelt for exactly that kind of work.</p><h2>Why raw CloudFormation</h2><p>AWS has been investing heavily in CloudFormation as a service. In the last year alone it shipped <a href="iframe.php?url=https%3A%2F%2Faws.amazon.com%2Fabout-aws%2Fwhats-new%2F2025%2F11%2Fcloudformation-dev-test-cycle-validation-troubleshooting">validation that catches bad properties and name clashes</a> before a change set touches anything, <a href="iframe.php?url=https%3A%2F%2Faws.amazon.com%2Fabout-aws%2Fwhats-new%2F2025%2F11%2Fconfiguration-drift-enhanced-cloudformation-sets">drift-aware change sets</a> that compare your template with what is really running, and <a href="iframe.php?url=https%3A%2F%2Faws.amazon.com%2Fabout-aws%2Fwhats-new%2F2026%2F06%2Faws-cloudformation-cdk%2F">Express mode</a>, which finishes a stack operation as soon as the resources are configured, without waiting for them to settle.</p><p>CloudFormation also powers the AWS CDK, which is where AWS is placing its bets. I think that&#8217;s the wrong direction. I want to keep writing raw CloudFormation, and I want to keep supporting the people who do. The YAML interface is just right. The language is just slightly underpowered, and rain bridged that gap for me perfectly.</p><h2>What happened</h2><p>On July 29, AWS <a href="iframe.php?url=https%3A%2F%2Fgithub.com%2Faws-cloudformation%2Frain%2Fpull%2F801">added a deprecation notice</a> to rain&#8217;s README and archived the repository the same day. No blog post, no migration guide. The notice points you at the AWS CLI, CDK, cfn-lint and cfn-guard. None of those deploys a template the way rain does, and none of them understands <code>!Rain::Embed</code>.</p><p>Three months later, nobody had forked it. GitHub lists 86 forks, and none of them carries the work on. Homebrew has <a href="iframe.php?url=https%3A%2F%2Fformulae.brew.sh%2Fformula%2Frain">deprecated the formula</a> and switches it off on February 8, after which <code>brew install rain</code> stops working.</p><p>It&#8217;s absolutely wild to me. A month before the archive, AWS shipped Express mode. rain was the client best placed to use it, and it never got the chance.</p><h2>So I&#8217;m picking it up</h2><p>I&#8217;ve forked rain as <a href="iframe.php?url=https%3A%2F%2Fgithub.com%2Fawesome-foundation%2Fcfnrain">cfnrain</a>, under the awesome-foundation GitHub org, next to the other CloudFormation tools I maintain there, cfntop and cfnpeek. I&#8217;ll carry it myself if I have to.</p><p>The aspiration is the best CloudFormation client there is, with maximum compatibility with native CloudFormation. I won&#8217;t add things just because I can, and I won&#8217;t shy away from major usability wins when I see them.</p><p>The first three releases:</p><ol><li><p><strong>The original rain code, renamed.</strong> Your templates, <code>!Rain::*</code> directives, config files and artifact buckets work as they are. Two things differ: cfnrain doesn&#8217;t write AWS&#8217;s usage-metrics block into your templates, and it identifies itself to AWS as cfnrain, not as Rain.</p></li><li><p><strong>Dependency updates</strong>, nothing else.</p></li><li><p><strong>Where compatibility might break.</strong></p></li></ol><p>If your scripts call <code>rain</code>, link the new binary under the old name and they keep working.</p><h2>Join, or I&#8217;ll be opinionated</h2><p>I have over 25 years of experience writing software professionally and running large distributed systems in the cloud. These days I mostly work as a consultant for companies shipping cloud systems, and a big part of that work is taking complexity out of them. What I haven&#8217;t done is run a collaborative open source project. This will be my first.</p><p>If other people want to join, awesome. If more people join, we&#8217;ll work out together how we steer it. If nobody does, I&#8217;m going to be opinionated about it.</p><p>If rain is in your pipeline, grab the first release, run your next deploy with it, and tell me what you can&#8217;t live without. The best place to coordinate is <a href="iframe.php?url=https%3A%2F%2Fgithub.com%2Fawesome-foundation%2Fcfnrain%2Fdiscussions">GitHub Discussions on the cfnrain repo</a>.</p>]]></content:encoded></item><item><title><![CDATA[The system mostly worked]]></title><description><![CDATA[A critical PHP bug leaked early, and the internet still didn't burn.]]></description><link>https://chaosguru.substack.com/p/the-system-mostly-worked</link><guid isPermaLink="false">https://chaosguru.substack.com/p/the-system-mostly-worked</guid><dc:creator><![CDATA[Luka Kladarić]]></dc:creator><pubDate>Fri, 23 Oct 2026 13:39:50 GMT</pubDate><enclosure url="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21Du-U%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Fecae8f53-b0d8-4cff-9444-93a3b7864cf7_1600x900.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21Du-U%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Fecae8f53-b0d8-4cff-9444-93a3b7864cf7_1600x900.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Du-U!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fecae8f53-b0d8-4cff-9444-93a3b7864cf7_1600x900.png 424w, https://substackcdn.com/image/fetch/$s_!Du-U!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fecae8f53-b0d8-4cff-9444-93a3b7864cf7_1600x900.png 848w, https://substackcdn.com/image/fetch/$s_!Du-U!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fecae8f53-b0d8-4cff-9444-93a3b7864cf7_1600x900.png 1272w, https://substackcdn.com/image/fetch/$s_!Du-U!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fecae8f53-b0d8-4cff-9444-93a3b7864cf7_1600x900.png 1456w" sizes="100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21Du-U%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Fecae8f53-b0d8-4cff-9444-93a3b7864cf7_1600x900.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ecae8f53-b0d8-4cff-9444-93a3b7864cf7_1600x900.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1990418,&quot;alt&quot;:&quot;Cartoon: the blue PHP elephant from the first piece, fire out and a bandage on its head, drinks from a bucket passed along a cheerful bucket brigade that runs from a small well and workshop. Two buckets drip through holes. A man in a suit stands to the side holding a TAKE IT OFFLINE sign. In the background, the giant padlock with the number 4 key is hauled away on a tow truck.&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://chaosguru.substack.com/i/221782118?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fecae8f53-b0d8-4cff-9444-93a3b7864cf7_1600x900.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Cartoon: the blue PHP elephant from the first piece, fire out and a bandage on its head, drinks from a bucket passed along a cheerful bucket brigade that runs from a small well and workshop. Two buckets drip through holes. A man in a suit stands to the side holding a TAKE IT OFFLINE sign. In the background, the giant padlock with the number 4 key is hauled away on a tow truck." title="Cartoon: the blue PHP elephant from the first piece, fire out and a bandage on its head, drinks from a bucket passed along a cheerful bucket brigade that runs from a small well and workshop. Two buckets drip through holes. A man in a suit stands to the side holding a TAKE IT OFFLINE sign. In the background, the giant padlock with the number 4 key is hauled away on a tow truck." srcset="https://substackcdn.com/image/fetch/$s_!Du-U!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fecae8f53-b0d8-4cff-9444-93a3b7864cf7_1600x900.png 424w, https://substackcdn.com/image/fetch/$s_!Du-U!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fecae8f53-b0d8-4cff-9444-93a3b7864cf7_1600x900.png 848w, https://substackcdn.com/image/fetch/$s_!Du-U!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fecae8f53-b0d8-4cff-9444-93a3b7864cf7_1600x900.png 1272w, https://substackcdn.com/image/fetch/$s_!Du-U!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fecae8f53-b0d8-4cff-9444-93a3b7864cf7_1600x900.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>On Wednesday afternoon we watched the Dutch parliament, Finland&#8217;s central government and the Dutch national cyber security agency switch off their own websites. Japan&#8217;s prime minister asked everyone running a public website to patch that night or take it down, <a href="iframe.php?url=https%3A%2F%2Fx.com%2Ftakaichi_sanae%2Fstatus%2F2112890642590564386">in a post seen 30 million times</a>. <a href="iframe.php?url=https%3A%2F%2Fx.com%2FNSACyber%2Fstatus%2F2112903220209098897">The NSA said the same</a>. By 14:00 UTC the fix was out, and by Friday afternoon all of the <a href="iframe.php?url=https%3A%2F%2Fallixsenos.github.io%2Fphpocalypse-tracker%2F">51 sites I&#8217;d been tracking</a> were back.</p><p>Nothing burned. A decade ago, this would have gone very differently.</p><h2>Then</h2><p>In January 2003, SQL Slammer <a href="iframe.php?url=https%3A%2F%2Fwww.caida.org%2Fcatalog%2Fpapers%2F2003_sapphire%2F">infected about 90% of vulnerable hosts within ten minutes</a>. There was no warning, no coordination, and no way to react faster than a worm that doubled every few seconds.</p><p>In 2017 there was warning. Microsoft patched the bug behind WannaCry <a href="iframe.php?url=https%3A%2F%2Fwww.paubox.com%2Fblog%2Fhow-the-wannacry-ransomware-attack-changed-cybersecurity">in March</a>. WannaCry hit in May anyway, because two months wasn&#8217;t enough for a lot of organizations to install a patch.</p><p>In 2019 Microsoft patched BlueKeep and told everyone it was wormable. Six weeks later <a href="iframe.php?url=https%3A%2F%2Fwww.govinfosecurity.com%2Fdespite-bluekeep-warnings-many-organizations-fail-to-patch-a-12795">about 805,000 machines were still exposed</a>, a drop of 17%.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21Z-UY%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Fcfd6b669-d2a8-4fe4-811d-a119c99a9b02_1600x900.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Z-UY!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcfd6b669-d2a8-4fe4-811d-a119c99a9b02_1600x900.png 424w, https://substackcdn.com/image/fetch/$s_!Z-UY!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcfd6b669-d2a8-4fe4-811d-a119c99a9b02_1600x900.png 848w, https://substackcdn.com/image/fetch/$s_!Z-UY!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcfd6b669-d2a8-4fe4-811d-a119c99a9b02_1600x900.png 1272w, https://substackcdn.com/image/fetch/$s_!Z-UY!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcfd6b669-d2a8-4fe4-811d-a119c99a9b02_1600x900.png 1456w" sizes="100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21Z-UY%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Fcfd6b669-d2a8-4fe4-811d-a119c99a9b02_1600x900.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/cfd6b669-d2a8-4fe4-811d-a119c99a9b02_1600x900.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:107339,&quot;alt&quot;:&quot;2003, SQL Slammer, no warning: 90% of vulnerable hosts infected within 10 minutes. 2017, WannaCry, patch out two months earlier: hit unpatched machines anyway. 2019, BlueKeep, patch plus a wormable alert: six weeks later about 805,000 machines still exposed, down 17%. 2026, PHP, less than a day after a leak: fixes out in hours, sites patched or switched off, no confirmed compromise. 2026, eMudhra CA keys, reported at 18:05 UTC: Chrome blocking the keys 1 hour 40 minutes later.&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://chaosguru.substack.com/i/221782118?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcfd6b669-d2a8-4fe4-811d-a119c99a9b02_1600x900.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="2003, SQL Slammer, no warning: 90% of vulnerable hosts infected within 10 minutes. 2017, WannaCry, patch out two months earlier: hit unpatched machines anyway. 2019, BlueKeep, patch plus a wormable alert: six weeks later about 805,000 machines still exposed, down 17%. 2026, PHP, less than a day after a leak: fixes out in hours, sites patched or switched off, no confirmed compromise. 2026, eMudhra CA keys, reported at 18:05 UTC: Chrome blocking the keys 1 hour 40 minutes later." title="2003, SQL Slammer, no warning: 90% of vulnerable hosts infected within 10 minutes. 2017, WannaCry, patch out two months earlier: hit unpatched machines anyway. 2019, BlueKeep, patch plus a wormable alert: six weeks later about 805,000 machines still exposed, down 17%. 2026, PHP, less than a day after a leak: fixes out in hours, sites patched or switched off, no confirmed compromise. 2026, eMudhra CA keys, reported at 18:05 UTC: Chrome blocking the keys 1 hour 40 minutes later." srcset="https://substackcdn.com/image/fetch/$s_!Z-UY!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcfd6b669-d2a8-4fe4-811d-a119c99a9b02_1600x900.png 424w, https://substackcdn.com/image/fetch/$s_!Z-UY!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcfd6b669-d2a8-4fe4-811d-a119c99a9b02_1600x900.png 848w, https://substackcdn.com/image/fetch/$s_!Z-UY!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcfd6b669-d2a8-4fe4-811d-a119c99a9b02_1600x900.png 1272w, https://substackcdn.com/image/fetch/$s_!Z-UY!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fcfd6b669-d2a8-4fe4-811d-a119c99a9b02_1600x900.png 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2>Now</h2><p>This week had two critical failures in shared infrastructure: two remote code execution bugs in PHP, and eight private keys at a certificate authority that were built from small numbers instead of random ones, which made them simple enough to guess. Both were handled in hours, mostly in public, by people who had been preparing for exactly this.</p><p><strong>The warning reached people, and they listened.</strong> When the PHP bug details started leaking on Tuesday, the PHP security team <a href="iframe.php?url=https%3A%2F%2Fthephp.foundation%2Fblog%2F2026%2F10%2F21%2Ftodays-php-security-release-and-how-were-strengthening-php-security%2F">moved the release up by a day</a> and pre-announced it the same evening. By Wednesday morning, hosts had disabled the risky setting, governments had issued guidance, and security teams had a deadline in their calendars. That much attention used to take a breach. This week it took a pre-announcement, a leaked CVE number and a few posts from people who knew what they were looking at.</p><p><strong>The edge moved first.</strong> Cloudflare had been building protections inside the embargo since early October, and its rules went live for every customer, <a href="iframe.php?url=https%3A%2F%2Fblog.cloudflare.com%2Fphp-vulnerabilities-waf-protection%2F">free plan included, at 03:02 UTC</a>, eleven hours before the fix existed publicly.</p><p><strong>Packages were ready within hours.</strong> Linux distributions got the patch in advance. Debian&#8217;s advisory went out at about the same time as PHP&#8217;s own release, and Red Hat, AlmaLinux and Ubuntu followed within hours. PHP itself published source backports for three versions it no longer supports.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://chaosguru.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading The Chaos Guru! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p><a href="iframe.php?url=https%3A%2F%2Fgithub.com%2Fsponsors%2Foerdnj">Ond&#345;ej Sur&#253;</a>, who maintains the PHP packages a lot of Debian and Ubuntu servers depend on, had fixed builds out the same afternoon for every version back to PHP 5.6, a release that has been out of support since the end of 2018. That is heroic work, and it should never have been needed: anyone still running PHP 5.6 in 2026 is on software nearly eight years past its final end of life. The Atlantic <a href="iframe.php?url=https%3A%2F%2Fwww.theatlantic.com%2Ftechnology%2F2026%2F10%2Fman-who-saved-internet-php-vulnerability%2F689123%2F">has the story of his week</a>.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21f8z-%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Fd94476b5-f07a-4962-8f0a-761ae7f2ba4d_770x978.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!f8z-!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd94476b5-f07a-4962-8f0a-761ae7f2ba4d_770x978.png 424w, https://substackcdn.com/image/fetch/$s_!f8z-!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd94476b5-f07a-4962-8f0a-761ae7f2ba4d_770x978.png 848w, https://substackcdn.com/image/fetch/$s_!f8z-!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd94476b5-f07a-4962-8f0a-761ae7f2ba4d_770x978.png 1272w, https://substackcdn.com/image/fetch/$s_!f8z-!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd94476b5-f07a-4962-8f0a-761ae7f2ba4d_770x978.png 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21f8z-%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Fd94476b5-f07a-4962-8f0a-761ae7f2ba4d_770x978.png" width="770" height="978" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d94476b5-f07a-4962-8f0a-761ae7f2ba4d_770x978.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:978,&quot;width&quot;:770,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:51856,&quot;alt&quot;:&quot;> xkcd's Dependency comic, relabeled: a tower of blocks marked every Ubuntu and Debian server patching PHP today balances on one tiny block marked Ond&#345;ej Sur&#253;, who rebuilt every PHP package this afternoon, more or less for free, which stands on a slab marked Launchpad, which is down.&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://chaosguru.substack.com/i/221782118?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd94476b5-f07a-4962-8f0a-761ae7f2ba4d_770x978.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="> xkcd's Dependency comic, relabeled: a tower of blocks marked every Ubuntu and Debian server patching PHP today balances on one tiny block marked Ond&#345;ej Sur&#253;, who rebuilt every PHP package this afternoon, more or less for free, which stands on a slab marked Launchpad, which is down." title="> xkcd's Dependency comic, relabeled: a tower of blocks marked every Ubuntu and Debian server patching PHP today balances on one tiny block marked Ond&#345;ej Sur&#253;, who rebuilt every PHP package this afternoon, more or less for free, which stands on a slab marked Launchpad, which is down." srcset="https://substackcdn.com/image/fetch/$s_!f8z-!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd94476b5-f07a-4962-8f0a-761ae7f2ba4d_770x978.png 424w, https://substackcdn.com/image/fetch/$s_!f8z-!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd94476b5-f07a-4962-8f0a-761ae7f2ba4d_770x978.png 848w, https://substackcdn.com/image/fetch/$s_!f8z-!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd94476b5-f07a-4962-8f0a-761ae7f2ba4d_770x978.png 1272w, https://substackcdn.com/image/fetch/$s_!f8z-!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd94476b5-f07a-4962-8f0a-761ae7f2ba4d_770x978.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption"><em>Remix of <a href="iframe.php?url=https%3A%2F%2Fxkcd.com%2F2347%2F">xkcd #2347, &#8220;Dependency&#8221;</a> by Randall Munroe, CC BY-NC 2.5.</em></figcaption></figure></div><p>Not everything was smooth: the official Docker image briefly pushed empty tags, <a href="iframe.php?url=https%3A%2F%2Fcodeberg.org%2Foerdnj%2Fdeb.sury.org%2Fissues%2F145">ARM builds took days</a>, and one popular repository for Red Hat systems didn&#8217;t catch up until Thursday. But the gap between &#8220;the fix exists&#8221; and &#8220;the fix is on your server&#8221; was measured in hours.</p><p><strong>People chose downtime over risk.</strong> Pinboard, the bookmarking and archiving site Maciej Ceg&#322;owski has run largely on his own since 2009, went dark too. When someone called switching servers off &#8220;kinda extreme in hindsight&#8221;, Maciej <a href="iframe.php?url=https%3A%2F%2Fx.com%2Fpinboard%2Fstatus%2F2113005349511082131">answered</a>:</p><div class="twitter-embed" data-attrs="{&quot;url&quot;:&quot;https://x.com/pinboard/status/2113005349511082131&quot;,&quot;full_text&quot;:&quot;Not in hindsight (issue is ongoing), and it really depends on potential consequences. I run an archiving site and remote code execution means everybody's data over the past 17 years is potentially compromised. I'm good at apologizing but prefer the downtime.&quot;,&quot;username&quot;:&quot;Pinboard&quot;,&quot;name&quot;:&quot;Pinboard&quot;,&quot;profile_image_url&quot;:&quot;https://pbs.substack.com/profile_images/1293623146763804674/_JlO5dQw_normal.jpg&quot;,&quot;date&quot;:&quot;2026-10-21T20:31:47.000Z&quot;,&quot;photos&quot;:[],&quot;quoted_tweet&quot;:{&quot;full_text&quot;:&quot;I understand everyone has a different use-case, but 'turning the server off' as a solution to todays problem seemed kinda extreme in hindsight?&quot;,&quot;username&quot;:&quot;SabatinoMasala&quot;,&quot;name&quot;:&quot;Sabatino Masala&quot;,&quot;profile_image_url&quot;:&quot;https://pbs.substack.com/profile_images/1907353051209318400/aKTxoIm7_normal.jpg&quot;,&quot;photos&quot;:[]},&quot;reply_count&quot;:4,&quot;retweet_count&quot;:8,&quot;like_count&quot;:186,&quot;impression_count&quot;:4275,&quot;expanded_url&quot;:null,&quot;video_url&quot;:null,&quot;video_preview_media_key&quot;:null,&quot;belowTheFold&quot;:true}" data-component-name="Twitter2ToDOM"></div><p>A pessimist would call that a tooling change, but it&#8217;s actually a significant cultural change. A decade ago, organizations taking their public sites offline for a bug nobody had exploited yet would have been ridiculed.</p><p><strong>The certificate authority took hours, not weeks.</strong> On 17 October a researcher ran Google&#8217;s open-source key checker over the public list of CA certificates and found eight eMudhra keys that anyone could recover in milliseconds. He emailed the browser root programs at 18:05 UTC. <a href="iframe.php?url=https%3A%2F%2Fblog.google%2Fsecurity%2Fprotecting-chrome-and-android-users-from-compromised-emudhra-intermediate-ca-certificates%2F">Chrome was blocking the keys</a> an hour and forty minutes later. Firefox <a href="iframe.php?url=https%3A%2F%2Fblog.mozilla.org%2Fsecurity%2F2026%2F10%2F20%2Fprotecting-firefox-users-following-the-compromise-of-emudhra-intermediate-certificates%2F">followed the same night</a>. eMudhra revoked them the next morning, Mozilla removed the whole root, and on Thursday eMudhra <a href="iframe.php?url=https%3A%2F%2Femudhra.com%2Fen%2Fpress-release%2Femudhra-to-exit-global-ssl-tls-certificate-business">announced it was leaving the TLS certificate business</a>. When DigiNotar was compromised in 2011, it detected the intrusion on 19 July and told nobody. A fake Google certificate was used against Gmail users in Iran for weeks, until an Iranian Gmail user <a href="iframe.php?url=https%3A%2F%2Fen.wikipedia.org%2Fwiki%2FDigiNotar">noticed on 28 August</a>.</p><p>By Friday, nobody had confirmed a single successful break-in from either incident.</p><p>On Thursday I spoke at <a href="iframe.php?url=https%3A%2F%2Fawscommunityadria.com%2F">AWS Community Day Adria</a> in Ljubljana, and PHP and eMudhra came up in nearly every conversation. Everyone I talked to said the same thing: that was handled well, and it could have been much worse. They&#8217;re right. Mostly.</p><h2>Mostly</h2><p><strong>The slow part was upstream, and it was very slow.</strong> The PHP root cause first surfaced in a <a href="iframe.php?url=https%3A%2F%2Fcalif.io%2Fphp2shell">2020 bug report</a> and turned up concretely in <a href="iframe.php?url=https%3A%2F%2Fthephp.foundation%2Fblog%2F2026%2F10%2F21%2Ftodays-php-security-release-and-how-were-strengthening-php-security%2F">a 2024 security audit</a> by Quarkslab. Then it sat. The PHP Foundation&#8217;s own <a href="iframe.php?url=https%3A%2F%2Fthephp.foundation%2Fblog%2F2026%2F10%2F21%2Ftodays-php-security-release-and-how-were-strengthening-php-security%2F">post-mortem</a> doesn&#8217;t soften it: &#8220;the delay was a structural failure.&#8221; The fast response this week was cleaning up after a two-year wait.</p><p>eMudhra&#8217;s keys were weak for about eighteen months. In June 2025, crt.sh, the public certificate search engine, flagged invalid revocation-list signatures on exactly these intermediates in <a href="iframe.php?url=https%3A%2F%2Fbugzilla.mozilla.org%2Fshow_bug.cgi%3Fid%3D1970728">a public bug</a>. eMudhra called it a configuration mistake, the bug was closed, and eMudhra now says it fixed those revocation lists by re-signing them with the weak keys. Its annual audits found nothing. In both cases a warning existed, and someone decided it wasn&#8217;t urgent because nobody had proven an exploit.</p><p><strong>The embargo leaked from the inside.</strong> What was initially reported as one careless researcher leaking the vulnerability was actually four separate breaks, three of them from people inside the coordination circle, including a security company that <a href="iframe.php?url=https%3A%2F%2Fnews.ycombinator.com%2Fitem%3Fid%3D50176735">published patched images hours early</a>. Separately, Amazon&#8217;s honeypots logged <a href="iframe.php?url=https%3A%2F%2Faws.amazon.com%2Fblogs%2Fsecurity%2Famazon-threat-intelligence-identifies-php2shell-exploitation-prior-to-public-disclosure-in-madpot%2F">an exploitation attempt on 17 October</a>, three days before anything leaked, and nobody knows how.</p><p><strong>The long tail is still there.</strong> Chrome and Firefox fixed the certificate problem in hours because they update themselves. Apple&#8217;s block depended on eMudhra&#8217;s own revocation server, which was returning errors, so Safari kept accepting some of the bad chains until Thursday. Microsoft said nothing at all and blocked the keys a few days later. Go shipped a hard block with no way to turn it off, which is the right call, but it only helps programs that get rebuilt. A test server with a certificate that was never published to any log still took <a href="iframe.php?url=https%3A%2F%2Femudhra.we-have-a-problem.com%2F">8,806 successful connections</a> in seventeen hours, mainly from curl, Node and Python. On the PHP side, the firewalls and NAS boxes whose admin pages run PHP wait for firmware that some of them will never get.</p><p><strong>And some of it was luck.</strong> The real PHP exploit is hard. Marcus Hutchins <a href="iframe.php?url=https%3A%2F%2Fx.com%2Fmalwaretechblog%2Fstatus%2F2113463738833744047">points out</a> that most of the &#8220;exploits&#8221; hitting honeypots were AI-generated code for an unrelated, years-old technique, and that the real one works only on a handful of configurations. The system was never tested by a working worm. So we were also quite lucky: despite all the leaks, it appears nobody got to a one-size-fits-all working exploit in time.</p><p><strong>And it was never a PHP problem.</strong> The comments treated this week as proof that PHP is a legacy language that deserves what it gets. The same afternoon, Node.js shipped a fix for <a href="iframe.php?url=https%3A%2F%2Fnodejs.org%2Fen%2Fblog%2Fvulnerability%2Foctober-2026-security-releases">CVE-2026-111497</a>, a remote code execution bug in its Brotli decoder, already nicknamed <a href="iframe.php?url=https%3A%2F%2Fwww.aikido.dev%2Fblog%2Fnode2shell-nodejs-brotli-rce-cve-2026-111497">Node2Shell</a> and reported by OpenAI&#8217;s Codex Security team. In July, Rails patched <a href="iframe.php?url=https%3A%2F%2Fgithub.com%2Frails%2Frails%2Fsecurity%2Fadvisories%2FGHSA-xr9x-r78c-5hrm">CVE-2026-66066</a>, a critical Active Storage flaw that attackers <a href="iframe.php?url=https%3A%2F%2Fbetanews.com%2Farticle%2Frails-cve-2026-66066-exploited%2F">started exploiting about a month later</a>. And this morning, Ruby shipped fixes for <a href="iframe.php?url=https%3A%2F%2Fwww.ruby-lang.org%2Fen%2Fnews%2F2026%2F10%2F23%2Fregexp-fixes-for-gitlab-cves%2F">four memory-corruption bugs in its regex engine</a> that, by Ruby&#8217;s own account, could be turned into remote code execution on GitLab&#8217;s servers. PHP&#8217;s week was louder because WordPress alone runs about 40% of the web, not because PHP is uniquely bad. The next one could just as easily land in Node, Python or Ruby, and the comment sections will be just as sure it couldn&#8217;t happen to them.</p><h2>The next one comes faster</h2><p>AI showed up on every side this week, and it didn&#8217;t behave the same way on each.</p><p>The PHP bugs were found by researchers at Calif, Wiz and OpenAI, using AI-assisted tooling. Chainguard&#8217;s CEO says <a href="iframe.php?url=https%3A%2F%2Fx.com%2Florenc_dan%2Fstatus%2F2113260275449098275">a harness built on Claude found a working exploit chain in eight hours for under $1,000</a>, days before the leak. That&#8217;s his claim, and he hasn&#8217;t published proof.</p><p>Meanwhile, the crowd pasting hints into chatbots produced fake exploits by the thousand. According to Hutchins, some researchers then used AI to triage those fakes and reported &#8220;mass exploitation&#8221; that wasn&#8217;t happening. He calls LLMs &#8220;a Dunning-Kruger accelerator&#8221; in the wrong hands. A purpose-built harness that checks its own work three times found a real chain; a chatbot asked for an exploit found a plausible-looking wrong one. The skill moved from writing the exploit to building the thing that verifies it.</p><p>The maintainers are caught in the middle. curl&#8217;s Daniel Stenberg says AI-assisted bug reports are now &#8220;<a href="iframe.php?url=https%3A%2F%2Fdaniel.haxx.se%2Fblog%2F2026%2F10%2F22%2Fignore-the-slop%2F">typically accurate and correct</a>&#8220; and that the problem is &#8220;high volume, high quality&#8221;. From Monday, curl <a href="iframe.php?url=https%3A%2F%2Fdaniel.haxx.se%2Fblog%2F2026%2F10%2F20%2Fdo-minor-curl-vulnerabilities-in-the-open%2F">handles everything below HIGH severity in public</a>, because its maintainers are &#8220;brought to the brink&#8221; and can&#8217;t keep running every report through a private process. Ruby, meanwhile, is still deciding whether this morning&#8217;s regex bugs even count as vulnerabilities.</p><p>Coordinated disclosure, embargoes and advance patches worked, and they&#8217;re expensive. Projects run by a handful of people can afford them for the few bugs that really matter, and only if someone pays for the people. The PHP Foundation&#8217;s <a href="iframe.php?url=https%3A%2F%2Fthephp.foundation%2Fblog%2F2026%2F10%2F21%2Ftodays-php-security-release-and-how-were-strengthening-php-security%2F">answer</a> to its own two-year stall is a security team that decides by majority instead of consensus, leadership that steps in when a fix stalls, and a request for money. Amazon&#8217;s CISO put the other half bluntly: &#8220;<a href="iframe.php?url=https%3A%2F%2Faws.amazon.com%2Fblogs%2Fsecurity%2Famazon-threat-intelligence-identifies-php2shell-exploitation-prior-to-public-disclosure-in-madpot%2F">A 7-day or 30-day SLA assumes a delay that no longer exists.</a>&#8220;</p><p>If you patched on Wednesday and checked your logs from Wednesday, Amazon&#8217;s advice is to start your investigation from 17 October, the earliest attempt its honeypots logged, not from the day the bug went public. Amazon hasn&#8217;t said whether that attempt, or the ones on release day, could actually have worked.</p><p>We got good at this because we had to. The next one will move even faster, and so must we.</p>]]></content:encoded></item><item><title><![CDATA[The phpocalypse is the second biggest story today]]></title><description><![CDATA[Everyone is dunking on PHP. Meanwhile, a certificate authority's private key was the number 4.]]></description><link>https://chaosguru.substack.com/p/the-phpocalypse-is-the-second-biggest</link><guid isPermaLink="false">https://chaosguru.substack.com/p/the-phpocalypse-is-the-second-biggest</guid><dc:creator><![CDATA[Luka Kladarić]]></dc:creator><pubDate>Wed, 21 Oct 2026 10:33:01 GMT</pubDate><enclosure url="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%212O28%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Faa8288c2-c3bf-4236-af94-798fb939b03e_1600x900.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%212O28%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Faa8288c2-c3bf-4236-af94-798fb939b03e_1600x900.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!2O28!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faa8288c2-c3bf-4236-af94-798fb939b03e_1600x900.png 424w, https://substackcdn.com/image/fetch/$s_!2O28!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faa8288c2-c3bf-4236-af94-798fb939b03e_1600x900.png 848w, https://substackcdn.com/image/fetch/$s_!2O28!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faa8288c2-c3bf-4236-af94-798fb939b03e_1600x900.png 1272w, https://substackcdn.com/image/fetch/$s_!2O28!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faa8288c2-c3bf-4236-af94-798fb939b03e_1600x900.png 1456w" sizes="100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%212O28%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Faa8288c2-c3bf-4236-af94-798fb939b03e_1600x900.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/aa8288c2-c3bf-4236-af94-798fb939b03e_1600x900.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1850092,&quot;alt&quot;:&quot;Cartoon: a crowd of photographers points cameras and phones at a small blue PHP elephant on a stage, its hair on fire and its face shocked. Behind them, ignored, stands a giant unlocked padlock with a key in the keyhole tagged with the number 4.&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://chaosguru.substack.com/i/221459870?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faa8288c2-c3bf-4236-af94-798fb939b03e_1600x900.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Cartoon: a crowd of photographers points cameras and phones at a small blue PHP elephant on a stage, its hair on fire and its face shocked. Behind them, ignored, stands a giant unlocked padlock with a key in the keyhole tagged with the number 4." title="Cartoon: a crowd of photographers points cameras and phones at a small blue PHP elephant on a stage, its hair on fire and its face shocked. Behind them, ignored, stands a giant unlocked padlock with a key in the keyhole tagged with the number 4." srcset="https://substackcdn.com/image/fetch/$s_!2O28!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faa8288c2-c3bf-4236-af94-798fb939b03e_1600x900.png 424w, https://substackcdn.com/image/fetch/$s_!2O28!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faa8288c2-c3bf-4236-af94-798fb939b03e_1600x900.png 848w, https://substackcdn.com/image/fetch/$s_!2O28!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faa8288c2-c3bf-4236-af94-798fb939b03e_1600x900.png 1272w, https://substackcdn.com/image/fetch/$s_!2O28!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faa8288c2-c3bf-4236-af94-798fb939b03e_1600x900.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>For thirty years, someone has declared PHP dead every time a new framework shipped. Today the timeline thinks it finally has proof: <a href="iframe.php?url=https%3A%2F%2Fwww.php.net%2Farchive%2F2026.php">two critical remote code execution bugs</a>, an embargo that <a href="iframe.php?url=https%3A%2F%2Fx.com%2Fwatchtowrcyber%2Fstatus%2F2112611507749982605">leaked a day early</a>, and an exploit <a href="iframe.php?url=https%3A%2F%2Fx.com%2FJ4ck3LSyN%2Fstatus%2F2112728631118385153">posted on X</a> with &#8220;get it while its hot &#128520;&#8221; about twelve hours before the patch, <a href="iframe.php?url=https%3A%2F%2Fjackalsyn.com%2Fposts%2Fphp-up-2026.html">since retracted</a> by its own author.</p><h2>The PHP part</h2><p>The PHP security team did this properly. They <a href="iframe.php?url=https%3A%2F%2Fwww.php.net%2Farchive%2F2026.php">pre-announced</a> a release for 21 October at 14:00 UTC, two flaws at CVSS 9.2, with no CVE numbers and no affected versions. That gives operators a maintenance window without handing attackers a map.</p><p>The map leaked anyway. A small group fed the hints and the leaked CVE numbers into <a href="iframe.php?url=https%3A%2F%2Fx.com%2FJ4ck3LSyN%2Fstatus%2F2112716636801454250">a handful of LLMs</a>, claimed to have rediscovered the bug, and <a href="iframe.php?url=https%3A%2F%2Fx.com%2FJ4ck3LSyN%2Fstatus%2F2112703096443097263">published an exploit</a> that its author <a href="iframe.php?url=https%3A%2F%2Fjackalsyn.com%2Fposts%2Fphp-up-2026.html">has since retracted</a>. One of them put it plainly: PHP &#8220;<a href="iframe.php?url=https%3A%2F%2Fx.com%2Facd421%2Fstatus%2F2112738492761419888">told us where to look</a>.&#8221;</p><p>Whether someone <a href="iframe.php?url=https%3A%2F%2Fx.com%2Fwescopeland_%2Fstatus%2F2112715419089789341">could have waited thirteen hours</a> is the wrong fight, though. What decides how bad today gets is who receives a patch at all.</p><p>Only PHP 8.2 through PHP 8.5 are <a href="iframe.php?url=https%3A%2F%2Fwww.php.net%2Fsupported-versions.php">supported</a>, and PHP 8.1 and older are end of life. By <a href="iframe.php?url=https%3A%2F%2Fwordpress.org%2Fabout%2Fstats%2F">WordPress.org&#8217;s own numbers</a>, <a href="iframe.php?url=https%3A%2F%2Fwww.therepository.email%2Fexploit-claims-surface-ahead-of-critical-php-security-release-as-wordpress-hosts-scramble">35.1% of WordPress sites</a> run a PHP version with no security support, and 16.46% of all WordPress sites are still on PHP 7.4. WordPress is <a href="iframe.php?url=https%3A%2F%2Fw3techs.com%2Ftechnologies%2Fhistory_overview%2Fcontent_management%2Fall%2Fq">about 40% of the web</a>.</p><p>Microsoft faced this choice twice. The day after <a href="iframe.php?url=https%3A%2F%2Fthreatpost.com%2Fmicrosoft-releases-xp-patch-for-wannacry-ransomware%2F125671">WannaCry</a> hit in May 2017, it <a href="iframe.php?url=https%3A%2F%2Fmcpmag.com%2Farticles%2F2017%2F05%2F15%2Femergency-patch-for-wannacrypt-ransomware.aspx">shipped a patch for Windows XP</a>, three years after XP&#8217;s end of life. Two years later it didn&#8217;t wait for the fire: the <a href="iframe.php?url=https%3A%2F%2Fwww.tenable.com%2Fblog%2Fcve-2019-0708-bluekeep-exploits-could-be-around-the-corner">BlueKeep</a> fix for XP and Server 2003 shipped the same day as the supported ones.</p><p>So PHP gets to pick. Patch the EOL branches and it saves everyone, and nobody learns anything, because the servers on PHP 8.1 and older stay where they are until the next one. Don&#8217;t, and it breaks a third of WordPress as the price of being right.</p><blockquote><p><strong>Update, 14:00 UTC: PHP split the difference.</strong> There are no new PHP 8.1, 8.0 or 7.4 releases, but &#8220;given the severity&#8221; the security team published minimal source backports for <a href="iframe.php?url=https%3A%2F%2Fgithub.com%2Fphp%2Fphp-src%2Ftree%2FPHP-7.4-CVE-2026-109618-109619">PHP 7.4</a>, <a href="iframe.php?url=https%3A%2F%2Fgithub.com%2Fphp%2Fphp-src%2Ftree%2FPHP-8.0-CVE-2026-109618-109619">PHP 8.0</a> and <a href="iframe.php?url=https%3A%2F%2Fgithub.com%2Fphp%2Fphp-src%2Ftree%2FPHP-8.1-CVE-2026-109618-109619">PHP 8.1</a>, and Linux distributions and LTS vendors got the patches in advance. A PHP 7.4 server is safe tonight only if someone builds that backport or packages it for you. PHP itself offers nothing older than PHP 7.4, but <a href="iframe.php?url=https%3A%2F%2Fdeb.sury.org%2F">Ond&#345;ej Sur&#253;&#8217;s packages</a> <a href="iframe.php?url=https%3A%2F%2Fx.com%2FSchizoDuckie%2Fstatus%2F2112915695713517604">now carry the fix back to PHP 5.6</a>.</p></blockquote><p>Node.js made that decision in advance. Its own <a href="iframe.php?url=https%3A%2F%2Fnodejs.org%2Fen%2Fblog%2Fvulnerability%2Foctober-2026-security-releases">security releases</a>, shipping today as well, put it in writing: &#8220;End-of-Life versions are always affected when a security release occurs.&#8221; The only fix Node offers is a supported version.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://chaosguru.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading The Chaos Guru! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><blockquote><p><strong>14:00 UTC, the fix is out:</strong> <a href="iframe.php?url=https%3A%2F%2Fwww.php.net%2Farchive%2F2026.php%232026-10-21-5">PHP 8.5.12, 8.4.27, 8.3.36 and 8.2.35</a> fix both flaws, <a href="iframe.php?url=https%3A%2F%2Fgithub.com%2Fphp%2Fphp-src%2Fsecurity%2Fadvisories%2FGHSA-w8hw-w9fx-j79w">CVE-2026-109618</a> (code execution through out-of-memory corruption) and <a href="iframe.php?url=https%3A%2F%2Fgithub.com%2Fphp%2Fphp-src%2Fsecurity%2Fadvisories%2FGHSA-6wmf-4rv5-p3rp">CVE-2026-109619</a> (code execution through stale state left behind between requests). Every PHP install that serves web requests is at risk, whether it runs PHP-FPM, mod_php, php-cgi, FrankenPHP or LiteSpeed, and PHP has a demonstrated exploit against mod_php that fires before any application code runs. The advisory lists stopgaps such as <code>memory_limit=-1</code>, a low <code>post_max_size</code> and <code>session.upload_progress.enabled=0</code>, and says they &#8220;do not make an installation safe.&#8221; Remi&#8217;s repository, which many Red Hat-family servers use for PHP, will not have updates today. The bugs were found by researchers from Calif.io, Wiz, OpenAI and Quarkslab, according to <a href="iframe.php?url=https%3A%2F%2Fblog.cloudflare.com%2Fphp-vulnerabilities-waf-protection%2F">Cloudflare</a>. Update now.</p></blockquote><blockquote><p><strong>Updates, 21 October</strong></p><p><strong>01:19 UTC:</strong> PHP 8.6 release manager Joe Ferguson <a href="iframe.php?url=https%3A%2F%2Fphpc.social%2F%40joepferguson%2F117476265521630745">says</a> &#8220;ini settings won&#8217;t save you&#8221;, so disabling <code>session.upload_progress</code>, which <a href="iframe.php?url=https%3A%2F%2Fwww.therepository.email%2Fexploit-claims-surface-ahead-of-critical-php-security-release-as-wordpress-hosts-scramble">most WordPress hosts did overnight</a>, is not a fix.</p><p><strong>07:28 UTC:</strong> It isn&#8217;t only websites. Bob Rudis of internet scanning firm Censys <a href="iframe.php?url=https%3A%2F%2Fmastodon.social%2F%40hrbrmstr%2F117477715734677099">points out</a> that pfSense, OPNsense, QNAP, DrayTek, ZyXEL, D-Link, TP-Link, Netgear, Tenda and Synology admin interfaces all run PHP. Their owners can&#8217;t patch PHP themselves; they wait for firmware, and devices past end of support won&#8217;t get any.</p><p><strong>07:43 UTC:</strong> Cloudflare says it is <a href="iframe.php?url=https%3A%2F%2Fx.com%2Fdok2001%2Fstatus%2F2112811965735202970">already seeing early attacks</a>. Its <a href="iframe.php?url=https%3A%2F%2Fdevelopers.cloudflare.com%2Fchangelog%2Fproduct-group%2Fapplication-security%2F">WAF rules</a> against the known exploit vectors have been <a href="iframe.php?url=https%3A%2F%2Fblog.cloudflare.com%2Fphp-vulnerabilities-waf-protection%2F">live since 03:02 UTC</a> for every customer, free plan included. Its CTO calls them &#8220;a STOPGAP only.&#8221; They help only if your origin server refuses traffic that doesn&#8217;t come through Cloudflare, because an attacker who finds the origin&#8217;s IP address goes straight around them.</p><p><strong>11:09 UTC:</strong> Rather than wait, governments are pulling sites offline. The Dutch parliament, the Dutch national cyber security agency and Finland&#8217;s central government web services <a href="iframe.php?url=https%3A%2F%2Fx.com%2FIntCyberDigest%2Fstatus%2F2112863746049687883">went dark as a precaution</a>, along with universities in Vienna and Freiburg and sites like Tweakers, Pinboard, 4chan and every wiki on Miraheze. I&#8217;m keeping a <a href="iframe.php?url=https%3A%2F%2Fallixsenos.github.io%2Fphpocalypse-tracker%2F">tracker of who went dark and when they come back</a>.</p><p><strong>12:55 UTC:</strong> Japan&#8217;s prime minister, Sanae Takaichi, <a href="iframe.php?url=https%3A%2F%2Fx.com%2Ftakaichi_sanae%2Fstatus%2F2112890642590564386">asked everyone running a public website</a> to check for PHP and patch tonight, adding that if patching quickly is hard, temporarily taking the site down is one effective way to reduce the risk (my translation).</p><p><strong>13:45 UTC:</strong> The NSA <a href="iframe.php?url=https%3A%2F%2Fx.com%2FNSACyber%2Fstatus%2F2112903220209098897">advises</a> that if an immediate update is not feasible, organizations should &#8220;take the system offline until it can be fully mitigated.&#8221;</p><p><strong>14:35 UTC:</strong> <a href="iframe.php?url=https%3A%2F%2Fdeb.sury.org%2F">Ond&#345;ej Sur&#253;&#8217;s Debian packages</a>, which many servers use to run a different PHP version than their distribution ships, <a href="iframe.php?url=https%3A%2F%2Fx.com%2FSchizoDuckie%2Fstatus%2F2112915695713517604">now include the fix</a> for every PHP version back to PHP 5.6. His Ubuntu packages are published through Launchpad, which was down this afternoon.</p><p>Patch now.</p></blockquote><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21O8yp%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Fc2543732-fe1f-4ab4-8ec1-57c43dafca32_770x978.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!O8yp!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2543732-fe1f-4ab4-8ec1-57c43dafca32_770x978.png 424w, https://substackcdn.com/image/fetch/$s_!O8yp!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2543732-fe1f-4ab4-8ec1-57c43dafca32_770x978.png 848w, https://substackcdn.com/image/fetch/$s_!O8yp!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2543732-fe1f-4ab4-8ec1-57c43dafca32_770x978.png 1272w, https://substackcdn.com/image/fetch/$s_!O8yp!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2543732-fe1f-4ab4-8ec1-57c43dafca32_770x978.png 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21O8yp%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Fc2543732-fe1f-4ab4-8ec1-57c43dafca32_770x978.png" width="770" height="978" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c2543732-fe1f-4ab4-8ec1-57c43dafca32_770x978.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:978,&quot;width&quot;:770,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:51856,&quot;alt&quot;:&quot;xkcd's Dependency comic, relabeled: a tower of blocks marked \&quot;every Ubuntu server running PHP from ppa:ondrej/php\&quot; balances on one tiny block marked \&quot;Ond&#345;ej Sur&#253;, who rebuilt every PHP package this afternoon, more or less for free\&quot;, which stands on a slab marked \&quot;Launchpad, which is down\&quot;.&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://chaosguru.substack.com/i/221459870?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2543732-fe1f-4ab4-8ec1-57c43dafca32_770x978.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="xkcd's Dependency comic, relabeled: a tower of blocks marked &quot;every Ubuntu server running PHP from ppa:ondrej/php&quot; balances on one tiny block marked &quot;Ond&#345;ej Sur&#253;, who rebuilt every PHP package this afternoon, more or less for free&quot;, which stands on a slab marked &quot;Launchpad, which is down&quot;." title="xkcd's Dependency comic, relabeled: a tower of blocks marked &quot;every Ubuntu server running PHP from ppa:ondrej/php&quot; balances on one tiny block marked &quot;Ond&#345;ej Sur&#253;, who rebuilt every PHP package this afternoon, more or less for free&quot;, which stands on a slab marked &quot;Launchpad, which is down&quot;." srcset="https://substackcdn.com/image/fetch/$s_!O8yp!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2543732-fe1f-4ab4-8ec1-57c43dafca32_770x978.png 424w, https://substackcdn.com/image/fetch/$s_!O8yp!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2543732-fe1f-4ab4-8ec1-57c43dafca32_770x978.png 848w, https://substackcdn.com/image/fetch/$s_!O8yp!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2543732-fe1f-4ab4-8ec1-57c43dafca32_770x978.png 1272w, https://substackcdn.com/image/fetch/$s_!O8yp!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc2543732-fe1f-4ab4-8ec1-57c43dafca32_770x978.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption"><em>Remix of <a href="iframe.php?url=https%3A%2F%2Fxkcd.com%2F2347%2F">xkcd #2347, &#8220;Dependency&#8221;</a> by Randall Munroe, CC BY-NC 2.5.</em></figcaption></figure></div><p>If you&#8217;re on PHP 8.1 or older this morning, you&#8217;re doing triage this afternoon, not an upgrade. That&#8217;s your server, though, and you get a choice.</p><h2>The part where you don&#8217;t get one</h2><p>On 17 October, Mozilla&#8217;s Dennis Jackson <a href="iframe.php?url=https%3A%2F%2Fbugzilla.mozilla.org%2Fshow_bug.cgi%3Fid%3D2083449">reported</a> that eight intermediate CA keys belonging to eMudhra, which sells certificates as emSign, were trivially recoverable. A P-384 private key should be a random 384-bit number. Engineers write keys in hexadecimal, a base-16 notation that uses the digits 0 to 9 and the letters a to f, and in hex that key is 96 characters long, the same size as a 116-digit ordinary number. All eight were values under 256: two hex characters or fewer, eight bits at most. <a href="iframe.php?url=https%3A%2F%2Fwww.theregister.com%2Fsecurity%2F2026%2F10%2F20%2Findian-certification-authority-emudhras-private-keys-compromised-one-of-them-was-the-number-4%2F5304312">One of them was the number 4</a>. xkcd <a href="iframe.php?url=https%3A%2F%2Fxkcd.com%2F221%2F">called it in 2007</a>.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="iframe.php?url=https%3A%2F%2Fxkcd.com%2F221%2F" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!kXpL!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4bad51ae-6032-4a6c-8c1d-504d317041ca_400x144.png 424w, https://substackcdn.com/image/fetch/$s_!kXpL!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4bad51ae-6032-4a6c-8c1d-504d317041ca_400x144.png 848w, https://substackcdn.com/image/fetch/$s_!kXpL!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4bad51ae-6032-4a6c-8c1d-504d317041ca_400x144.png 1272w, https://substackcdn.com/image/fetch/$s_!kXpL!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4bad51ae-6032-4a6c-8c1d-504d317041ca_400x144.png 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21kXpL%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F4bad51ae-6032-4a6c-8c1d-504d317041ca_400x144.png" width="400" height="144" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4bad51ae-6032-4a6c-8c1d-504d317041ca_400x144.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;normal&quot;,&quot;height&quot;:144,&quot;width&quot;:400,&quot;resizeWidth&quot;:400,&quot;bytes&quot;:7457,&quot;alt&quot;:&quot;xkcd comic: a function named getRandomNumber that returns 4, with the comment: chosen by fair dice roll, guaranteed to be random.&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:&quot;https://xkcd.com/221/&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://chaosguru.substack.com/i/221459870?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4bad51ae-6032-4a6c-8c1d-504d317041ca_400x144.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:&quot;center&quot;,&quot;offset&quot;:false}" class="sizing-normal" alt="xkcd comic: a function named getRandomNumber that returns 4, with the comment: chosen by fair dice roll, guaranteed to be random." title="xkcd comic: a function named getRandomNumber that returns 4, with the comment: chosen by fair dice roll, guaranteed to be random." srcset="https://substackcdn.com/image/fetch/$s_!kXpL!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4bad51ae-6032-4a6c-8c1d-504d317041ca_400x144.png 424w, https://substackcdn.com/image/fetch/$s_!kXpL!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4bad51ae-6032-4a6c-8c1d-504d317041ca_400x144.png 848w, https://substackcdn.com/image/fetch/$s_!kXpL!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4bad51ae-6032-4a6c-8c1d-504d317041ca_400x144.png 1272w, https://substackcdn.com/image/fetch/$s_!kXpL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4bad51ae-6032-4a6c-8c1d-504d317041ca_400x144.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div></div></div></a><figcaption class="image-caption"><a href="iframe.php?url=https%3A%2F%2Fxkcd.com%2F221%2F">xkcd #221, &#8220;Random Number&#8221;</a> by Randall Munroe, CC BY-NC 2.5.</figcaption></figure></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21AvGh%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Fe22e1803-94f7-4059-b3a3-c7ab17d5a01c_1600x900.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!AvGh!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe22e1803-94f7-4059-b3a3-c7ab17d5a01c_1600x900.png 424w, https://substackcdn.com/image/fetch/$s_!AvGh!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe22e1803-94f7-4059-b3a3-c7ab17d5a01c_1600x900.png 848w, https://substackcdn.com/image/fetch/$s_!AvGh!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe22e1803-94f7-4059-b3a3-c7ab17d5a01c_1600x900.png 1272w, https://substackcdn.com/image/fetch/$s_!AvGh!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe22e1803-94f7-4059-b3a3-c7ab17d5a01c_1600x900.png 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21AvGh%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Fe22e1803-94f7-4059-b3a3-c7ab17d5a01c_1600x900.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e22e1803-94f7-4059-b3a3-c7ab17d5a01c_1600x900.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:200624,&quot;alt&quot;:&quot;Two 96-character hexadecimal numbers. Top: a normal P-384 private key, a random mix of digits and letters. Bottom: one of eMudhra's compromised keys, 95 dimmed zeros followed by a red 4.&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://chaosguru.substack.com/i/221459870?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe22e1803-94f7-4059-b3a3-c7ab17d5a01c_1600x900.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Two 96-character hexadecimal numbers. Top: a normal P-384 private key, a random mix of digits and letters. Bottom: one of eMudhra's compromised keys, 95 dimmed zeros followed by a red 4." title="Two 96-character hexadecimal numbers. Top: a normal P-384 private key, a random mix of digits and letters. Bottom: one of eMudhra's compromised keys, 95 dimmed zeros followed by a red 4." srcset="https://substackcdn.com/image/fetch/$s_!AvGh!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe22e1803-94f7-4059-b3a3-c7ab17d5a01c_1600x900.png 424w, https://substackcdn.com/image/fetch/$s_!AvGh!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe22e1803-94f7-4059-b3a3-c7ab17d5a01c_1600x900.png 848w, https://substackcdn.com/image/fetch/$s_!AvGh!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe22e1803-94f7-4059-b3a3-c7ab17d5a01c_1600x900.png 1272w, https://substackcdn.com/image/fetch/$s_!AvGh!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe22e1803-94f7-4059-b3a3-c7ab17d5a01c_1600x900.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">The top key was generated at random for illustration. The bottom value comes from the eight keys Mozilla recovered.</figcaption></figure></div><p>Anyone holding those keys could issue a certificate for any domain (your bank, your company, your mail server) and every client trusting that chain would accept it. Six were TLS intermediates, two were for code signing.</p><p>There is nothing a site owner can patch here. The only cure is distrust. Firefox <a href="iframe.php?url=https%3A%2F%2Fthehackernews.com%2F2026%2F10%2Feight-emudhra-ca-keys-compromised.html">blocked the eight intermediates</a> three hours after the report, then Mozilla <a href="iframe.php?url=https%3A%2F%2Fbugzilla.mozilla.org%2Fshow_bug.cgi%3Fid%3D2083449">emergency-removed trust</a> in the entire emSign ECC Root CA - G3, and Chrome says it is taking a similar path. Apple and Microsoft <a href="iframe.php?url=https%3A%2F%2Femudhra.we-have-a-problem.com%2F">followed</a>, though Ars Technica <a href="iframe.php?url=https%3A%2F%2Farstechnica.com%2Fsecurity%2F2026%2F10%2Fthe-internet-goes-on-high-alert-after-discovery-of-8-compromised-tls-certs%2F">found Edge on Windows 10</a> still connecting to vulnerable hosts on Tuesday night. eMudhra estimates about 30,000 certificates now have to migrate to another chain, and those customers did nothing wrong.</p><h3>Eighteen months</h3><p>The three hours is the good part. The keys came out of a key ceremony on 30 April 2025.</p><div class="pullquote"><p><strong>For roughly eighteen months, eight keys anyone could brute-force on a laptop in milliseconds sat in the web&#8217;s trust stores, and nobody noticed.</strong></p></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21RFqB%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Fec7b1fda-67da-41bf-bdf3-614b31309825_1600x900.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!RFqB!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fec7b1fda-67da-41bf-bdf3-614b31309825_1600x900.png 424w, https://substackcdn.com/image/fetch/$s_!RFqB!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fec7b1fda-67da-41bf-bdf3-614b31309825_1600x900.png 848w, https://substackcdn.com/image/fetch/$s_!RFqB!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fec7b1fda-67da-41bf-bdf3-614b31309825_1600x900.png 1272w, https://substackcdn.com/image/fetch/$s_!RFqB!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fec7b1fda-67da-41bf-bdf3-614b31309825_1600x900.png 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21RFqB%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Fec7b1fda-67da-41bf-bdf3-614b31309825_1600x900.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ec7b1fda-67da-41bf-bdf3-614b31309825_1600x900.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:150152,&quot;alt&quot;:&quot;Timeline. A long red bar covers about 18 months from the key ceremony on 30 April 2025, labeled: keys anyone could brute-force in milliseconds, trusted by the web. At its end, a box lists the response: reported 17 October 2026 at 20:06 UTC, Firefox block at 22:59 UTC, eMudhra revocation on 18 October, Mozilla root removal and Go block on 20 October.&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://chaosguru.substack.com/i/221459870?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fec7b1fda-67da-41bf-bdf3-614b31309825_1600x900.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Timeline. A long red bar covers about 18 months from the key ceremony on 30 April 2025, labeled: keys anyone could brute-force in milliseconds, trusted by the web. At its end, a box lists the response: reported 17 October 2026 at 20:06 UTC, Firefox block at 22:59 UTC, eMudhra revocation on 18 October, Mozilla root removal and Go block on 20 October." title="Timeline. A long red bar covers about 18 months from the key ceremony on 30 April 2025, labeled: keys anyone could brute-force in milliseconds, trusted by the web. At its end, a box lists the response: reported 17 October 2026 at 20:06 UTC, Firefox block at 22:59 UTC, eMudhra revocation on 18 October, Mozilla root removal and Go block on 20 October." srcset="https://substackcdn.com/image/fetch/$s_!RFqB!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fec7b1fda-67da-41bf-bdf3-614b31309825_1600x900.png 424w, https://substackcdn.com/image/fetch/$s_!RFqB!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fec7b1fda-67da-41bf-bdf3-614b31309825_1600x900.png 848w, https://substackcdn.com/image/fetch/$s_!RFqB!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fec7b1fda-67da-41bf-bdf3-614b31309825_1600x900.png 1272w, https://substackcdn.com/image/fetch/$s_!RFqB!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fec7b1fda-67da-41bf-bdf3-614b31309825_1600x900.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>CAs are audited every year for exactly this.</p><p>eMudhra <a href="iframe.php?url=https%3A%2F%2Fbugzilla.mozilla.org%2Fshow_bug.cgi%3Fid%3D2083449">says the keys were generated in certified HSMs</a> (tamper-proof hardware built to generate and guard keys), that a flaw in a key-generation script created a second, weaker key pair, and that staff used it by mistake &#8220;because the key labels were similar.&#8221; That is eMudhra&#8217;s first-day account and nothing more yet; Mozilla is still asking questions. Whatever the cause turns out to be, a certificate authority has exactly one job.</p><p>The replies under every viral post about this are full of racism. That is not okay, it explains nothing, and it moves the ecosystem nowhere good.</p><h3>The cure hurts too</h3><p>Go <a href="iframe.php?url=https%3A%2F%2Fthehackernews.com%2F2026%2F10%2Fgo-issues-emergency-update-blocking.html">shipped 1.27.3 and 1.26.10</a> with the eight keys <a href="iframe.php?url=https%3A%2F%2Fgithub.com%2Fgolang%2Fgo%2Fissues%2F82345">hard-blocked</a> and no setting to turn that off, even for programs that bring their own trusted roots. That&#8217;s the right call, and the bill still goes to whoever rebuilds next, with no say in it.</p><p>Browsers fixed this in three hours because browsers update themselves. Everything else is on you:</p><ul><li><p>Go 1.25 and older are out of support and <a href="iframe.php?url=https%3A%2F%2Fthehackernews.com%2F2026%2F10%2Fgo-issues-emergency-update-blocking.html">get no fix</a>.</p></li><li><p>curl on macOS <a href="iframe.php?url=https%3A%2F%2Fwww.itnews.com.au%2Fnews%2Fcloudflare-warns-fixing-botched-emudhra-certs-goes-beyond-browsers-629804">still accepts the chain</a>, because it reads a local certificate file and skips revocation.</p></li><li><p>Container images <a href="iframe.php?url=https%3A%2F%2Fwww.itnews.com.au%2Fnews%2Fcloudflare-warns-fixing-botched-emudhra-certs-goes-beyond-browsers-629804">ship whatever trust store</a> they were built with.</p></li><li><p>Phones, appliances and IoT that never get updates keep trusting the root forever.</p></li></ul><p><a href="iframe.php?url=https%3A%2F%2Fwww.itnews.com.au%2Fnews%2Fcloudflare-warns-fixing-botched-emudhra-certs-goes-beyond-browsers-629804">Cloudflare&#8217;s advice</a> to anyone hitting the resulting errors: &#8220;It&#8217;s important to not resolve these errors by disabling verification.&#8221; Plenty of people will.</p><h2>How long the fix takes to reach you</h2><p>For eMudhra, browsers and Go have a fix. curl on macOS and every hand-rolled trust store are still waiting for one, or don&#8217;t know they need it.</p><p>PHP shipped its fix at 14:00 UTC, and its own advisory says the overnight workarounds only narrow the attack.</p><p>Either way, what decides your exposure is how long the fix takes to reach your servers. Firefox took three hours because browsers update themselves. A Go binary built last spring gets the TLS fix only when someone rebuilds it, and plenty never will be.</p><p>A server on PHP 7.4 or older gets a fix only if someone packages one for it, and only if someone installs it.</p><p>That part is yours, and it is dull: a PHP version that still gets patches, and base images you rebuild on a schedule of your own. The teams that already do it will patch as soon as the release lands and go back to work.</p><h2>Errata and updates</h2><p><em>First published 21 October 2026, 10:33 UTC. Last updated 21 October 2026, 17:27 UTC.</em></p><ul><li><p>Update, 17:27 UTC: added a remix of <a href="iframe.php?url=https%3A%2F%2Fxkcd.com%2F2347%2F">xkcd 2347</a>.</p></li><li><p>Update, 17:27 UTC: Ond&#345;ej Sur&#253;&#8217;s packages <a href="iframe.php?url=https%3A%2F%2Fx.com%2FSchizoDuckie%2Fstatus%2F2112915695713517604">carry the fix back to PHP 5.6</a>, so the earlier line saying nothing older than PHP 7.4 gets a fix is corrected.</p></li><li><p>Update, 17:27 UTC: added <a href="iframe.php?url=https%3A%2F%2Fblog.cloudflare.com%2Fphp-vulnerabilities-waf-protection%2F">Cloudflare&#8217;s writeup</a>: its rules were live from 03:02 UTC, and it credits the finders. Added the <a href="iframe.php?url=https%3A%2F%2Fx.com%2Ftakaichi_sanae%2Fstatus%2F2112890642590564386">Japanese prime minister&#8217;s</a> and the <a href="iframe.php?url=https%3A%2F%2Fx.com%2FNSACyber%2Fstatus%2F2112903220209098897">NSA&#8217;s</a> calls to take sites offline if they cannot be patched.</p></li></ul><ul><li><p>Update, 14:05 UTC: <a href="iframe.php?url=https%3A%2F%2Fwww.php.net%2Farchive%2F2026.php%232026-10-21-5">PHP released the fix</a> at 14:00 UTC. The 14:00 UTC callout now has the versions, the CVEs and PHP&#8217;s own verdict on the workarounds. A new note after the end-of-life question records what PHP decided: no releases for PHP 8.1 and older, but source backports for PHP 7.4, 8.0 and 8.1. The closing section reflects the release.</p></li></ul><ul><li><p>Update, 13:00 UTC: added Bob Rudis&#8217;s <a href="iframe.php?url=https%3A%2F%2Fmastodon.social%2F%40hrbrmstr%2F117477715734677099">note that firewall, router and NAS admin interfaces run PHP</a>, and a link to the <a href="iframe.php?url=https%3A%2F%2Fallixsenos.github.io%2Fphpocalypse-tracker%2F">PHPocalypse tracker</a>, which lists the sites taken offline and when they return.</p></li></ul><ul><li><p>Update, 11:55 UTC: governments, universities and large sites are <a href="iframe.php?url=https%3A%2F%2Fx.com%2FIntCyberDigest%2Fstatus%2F2112863746049687883">taking PHP services offline as a precaution</a>. Added to the updates in the PHP section.</p></li></ul><ul><li><p>Update, 11:25 UTC: PHP 8.6 release manager Joe Ferguson <a href="iframe.php?url=https%3A%2F%2Fphpc.social%2F%40joepferguson%2F117476265521630745">says ini settings will not mitigate the flaws</a>, and security researcher Charlie Eriksen, who has seen the patches, <a href="iframe.php?url=https%3A%2F%2Fx.com%2FCharlieEriksen%2Fstatus%2F2112847178532323683">confirms it</a>. Added to the updates in the PHP section, and the open question about <code>session.upload_progress</code> is removed from the 14:00 UTC callout.</p></li><li><p>Update, 11:15 UTC: Cloudflare CTO Dane Knecht <a href="iframe.php?url=https%3A%2F%2Fx.com%2Fdok2001%2Fstatus%2F2112811965735202970">reports early attacks on the PHP flaws</a>, and Cloudflare has <a href="iframe.php?url=https%3A%2F%2Fdevelopers.cloudflare.com%2Fchangelog%2Fproduct-group%2Fapplication-security%2F">deployed stopgap WAF rules</a> for all customers, including the free plan. Added as an update in the PHP section.</p></li><li><p>Correction, 11:15 UTC: the researcher who posted the viral PHP exploit has retracted it. The bug they &#8220;recreated &amp; lab/field tested&#8221; is, <a href="iframe.php?url=https%3A%2F%2Fjackalsyn.com%2Fposts%2Fphp-up-2026.html">in their own words</a>, &#8220;DEAD at the addref&#8221;, and what remains is a medium-severity memory bug without code execution. The first version of this post called it a working exploit and cited the same researcher on whether disabling <code>session.upload_progress</code> covers both bugs. Both are corrected, and the citation is removed because their page now says both things.</p></li><li><p>Correction, 11:15 UTC: the first version said Apple and Microsoft followed Mozilla with blocks. Ars Technica <a href="iframe.php?url=https%3A%2F%2Farstechnica.com%2Fsecurity%2F2026%2F10%2Fthe-internet-goes-on-high-alert-after-discovery-of-8-compromised-tls-certs%2F">found Edge on Windows 10</a> still connecting to vulnerable hosts on Tuesday night, so the sentence now says so.</p></li><li><p>Update, 11:10 UTC: added the obligatory <a href="iframe.php?url=https%3A%2F%2Fxkcd.com%2F221%2F">xkcd 221</a>.</p></li></ul><h2>Resources</h2><p><strong>PHP</strong></p><ul><li><p><a href="iframe.php?url=https%3A%2F%2Fwww.php.net%2Farchive%2F2026.php%232026-10-21-5">Security advisory: critical remote code execution vulnerabilities, update now</a>, php.net</p></li><li><p><a href="iframe.php?url=https%3A%2F%2Fgithub.com%2Fphp%2Fphp-src%2Fsecurity%2Fadvisories%2FGHSA-w8hw-w9fx-j79w">GHSA-w8hw-w9fx-j79w, CVE-2026-109618</a>, PHP on GitHub</p></li><li><p><a href="iframe.php?url=https%3A%2F%2Fgithub.com%2Fphp%2Fphp-src%2Fsecurity%2Fadvisories%2FGHSA-6wmf-4rv5-p3rp">GHSA-6wmf-4rv5-p3rp, CVE-2026-109619</a>, PHP on GitHub</p></li><li><p><a href="iframe.php?url=https%3A%2F%2Fwww.php.net%2Farchive%2F2026.php%232026-10-20-1">PHP security release pre-announcement</a>, php.net</p></li><li><p><a href="iframe.php?url=https%3A%2F%2Fwww.php.net%2Fsupported-versions.php">PHP supported versions</a>, php.net</p></li><li><p><a href="iframe.php?url=https%3A%2F%2Fx.com%2Fwatchtowrcyber%2Fstatus%2F2112611507749982605">watchTowr confirms the leak</a>, X</p></li><li><p><a href="iframe.php?url=https%3A%2F%2Fjackalsyn.com%2Fposts%2Fphp-up-2026.html">Exploit writeup and its retraction</a>, J4ck3LSyN</p></li><li><p><a href="iframe.php?url=https%3A%2F%2Fwww.therepository.email%2Fexploit-claims-surface-ahead-of-critical-php-security-release-as-wordpress-hosts-scramble">Exploit claims and WordPress hosts disabling upload progress</a>, The Repository</p></li><li><p><a href="iframe.php?url=https%3A%2F%2Fsansec.io%2Fresearch%2Fphp2shell">Critical PHP RCE: CVE-2026-109618 and CVE-2026-109619</a>, Sansec</p></li><li><p><a href="iframe.php?url=https%3A%2F%2Fma.ttias.be%2Fphp-cve-2026-109618-early-mitigation%2F">Early mitigation steps</a>, ma.ttias.be</p></li><li><p><a href="iframe.php?url=https%3A%2F%2Fx.com%2Fdok2001%2Fstatus%2F2112811965735202970">Cloudflare WAF rules and early attacks</a>, Dane Knecht, X</p></li><li><p><a href="iframe.php?url=https%3A%2F%2Fphpc.social%2F%40joepferguson%2F117476265521630745">&#8220;ini settings won&#8217;t save you&#8221;</a>, Joe Ferguson, PHP 8.6 release manager, Mastodon</p></li><li><p><a href="iframe.php?url=https%3A%2F%2Fx.com%2FCharlieEriksen%2Fstatus%2F2112847178532323683">Configuration changes confirmed not to mitigate</a>, Charlie Eriksen, X</p></li><li><p><a href="iframe.php?url=https%3A%2F%2Fallixsenos.github.io%2Fphpocalypse-tracker%2F">PHPocalypse tracker: sites taken offline and back up</a>, chaos.guru</p></li><li><p><a href="iframe.php?url=https%3A%2F%2Fmastodon.social%2F%40hrbrmstr%2F117477715734677099">Appliance admin interfaces that run PHP</a>, Bob Rudis (Censys), Mastodon</p></li><li><p><a href="iframe.php?url=https%3A%2F%2Fdevelopers.cloudflare.com%2Fchangelog%2Fproduct-group%2Fapplication-security%2F">Cloudflare WAF changelog</a>, Cloudflare</p></li><li><p><a href="iframe.php?url=https%3A%2F%2Fblog.cloudflare.com%2Fphp-vulnerabilities-waf-protection%2F">Cloudflare deploys protections against php2shell vulnerability</a>, Cloudflare</p></li><li><p><a href="iframe.php?url=https%3A%2F%2Fx.com%2Ftakaichi_sanae%2Fstatus%2F2112890642590564386">Request to patch PHP tonight</a>, Sanae Takaichi, Prime Minister of Japan, X</p></li><li><p><a href="iframe.php?url=https%3A%2F%2Fx.com%2FNSACyber%2Fstatus%2F2112903220209098897">Take systems offline if you cannot update</a>, NSA Cybersecurity, X</p></li><li><p><a href="iframe.php?url=https%3A%2F%2Fx.com%2FSchizoDuckie%2Fstatus%2F2112915695713517604">Fixed packages back to PHP 5.6</a>, SchizoDuckie, X</p></li><li><p><a href="iframe.php?url=https%3A%2F%2Fdeb.sury.org%2F">PHP packages for Debian and Ubuntu</a>, Ond&#345;ej Sur&#253;</p></li><li><p><a href="iframe.php?url=https%3A%2F%2Fnodejs.org%2Fen%2Fblog%2Fvulnerability%2Foctober-2026-security-releases">Node.js October 2026 security releases</a>, Node.js</p></li><li><p><a href="iframe.php?url=https%3A%2F%2Fwordpress.org%2Fabout%2Fstats%2F">WordPress usage statistics</a>, WordPress.org</p></li><li><p><a href="iframe.php?url=https%3A%2F%2Fmcpmag.com%2Farticles%2F2017%2F05%2F15%2Femergency-patch-for-wannacrypt-ransomware.aspx">Microsoft&#8217;s WannaCry patch for Windows XP</a>, MCPmag</p></li><li><p><a href="iframe.php?url=https%3A%2F%2Fwww.tenable.com%2Fblog%2Fcve-2019-0708-bluekeep-exploits-could-be-around-the-corner">BlueKeep, CVE-2019-0708</a>, Tenable</p></li></ul><p><strong>eMudhra and TLS</strong></p><ul><li><p><a href="iframe.php?url=https%3A%2F%2Fbugzilla.mozilla.org%2Fshow_bug.cgi%3Fid%3D2083449">Bug 2083449: private key compromise of eMudhra intermediate certificates</a>, Mozilla</p></li><li><p><a href="iframe.php?url=https%3A%2F%2Femudhra.we-have-a-problem.com%2F">eMudhra intermediate CA compromise tracker</a></p></li><li><p><a href="iframe.php?url=https%3A%2F%2Farstechnica.com%2Fsecurity%2F2026%2F10%2Fthe-internet-goes-on-high-alert-after-discovery-of-8-compromised-tls-certs%2F">The Internet goes on high alert after discovery of 8 compromised TLS certs</a>, Ars Technica</p></li><li><p><a href="iframe.php?url=https%3A%2F%2Fwww.theregister.com%2Fsecurity%2F2026%2F10%2F20%2Findian-certification-authority-emudhras-private-keys-compromised-one-of-them-was-the-number-4%2F5304312">eMudhra&#8217;s private keys compromised, one of them was the number 4</a>, The Register</p></li><li><p><a href="iframe.php?url=https%3A%2F%2Fthehackernews.com%2F2026%2F10%2Feight-emudhra-ca-keys-compromised.html">Eight eMudhra CA keys compromised</a>, The Hacker News</p></li><li><p><a href="iframe.php?url=https%3A%2F%2Fthehackernews.com%2F2026%2F10%2Fgo-issues-emergency-update-blocking.html">Go issues emergency update blocking eight CA keys</a>, The Hacker News</p></li><li><p><a href="iframe.php?url=https%3A%2F%2Fgithub.com%2Fgolang%2Fgo%2Fissues%2F82345">crypto/x509: mitigation for a specific Certificate Authority</a>, Go issue tracker</p></li><li><p><a href="iframe.php?url=https%3A%2F%2Fwww.itnews.com.au%2Fnews%2Fcloudflare-warns-fixing-botched-emudhra-certs-goes-beyond-browsers-629804">Cloudflare warns fixing botched eMudhra certs goes beyond browsers</a>, iTnews</p></li></ul>]]></content:encoded></item><item><title><![CDATA[WWLD #3: Email has observability]]></title><description><![CDATA[A dinosaur-era protocol in the modern age]]></description><link>https://chaosguru.substack.com/p/wwld-3-email-has-observability</link><guid isPermaLink="false">https://chaosguru.substack.com/p/wwld-3-email-has-observability</guid><dc:creator><![CDATA[Luka Kladarić]]></dc:creator><pubDate>Wed, 14 Oct 2026 13:55:41 GMT</pubDate><enclosure url="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21F1ug%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F306ce2ab-1909-446a-895e-26dc4d7ba067_1672x941.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21F1ug%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F306ce2ab-1909-446a-895e-26dc4d7ba067_1672x941.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!F1ug!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F306ce2ab-1909-446a-895e-26dc4d7ba067_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!F1ug!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F306ce2ab-1909-446a-895e-26dc4d7ba067_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!F1ug!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F306ce2ab-1909-446a-895e-26dc4d7ba067_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!F1ug!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F306ce2ab-1909-446a-895e-26dc4d7ba067_1672x941.png 1456w" sizes="100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21F1ug%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F306ce2ab-1909-446a-895e-26dc4d7ba067_1672x941.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/306ce2ab-1909-446a-895e-26dc4d7ba067_1672x941.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2204688,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://chaosguru.substack.com/i/220369705?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F306ce2ab-1909-446a-895e-26dc4d7ba067_1672x941.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!F1ug!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F306ce2ab-1909-446a-895e-26dc4d7ba067_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!F1ug!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F306ce2ab-1909-446a-895e-26dc4d7ba067_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!F1ug!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F306ce2ab-1909-446a-895e-26dc4d7ba067_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!F1ug!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F306ce2ab-1909-446a-895e-26dc4d7ba067_1672x941.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>SMTP (the protocol that powers all email) dates back to 1982, written for a network where every machine belonged to a university or a government lab and everyone knew everyone. Nothing in it checks that you are who the From line says you are. <strong>You could, and to a degree still can, send an email as literally anyone in the world, because there&#8217;s zero authentication requirement baked into SMTP.</strong></p><p>Every piece of sender authentication was bolted on decades later, in response to rampant fraud and spam, and the fact that we&#8217;re still getting spam tells you how solved that problem is.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21IdoE%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F72f6106c-d4c6-4dd7-ad0f-fa4bc2f0d88f_1672x941.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!IdoE!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F72f6106c-d4c6-4dd7-ad0f-fa4bc2f0d88f_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!IdoE!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F72f6106c-d4c6-4dd7-ad0f-fa4bc2f0d88f_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!IdoE!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F72f6106c-d4c6-4dd7-ad0f-fa4bc2f0d88f_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!IdoE!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F72f6106c-d4c6-4dd7-ad0f-fa4bc2f0d88f_1672x941.png 1456w" sizes="100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21IdoE%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F72f6106c-d4c6-4dd7-ad0f-fa4bc2f0d88f_1672x941.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/72f6106c-d4c6-4dd7-ad0f-fa4bc2f0d88f_1672x941.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2631501,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://chaosguru.substack.com/i/220369705?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F72f6106c-d4c6-4dd7-ad0f-fa4bc2f0d88f_1672x941.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!IdoE!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F72f6106c-d4c6-4dd7-ad0f-fa4bc2f0d88f_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!IdoE!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F72f6106c-d4c6-4dd7-ad0f-fa4bc2f0d88f_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!IdoE!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F72f6106c-d4c6-4dd7-ad0f-fa4bc2f0d88f_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!IdoE!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F72f6106c-d4c6-4dd7-ad0f-fa4bc2f0d88f_1672x941.png 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>So, I&#8217;m not going to be talking about where your team&#8217;s mailboxes should be, but email deliverability instead.</p><p>Whether it&#8217;s invoices, newsletters, or replies to clients, there&#8217;s a noticeable increase in issues with legitimate email making it to legitimate recipients.</p><p>They told us this was gonna happen, and most of the world ignored them. In 2023, Google and Yahoo coordinated on new rules and requirements for high-volume senders to take effect in 2024, and in 2025 Microsoft joined the effort.</p><p>The enforcement has been getting stricter and stricter, and companies are noticing, in a bad way.</p><h2>The world will tell you who&#8217;s impersonating you</h2><p>The starting point for anything in my professional world is observability. I need to know what&#8217;s happening before I can improve on the situation. Email is no different, and luckily for us observability was built into the mechanisms that are affecting your delivery.</p><p>Most big mailbox providers will send you a daily report on every message that claimed to come from your domain: which servers sent it, and whether it passed authentication. All you have to do is ask.</p><p>When a client tells me their email isn&#8217;t landing in people&#8217;s mailboxes, whether it&#8217;s the invoices, the newsletters or the password resets, the first thing I do is add a reporting address to their DMARC record. Or, more often than not, add a DMARC record with a reporting address, because they had none.</p><h2>DMARC? Wha...</h2><p>Sorry, got ahead of myself there.</p><p>Going back to the Ancient Times, before any of the stuff that we&#8217;re actually talking about, mass spam was handled with blacklists. If your IP was known for sending a bunch of undesired email, it would be listed in one of a dozen internet blacklists and anyone who bothered to check would reject email coming from you. Blacklisting an internet provider or a shared hosting provider was bad for their business, so it forced them to care about what their users were doing to the rest of the world. The concept of email reputation was born. Blacklisting IPs doesn&#8217;t work on its own any more, but reputation is very much still a thing.</p><p>Fast forward to today, there are three DNS records that affect your sent email, and they work together.</p><p><strong>SPF (sender policy framework)</strong> came first. Announced in 2003, and standardized in 2014. You publish a list of servers/IPs allowed to send email for your domain, and the receiver checks the sending server against it.</p><pre><code><code>example.com.  TXT  "v=spf1 include:_spf.google.com include:mailgun.org ~all"</code></code></pre><p>This SPF record for our <code>example.com</code> domain instructs receivers (via includes) that Google and Mailgun are approved senders of email for that domain. <code>~all</code> says &#8220;senders not listed here are suspicious&#8221;, a so-called &#8220;soft fail&#8221;. There&#8217;s also <code>-all</code> which is the hard fail instruction or &#8220;anything else is not us&#8221;, and <code>+all</code> which means &#8220;anyone not listed here is <strong>explicitly trusted</strong>&#8220; which should never ever be used except for academic purposes.</p><p>That worked for a bit, but these days everybody forwards their email. The old university address, the change in surname, the shared info@ that fans out to three people. Once an email message is automatically forwarded, the forwarding server becomes the sender, that server isn&#8217;t on your list of allowed senders, and SPF verification fails. Because of that, SPF enforcement has been very lax, so the overall result has been... underwhelming. Up until recently, you could get very far with misconfigured or outright missing SPF.</p><p><strong>DKIM (DomainKeys Identified Mail)</strong> came from merging Yahoo&#8217;s DomainKeys and Cisco&#8217;s Identified Internet Mail efforts. Announced in 2004 and standardized in 2011. It&#8217;s a cryptographic signature method, with DNS carrying the public keys. The signature is part of the message, so it survives relaying and forwarding as long as nothing rewrites the parts of the message that are signed. As a bonus, a domain can have multiple keys published, so each sending service gets its own.</p><pre><code><code>google._domainkey.example.com.  TXT  "v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0B...IDAQAB"</code></code></pre><p>OR</p><pre><code><code>s1._domainkey.example.com.  CNAME  s1.domainkey.provider.example.</code></code></pre><p>That lets providers manage the published keys and rotate them over time.</p><p>DKIM works really well, but unlike SPF which at least lets you signal what to do with messages that don&#8217;t satisfy it, there&#8217;s nothing like that in DKIM. Exercise left to the reader. &#128579;</p><p>There&#8217;s another little gotcha that&#8217;s often glossed over: SPF isn&#8217;t verified against the <code>From</code> field of your messages, the part that is usually displayed to readers, but instead it&#8217;s verified against the <code>Return-Path</code> field. DKIM also has a gotcha of its own, in that the sending service/software decides which key to use to sign a message, and can use a completely unrelated domain. And they do.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21g07k%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F986ea639-1b57-4d4a-bc6a-fd8edaa8b92b_1672x941.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!g07k!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F986ea639-1b57-4d4a-bc6a-fd8edaa8b92b_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!g07k!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F986ea639-1b57-4d4a-bc6a-fd8edaa8b92b_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!g07k!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F986ea639-1b57-4d4a-bc6a-fd8edaa8b92b_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!g07k!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F986ea639-1b57-4d4a-bc6a-fd8edaa8b92b_1672x941.png 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21g07k%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F986ea639-1b57-4d4a-bc6a-fd8edaa8b92b_1672x941.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/986ea639-1b57-4d4a-bc6a-fd8edaa8b92b_1672x941.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1605921,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://chaosguru.substack.com/i/220369705?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F986ea639-1b57-4d4a-bc6a-fd8edaa8b92b_1672x941.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!g07k!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F986ea639-1b57-4d4a-bc6a-fd8edaa8b92b_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!g07k!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F986ea639-1b57-4d4a-bc6a-fd8edaa8b92b_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!g07k!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F986ea639-1b57-4d4a-bc6a-fd8edaa8b92b_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!g07k!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F986ea639-1b57-4d4a-bc6a-fd8edaa8b92b_1672x941.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>But why? Why would my newsletter service sign my emails with their keys? If you remember at the top I mentioned email reputation, and that&#8217;s precisely why. They can&#8217;t sign as you until you publish their key in your DNS, so until then they sign as themselves, protecting their own reputation even if you don&#8217;t care about yours.</p><p><strong>DMARC (Domain-based Message Authentication, Reporting and Conformance)</strong> was announced in 2012 and only became a formal standard in May 2026, but ignoring it was already costing you way before that. DMARC tells your recipients how you want SPF and DKIM failures handled, where you want your reports sent, and a lot of other smaller details about your domain.</p><pre><code><code>_dmarc.example.com.  TXT  "v=DMARC1; p=none"</code></code></pre><p>Even this simplest record is a positive signal: it tells the world you care about your reputation, and according to the biggest providers it&#8217;s the bare minimum.</p><h2>Getting a handle on it</h2><p>To me, the most important aspect of DMARC is the reporting, and it&#8217;s easily the most ignored.</p><p>Understandably so, because the raw zipped XML reports, one per receiver per day, that come into your mailbox from dozens of receivers, are completely unwieldy to a human.</p><p>Luckily, Cloudflare gives us a FREE DMARC reporting interface. There are other free offerings, but most are artificially limited to convert you to a paid user while Cloudflare will happily let you use this for each domain on their free offering.</p><p>So, the very first thing I do when dealing with email deliverability issues is to move a domain over to Cloudflare if it isn&#8217;t already, and to set up DMARC reporting.</p><pre><code><code>v=DMARC1; p=none; rua=mailto:a1b2...c3d4@dmarc-reports.cloudflare.net</code></code></pre><p>(example, don&#8217;t use that exact address, Cloudflare will give you a unique address for each of your domains)</p><p>With this you&#8217;re set to receive reports......... in a couple of days. This process is far from real-time, it takes about 24 hours for anyone to notice that you care, and some more time for reports to actually start trickling in. Realistically, you&#8217;re going to give it a week before you can draw any big conclusions. That&#8217;s why this is the first step, because it takes a week to get confidence in any result. For a smaller sender potentially even longer.</p><p>After a week, it might look something like this: (blue is good, red is bad)</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21qgmL%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F7082f5d6-afab-46cc-8fb6-d6cf1f350c31_1830x868.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!qgmL!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7082f5d6-afab-46cc-8fb6-d6cf1f350c31_1830x868.png 424w, https://substackcdn.com/image/fetch/$s_!qgmL!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7082f5d6-afab-46cc-8fb6-d6cf1f350c31_1830x868.png 848w, https://substackcdn.com/image/fetch/$s_!qgmL!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7082f5d6-afab-46cc-8fb6-d6cf1f350c31_1830x868.png 1272w, https://substackcdn.com/image/fetch/$s_!qgmL!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7082f5d6-afab-46cc-8fb6-d6cf1f350c31_1830x868.png 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21qgmL%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F7082f5d6-afab-46cc-8fb6-d6cf1f350c31_1830x868.png" width="1456" height="691" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7082f5d6-afab-46cc-8fb6-d6cf1f350c31_1830x868.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:691,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:76903,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://chaosguru.substack.com/i/220369705?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7082f5d6-afab-46cc-8fb6-d6cf1f350c31_1830x868.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!qgmL!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7082f5d6-afab-46cc-8fb6-d6cf1f350c31_1830x868.png 424w, https://substackcdn.com/image/fetch/$s_!qgmL!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7082f5d6-afab-46cc-8fb6-d6cf1f350c31_1830x868.png 848w, https://substackcdn.com/image/fetch/$s_!qgmL!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7082f5d6-afab-46cc-8fb6-d6cf1f350c31_1830x868.png 1272w, https://substackcdn.com/image/fetch/$s_!qgmL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7082f5d6-afab-46cc-8fb6-d6cf1f350c31_1830x868.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>More importantly, under that graph there will be a table:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21m9gl%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Fecef36f9-bf77-49bd-b276-2339d89ff8a6_1838x840.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!m9gl!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fecef36f9-bf77-49bd-b276-2339d89ff8a6_1838x840.png 424w, https://substackcdn.com/image/fetch/$s_!m9gl!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fecef36f9-bf77-49bd-b276-2339d89ff8a6_1838x840.png 848w, https://substackcdn.com/image/fetch/$s_!m9gl!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fecef36f9-bf77-49bd-b276-2339d89ff8a6_1838x840.png 1272w, https://substackcdn.com/image/fetch/$s_!m9gl!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fecef36f9-bf77-49bd-b276-2339d89ff8a6_1838x840.png 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21m9gl%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Fecef36f9-bf77-49bd-b276-2339d89ff8a6_1838x840.png" width="1456" height="665" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ecef36f9-bf77-49bd-b276-2339d89ff8a6_1838x840.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:665,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:148376,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://chaosguru.substack.com/i/220369705?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fecef36f9-bf77-49bd-b276-2339d89ff8a6_1838x840.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!m9gl!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fecef36f9-bf77-49bd-b276-2339d89ff8a6_1838x840.png 424w, https://substackcdn.com/image/fetch/$s_!m9gl!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fecef36f9-bf77-49bd-b276-2339d89ff8a6_1838x840.png 848w, https://substackcdn.com/image/fetch/$s_!m9gl!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fecef36f9-bf77-49bd-b276-2339d89ff8a6_1838x840.png 1272w, https://substackcdn.com/image/fetch/$s_!m9gl!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fecef36f9-bf77-49bd-b276-2339d89ff8a6_1838x840.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>What I can tell from this is that there are 4 legitimate senders on behalf of this domain: Google, AhaSend, DA International Group and Plus Hosting Grupa, because they show volume that makes sense for this domain. Two of those (AhaSend and DA International) have DKIM properly set up, so their emails survive forwarding. Two do not, so I am guessing the 7 emails attributed to Microsoft Corporation and 6 attributed to Hetzner are actually emails from Google/Plus that did not have DKIM signatures forwarded by Microsoft/Hetzner which broke SPF alignment.</p><p>That tells me that if we configure Google and Plus to use DKIM properly, those two &#8220;senders&#8221; would disappear. I&#8217;d better tell my client they ignored the last parts of my instructions. &#128579;</p><p>This will be a process of trial and error, with a week-long feedback loop. Change a setting, wait for reports to come in, analyze, react.</p><p>Once your legitimate email is at 100% DMARC pass, you can slowly move your DMARC policy (p) to <code>quarantine</code> (sending failing messages to the Spam folder) and ultimately <code>reject</code>, which outright rejects failing messages.</p><p>The <code>reject</code> setting isn&#8217;t necessary, even having <code>p=quarantine</code> makes your domain unattractive to spammers and scammers because they know their stuff will automatically land in the Spam box, hurting their chances of a successful conversion. They&#8217;ll find a more vulnerable target and leave you alone.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21ZyLx%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F8025c45b-519d-43d5-847e-ff51ab0a1257_1672x941.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ZyLx!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8025c45b-519d-43d5-847e-ff51ab0a1257_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!ZyLx!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8025c45b-519d-43d5-847e-ff51ab0a1257_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!ZyLx!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8025c45b-519d-43d5-847e-ff51ab0a1257_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!ZyLx!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8025c45b-519d-43d5-847e-ff51ab0a1257_1672x941.png 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21ZyLx%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F8025c45b-519d-43d5-847e-ff51ab0a1257_1672x941.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8025c45b-519d-43d5-847e-ff51ab0a1257_1672x941.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2452113,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://chaosguru.substack.com/i/220369705?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8025c45b-519d-43d5-847e-ff51ab0a1257_1672x941.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!ZyLx!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8025c45b-519d-43d5-847e-ff51ab0a1257_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!ZyLx!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8025c45b-519d-43d5-847e-ff51ab0a1257_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!ZyLx!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8025c45b-519d-43d5-847e-ff51ab0a1257_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!ZyLx!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8025c45b-519d-43d5-847e-ff51ab0a1257_1672x941.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Most of the time your problem isn&#8217;t &#8220;<em>are you sending spam</em>&#8221;, it&#8217;s &#8220;<em>is someone using your domain to send spam, hurting your reputation in the process</em>&#8221;. Having a proper SPF/DKIM/DMARC setup makes that impossible on your own domain, and your email deliverability will be entirely the result of what you send out into the world.</p><p>Another often overlooked thing is that email is such a weird and antiquated thing that emails can also come from subdomains, and that those subdomains (can) have their own SPF/DKIM records. If you have and use SPF/DKIM on your domain, but don&#8217;t have DMARC <code>p=quarantine</code> or stricter, your subdomains are easy targets for spammers and scammers.</p><h2>If you send marketing emails, you&#8217;re not done</h2><p>The process outlined above works for human and transactional email, the kind that happens because a user you have an established relationship with did something on your system like make a purchase, or something happened to that user&#8217;s account like a service is about to expire.</p><p>Automated messaging that has the purpose of selling or promoting stuff, but also newsletters, onboarding, abandoned cart and other commercial lifecycle messages, all fall under &#8220;marketing&#8221; for compliance reasons and have legal and technical implications. Major email providers expect to see one-click unsubscribe headers (RFC 8058), those unsubscribes honored within 2 days, low spam complaint rates, and a couple of other things from you.</p><p>I <strong>highly</strong> recommend not sending any of these categories of emails manually from your human account but using a dedicated service that will have solutions for all of these out of the box.</p><h2>I don&#8217;t send email from that domain so I don&#8217;t have to do anything, right?</h2><p>Domains that never send email should proactively set their DNS to disallow email. That ensures no spammer squatters abuse your domain while you ignore it.</p><p>The ultimate &#8220;no email to or from here&#8221; record set looks like this:</p><pre><code><code>example.com.  TXT  "v=spf1 -all"
*._domainkey.example.com.  TXT  "v=DKIM1; p="
_dmarc.example.com.  TXT  "v=DMARC1; p=reject;"
example.com.  MX  0 .</code></code></pre><ul><li><p>SPF says &#8220;nobody is allowed, and anyone who tries is fake&#8221;</p></li><li><p>DKIM says &#8220;any key requested is empty and invalid&#8221;</p></li><li><p>DMARC says &#8220;anyone who fails SPF and DKIM should be outright rejected&#8221;</p></li><li><p>A null MX says &#8220;this domain is uninterested in receiving email&#8221;</p></li></ul><h2>Who to send through</h2><p>Good authentication on an ordinary provider beats a premium provider with broken DKIM. If you&#8217;ve set up DMARC reporting you will have no trouble figuring out who is and who isn&#8217;t a good provider for your email.</p><h2>Your next step</h2><p>Check the DMARC setup on your domain today. MX Toolbox has a free <a href="iframe.php?url=https%3A%2F%2Fmxtoolbox.com%2Fdmarc.aspx">DMARC Check Tool</a> which will show you any DMARC records and interpret them for you.</p><p><em>More from the <a href="iframe.php?url=https%3A%2F%2Fchaosguru.substack.com%2Ft%2Fwwld">What Would Luka Do</a> series.</em></p>]]></content:encoded></item><item><title><![CDATA[WWLD #2: Cloudflare is DNS]]></title><description><![CDATA[Boring at the registrar, relentless at the edge.]]></description><link>https://chaosguru.substack.com/p/wwld-2-cloudflare-is-dns</link><guid isPermaLink="false">https://chaosguru.substack.com/p/wwld-2-cloudflare-is-dns</guid><dc:creator><![CDATA[Luka Kladarić]]></dc:creator><pubDate>Tue, 29 Sep 2026 08:36:45 GMT</pubDate><enclosure url="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21E6xz%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Fdaaf15d6-a061-4b50-ad65-2c5565665353_1672x941.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21E6xz%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Fdaaf15d6-a061-4b50-ad65-2c5565665353_1672x941.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!E6xz!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdaaf15d6-a061-4b50-ad65-2c5565665353_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!E6xz!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdaaf15d6-a061-4b50-ad65-2c5565665353_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!E6xz!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdaaf15d6-a061-4b50-ad65-2c5565665353_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!E6xz!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdaaf15d6-a061-4b50-ad65-2c5565665353_1672x941.png 1456w" sizes="100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21E6xz%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Fdaaf15d6-a061-4b50-ad65-2c5565665353_1672x941.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/daaf15d6-a061-4b50-ad65-2c5565665353_1672x941.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2247498,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://chaosguru.substack.com/i/217971900?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdaaf15d6-a061-4b50-ad65-2c5565665353_1672x941.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!E6xz!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdaaf15d6-a061-4b50-ad65-2c5565665353_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!E6xz!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdaaf15d6-a061-4b50-ad65-2c5565665353_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!E6xz!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdaaf15d6-a061-4b50-ad65-2c5565665353_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!E6xz!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdaaf15d6-a061-4b50-ad65-2c5565665353_1672x941.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Where do I buy DNS? <a href="iframe.php?url=https%3A%2F%2Fwww.cloudflare.com%2F">Cloudflare</a>.</p><p>I&#8217;ve been a Cloudflare user since 2014, and I can&#8217;t think of another service I love as much. They&#8217;ve consistently pushed, and sometimes dragged kicking and screaming, the global Internet into a better future. It&#8217;s my go-to Swiss Army knife of first-line defense.</p><p>The accepted wisdom says to shop around, spread your vendors, distrust anything free, and never let one company sit in front of everything. <a href="iframe.php?url=https%3A%2F%2Fchaosguru.substack.com%2Fp%2Fwwld-1-domains-and-gas-station-hotdogs">Last week</a> I said most of that myself.</p><h2>A short history of dragging the Internet forward</h2><p>Before 2014, a site had a <code>secure.example.com</code>. That&#8217;s where the &#8220;important&#8221; stuff lived: login, checkout, the credit card form. Everything else went out in plaintext, because certificates were per hostname and nobody was buying one for every corner of their site.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21_QCS%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F2b121d23-56a6-42f6-a69e-0efb9957f68c_1920x1080.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!_QCS!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b121d23-56a6-42f6-a69e-0efb9957f68c_1920x1080.png 424w, https://substackcdn.com/image/fetch/$s_!_QCS!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b121d23-56a6-42f6-a69e-0efb9957f68c_1920x1080.png 848w, https://substackcdn.com/image/fetch/$s_!_QCS!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b121d23-56a6-42f6-a69e-0efb9957f68c_1920x1080.png 1272w, https://substackcdn.com/image/fetch/$s_!_QCS!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b121d23-56a6-42f6-a69e-0efb9957f68c_1920x1080.png 1456w" sizes="100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21_QCS%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F2b121d23-56a6-42f6-a69e-0efb9957f68c_1920x1080.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2b121d23-56a6-42f6-a69e-0efb9957f68c_1920x1080.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:109315,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://chaosguru.substack.com/i/217971900?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b121d23-56a6-42f6-a69e-0efb9957f68c_1920x1080.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!_QCS!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b121d23-56a6-42f6-a69e-0efb9957f68c_1920x1080.png 424w, https://substackcdn.com/image/fetch/$s_!_QCS!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b121d23-56a6-42f6-a69e-0efb9957f68c_1920x1080.png 848w, https://substackcdn.com/image/fetch/$s_!_QCS!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b121d23-56a6-42f6-a69e-0efb9957f68c_1920x1080.png 1272w, https://substackcdn.com/image/fetch/$s_!_QCS!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b121d23-56a6-42f6-a69e-0efb9957f68c_1920x1080.png 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Then Cloudflare handed out free wildcard certificates to everyone on every plan, a year before Let&#8217;s Encrypt issued its first one. The encrypted web roughly doubled in a day. &#8220;Everything over HTTPS&#8221; started there.</p><p>In 2017 they did it again with attacks. Back then, if your site got slammed, the norm was one of two outcomes: your provider turned the site off to protect everyone else, or you got an extortionate bandwidth bill for traffic you never asked for. Cloudflare promised neither. No termination over the size of an attack, and no charge for attack bandwidth, on every plan, free included. That promise is incredible, and people who never lived without it don&#8217;t know how incredible.</p><p>In 2024 it was Encrypted Client Hello, which hides which site you&#8217;re visiting from anyone watching the wire, your ISP included. It shipped to free users first, where you can&#8217;t even turn it off. Paying customers got it as an option.</p><h2>Default, without discussion</h2><p><strong>Unless you can mount a reasonable defense for why, specifically, Cloudflare doesn&#8217;t work for you, it&#8217;s your default. Stop shopping.</strong></p><p>It does so many things right and so few things wrong, covers so many areas, and keeps evolving in the right direction. I don&#8217;t see another honest way to look at it.</p><h3>Same posture, any origin</h3><p>Your services could be on a box under a desk in the office, bare metal in a cage somewhere, a fly-by-night VPS, or a full cloud-native AWS deployment. Put Cloudflare in front and every one of them gets the same security and resilience posture. Cloudflare is always a better choice than no Cloudflare.</p><p>The bigger benefit is what it does to everything behind it. The edge stays put while the origin changes. Move from the VPS to AWS, or from AWS back to the cage, and your certificates, firewall rules and DDoS protection don&#8217;t notice.</p><blockquote><p>&#8220;But I&#8217;m on AWS. I have CloudFront, Shield and a WAF.&#8221;</p></blockquote><p>You have those for the parts of you that live in AWS. Most domains I see these days are a mishmash: the website with one provider, the app with another, and a help desk, a status page and a newsletter on third-party SaaS. And most people can&#8217;t figure out how to operate CloudFront, let alone the WAF and Shield on top of it.</p><h3>The clerk and the bouncer</h3><p>Last week I told you that you do not want an innovative clerk. Now I&#8217;m praising a company for never sitting still.</p><p>Different layers want opposite things. The registrar holds custody of your name, and the best thing it can do is never change. The edge faces attackers, bots and new protocols every week. An edge that stopped evolving would be the dangerous one.</p><h2>Does it pass my own hotdog test?</h2><p>Last week&#8217;s test: <strong>is it priced, and is it opt-in?</strong></p><p>Priced: yes. There are paid tiers for this exact service, and they make sense. Opt-in: yes. Nobody switched it on when you registered a domain. You went and got it. And the standalone question: would you choose it if it were sold by a company that did nothing else? Sitting in front of your traffic <em>is</em> what this company does. If it were bad at it, it would be dead.</p><p>Then there&#8217;s the free tier, which is where &#8220;if it&#8217;s free, you&#8217;re the product&#8221; usually comes in.</p><p>Millions of free sites give Cloudflare coverage of the Internet&#8217;s traffic, and of the attacks on it, that they would never get if all they had were paying customers. Every attack on a hobby blog teaches the network something that protects a bank. Cloudflare <a href="iframe.php?url=https%3A%2F%2Fblog.cloudflare.com%2Fcloudflares-commitment-to-free%2F">is open about this</a>, and it&#8217;s a trade I understand and am happy to be part of.</p><h2>What you get, and what you pay for</h2><p>The free tier gets you SSL solved forever, a web application firewall, DDoS protection, caching and a CDN. I went through <a href="iframe.php?url=https%3A%2F%2Fchaosguru.substack.com%2Fp%2Fstop-trying-to-fail-over-from-cloudflare">what each of those actually does for you</a> in April.</p><p>The free tier is glorious. That&#8217;s what I run my hobby projects on.</p><p>If you&#8217;re running a business, the $25 a month Pro plan pays for itself. The line between free and paid sits in the value-add services, not the core: more configuration rules, detailed stats, more advanced bot protection. My production accounts are paid, and I&#8217;d be embarrassed if they weren&#8217;t.</p><p>There&#8217;s also a $250 Business plan with its own merits.</p><p>Free, Pro and Business are the technical product. Enterprise is a business service, not a technical one, and this post is about the technical one.</p><h2>Where I get off</h2><p>My rule about eggs and baskets didn&#8217;t go anywhere. It just applies to parts of Cloudflare too.</p><h3>Compute</h3><p>Cloudflare is pushing its compute platform hard, and I understand the appeal, especially with that free tier. I&#8217;ve given it several honest attempts. I&#8217;m not a fan.</p><p>For serious business, I don&#8217;t see it as a legitimate contender, and it collides with the basket rule anyway: the thing in front of your application shouldn&#8217;t also be your application. For hobby projects, do whatever makes you happy.</p><h3>Their registrar</h3><p>Cloudflare also sells domains, at cost. Sounds generous. Read their registration agreement, section 6.1, capitals theirs:</p><blockquote><p>&#8220;Registrant agrees to use Cloudflare&#8217;s nameservers. REGISTRANT ACKNOWLEDGES AND AGREES THAT IT MAY NOT CHANGE THE NAMESERVERS ON THE REGISTRAR SERVICES, AND THAT IT MUST TRANSFER TO A THIRD-PARTY REGISTRAR IF IT WISHES TO CHANGE NAMESERVERS.&#8221;</p></blockquote><p>They&#8217;re not in the registrar game to help you register domains. They&#8217;re in it to get you onto the platform. That&#8217;s last week&#8217;s free hotdog exactly, just served by a vendor I like.</p><p>Already being a Cloudflare user doesn&#8217;t mean you should accept that lock-in. The registrar is the one layer that has to stay independent of everything above it, so your domain stays somewhere boring, and the nameservers point at Cloudflare because you chose to point them there.</p><h2>The uncomfortable part</h2><p>Cloudflare is one of those awkward, uncomfortable services. It gives you a lot for free, even more for an incredibly low price, and it is ridiculously difficult and expensive to replace.</p><p>Learn exactly how it works and <a href="iframe.php?url=https%3A%2F%2Fchaosguru.substack.com%2Fp%2Fstop-trying-to-fail-over-from-cloudflare">why it&#8217;s so hard to replace</a> before you lean on it. I still stand behind it, on both the free and paid tiers.</p><p>I can stand behind it because two things stay in my hands. The registrar keeps custody, so the nameservers can always move. And the zone lives in code, so my records move with me, even though the firewall and the cache don&#8217;t.</p><h2>Your DNS belongs in git</h2><p>Most DNS zones live in a web dashboard. Someone logs in, changes a record, and leaves. There&#8217;s no history of who changed it, no review before it went live, and no undo. When something breaks, the question &#8220;what did this record say yesterday?&#8221; has no answer.</p><p>I keep every zone in a git repository and manage it with <a href="iframe.php?url=https%3A%2F%2Fgithub.com%2FStackExchange%2Fdnscontrol">dnscontrol</a>, an open-source tool from Stack Exchange. Each zone is a small file describing its records. The setup I use is public as <a href="iframe.php?url=https%3A%2F%2Fgithub.com%2Fawesome-foundation%2Fdns">awesome-foundation/dns</a>, and it&#8217;s turnkey:</p><ul><li><p>Open a pull request with your change.</p></li><li><p><code>dnscontrol check</code> validates it and <code>preview</code> posts the exact diff as a comment.</p></li><li><p>Merge it, and <code>dnscontrol push</code> makes the live zone match the file.</p></li><li><p>Existing Cloudflare zones come in through an import workflow.</p></li></ul><p>There&#8217;s nothing to install, and you can make the whole change in GitHub&#8217;s web editor.</p><p><strong>The repo is the truth.</strong> If someone edits a record in the dashboard, the next push puts it back, and the DNS provider becomes a plugin.</p><p>It also finishes last week&#8217;s argument about delegation. Your agency, your contractor, the new hire: they get pull request access to the repo, not a login to your account. <strong>They get access, you keep the account.</strong></p><h2>What would make me leave</h2><p>If Cloudflare started shrinking the free tier&#8217;s quotas and pushing for every domain to be on a paid plan, I&#8217;d start looking.</p><p>The free tier is where the coverage comes from, and the coverage is what makes the paid product worth paying for. A Cloudflare that squeezes free users has stopped believing in the trade that made it good, and everything I love about it sits downstream of that trade.</p><p><em>More from the <a href="iframe.php?url=https%3A%2F%2Fchaosguru.substack.com%2Ft%2Fwwld">What Would Luka Do</a> series.</em></p>]]></content:encoded></item><item><title><![CDATA[WWLD #1: Domains and gas station hotdogs]]></title><description><![CDATA[Your registrar has one job. Most of them are trying to do six.]]></description><link>https://chaosguru.substack.com/p/wwld-1-domains-and-gas-station-hotdogs</link><guid isPermaLink="false">https://chaosguru.substack.com/p/wwld-1-domains-and-gas-station-hotdogs</guid><dc:creator><![CDATA[Luka Kladarić]]></dc:creator><pubDate>Mon, 21 Sep 2026 10:02:33 GMT</pubDate><enclosure url="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21dbm2%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F5c372e16-730d-4ec9-b073-9aeb4315da5e_1672x941.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21dbm2%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F5c372e16-730d-4ec9-b073-9aeb4315da5e_1672x941.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!dbm2!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5c372e16-730d-4ec9-b073-9aeb4315da5e_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!dbm2!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5c372e16-730d-4ec9-b073-9aeb4315da5e_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!dbm2!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5c372e16-730d-4ec9-b073-9aeb4315da5e_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!dbm2!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5c372e16-730d-4ec9-b073-9aeb4315da5e_1672x941.png 1456w" sizes="100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21dbm2%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F5c372e16-730d-4ec9-b073-9aeb4315da5e_1672x941.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5c372e16-730d-4ec9-b073-9aeb4315da5e_1672x941.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2022649,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://chaosguru.substack.com/i/216692102?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5c372e16-730d-4ec9-b073-9aeb4315da5e_1672x941.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!dbm2!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5c372e16-730d-4ec9-b073-9aeb4315da5e_1672x941.png 424w, https://substackcdn.com/image/fetch/$s_!dbm2!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5c372e16-730d-4ec9-b073-9aeb4315da5e_1672x941.png 848w, https://substackcdn.com/image/fetch/$s_!dbm2!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5c372e16-730d-4ec9-b073-9aeb4315da5e_1672x941.png 1272w, https://substackcdn.com/image/fetch/$s_!dbm2!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5c372e16-730d-4ec9-b073-9aeb4315da5e_1672x941.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>An acquaintance calls me. Their website is down. Not down-down: the server is up, the site is fine, the thing is running exactly as it always has. But the SSL certificate expired overnight, so every visitor now gets a full-screen browser warning telling them this site is dangerous.</p><p>The guy who built it isn&#8217;t answering. Not email, not phone, not the messaging app they&#8217;d used for three years. Gone.</p><p>Fine. I&#8217;ve seen this one. Easiest fix in the world: put Cloudflare in front of it, let it terminate TLS, certificate problem disappears in under an hour. That doesn&#8217;t solve the underlying mess, but it stops the bleeding and buys a few months to sort things out calmly instead of at 11pm on a Tuesday.</p><p>To do that, you change the nameservers. To change the nameservers, you log into the registrar.</p><p>They don&#8217;t have the registrar.</p><p>The web guy handled everything. Registered the domain himself, years ago, on his own account. They&#8217;re not listed as the owner. They&#8217;re not listed as the technical contact. They&#8217;re not listed as the billing contact. As far as every registry record in the world is concerned, they have nothing to do with the domain their entire business runs on.</p><p>Understand, a broken certificate is easily recoverable. A vanished hosting provider is still recoverable. A DNS provider that turns bad on you is recoverable, while painful and annoying, and takes an afternoon. Every layer of this stack has an escape hatch, as long as you control the layer underneath it.</p><p>The domain is the layer with nothing underneath.</p><p>I&#8217;ve watched a company come out the other side of this. They gave up. Changed their domain name cold turkey, announced the new one, and started over. It took six months to get access to the old one back, by which point it no longer mattered.</p><p>Imagine what abandoning a domain actually costs. Every link anyone ever saved. Every search result you spent years earning. Every business card in a drawer. Every invoice with the old address on it. Every automated email from every service you&#8217;ve ever signed up for, still going to a mailbox you can&#8217;t read. Every partner who has you in their system. You don&#8217;t get to notify those people, because most of them aren&#8217;t people but rows in databases you&#8217;ll never see.</p><p>All of it, because nobody thought about who owned one line in a registry.</p><div><hr></div><p>So: new series. <strong>What Would Luka Do.</strong></p><p>The plan is one in-depth topic at a time, and I&#8217;ll tell you how I do it and then why. Not a tutorial, there are thousands of those. A list of mechanical steps without the reasoning behind them is useless when the situation is just slightly different.</p><p>I&#8217;ll be sharing my first principles, so to speak. If literally anything in here is not the obvious next conclusion, and there&#8217;s no explanation for it, please call it out and I&#8217;ll address it.</p><p>We start at the bottom of the stack, with the layer that has nothing underneath it.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://chaosguru.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading The Chaos Guru! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h2>Domain registration is bureaucratic, not technical</h2><p>A domain registrar&#8217;s entire job is keeping one row accurate in someone else&#8217;s registry. They are a clerk, a notary with a website if you will.</p><p><strong>You do not want an innovative clerk.</strong></p><p>Most folks don&#8217;t shop like that, because their instinct is to look for the registrar with the best dashboard, the most features, the clever integrations, the one that bundles the extras. Wrong instinct. You are looking for the one with the longest, most boring track record of doing a simple thing correctly.</p><p>Here&#8217;s my list of what boring actually requires:</p><ul><li><p>Registers new domains and accepts transfers in.</p></li><li><p>Renews automatically and reliably, and pings you when billing breaks.</p></li><li><p>Keeps your account secure with modern practices. <strong>(1)</strong></p></li><li><p>Lets you change your NS records without a fight.</p></li><li><p>Lets you transfer out, once you&#8217;ve released the lock.</p></li><li><p>Supports every TLD you&#8217;re ever going to care about.</p></li><li><p>Will still exist in ten years, under the same management, doing the same thing.</p></li><li><p>Has good pricing. <strong>(2)</strong></p></li></ul><p>That last one is last on purpose. I&#8217;ll come back to it, because it&#8217;s the most interesting item on the list.</p><h3>Two of those need spelling out</h3><h4>Security (1)</h4><p>Your domains likely won&#8217;t get stolen by someone cracking your password, they&#8217;ll get stolen by someone calling support and being persuasive.</p><p>That&#8217;s the attack. A friendly voice, a plausible story, a support rep who wants to be helpful, and a transfer that was authorized by nobody. So what you want is two-factor auth that isn&#8217;t SMS, and (harder to evaluate, more important) a support desk that cannot be talked into moving your domain. Ask how they handle account recovery.</p><h4>Price, and why it&#8217;s last (2)</h4><p>Domain registration is a thin-margin commodity. Everyone is reselling access to the same registries at nearly the same wholesale cost.</p><p>A cheap domain is telling you the money comes from somewhere else, and the thing subsidizing it is the thing they need you to eventually buy. If you don&#8217;t, you&#8217;re not a customer, you&#8217;re dead weight.</p><p>Which brings us to the hotdogs.</p><h2>Don&#8217;t buy hotdogs at the gas station</h2><p>Your registrar does not need to host your DNS. Your registrar definitely should not host your email, your website, or anything else that plugs into your domain.</p><p>They often do, of course. Value-added services. But that&#8217;s like your gas station having a hotdog stand. It&#8217;s completely optional for them to have a hotdog stand. And the hotdog is probably subpar. My beef is with the <strong>free</strong> hotdog you get with a full tank of gas.</p><p>A service that&#8217;s priced separately has to survive on its own merits. You can compare it, judge it, and decline it. A service that&#8217;s free and switched on by default exists for a different reason, and the reason is that leaving gets expensive. Free bundling is a retention mechanism for things that need retention. Good services don&#8217;t need retention. Once your DNS and your email and your site all live at the registrar, &#8220;change registrar&#8221; has quietly become &#8220;migrate everything,&#8221; and you will not do it.</p><p>A quick test tells you if you&#8217;ve stepped into the trap:</p><p><strong>Is it priced, and is it opt-in?</strong> Free and already turned on is the tell.</p><p>The deeper version of the same question: would you choose this service if it were sold standalone, by a company that did nothing else? Price is the fast signal. Standalone viability is the real one.</p><p>IKEA runs a food business bolted onto a company that sells something else entirely, and people go to IKEA for the meatballs. And those cursed sweets at the IKEA Caf&#233;, oh my. They plan the trip around lunch. There are people who have eaten there without buying a single shelf.</p><p><strong>IKEA made the food better than it had to be. The gas station never will, and it would be strange if it did.</strong> Nobody drives across town for a gas station hotdog, so there&#8217;s no version of that business where a better hotdog pays for itself. The customer is already standing there with a full tank and about forty seconds of patience.</p><p>A registrar&#8217;s DNS exists to catch you while you&#8217;re already logged in. A company that sells nothing but DNS has to be good at it or it dies.</p><p>My domain registrar sells DNS hosting. They charge for it. They&#8217;re willing to be judged on it, and I could take it or leave it without consequence.</p><p><strong>I leave it. I host my DNS elsewhere.</strong></p><h3>&#8220;But one dashboard is so much easier&#8221;</h3><p>I know. It genuinely is. One vendor, one bill, one login, one support contact, one place to look when something breaks. No point in pretending that convenience isn&#8217;t real.</p><p>But it&#8217;s also the trap, and for precisely the reason it feels good. Consolidation converts &#8220;change one vendor&#8221; into &#8220;migrate everything.&#8221; But the single pane of glass is also the single point of failure.</p><h2>The same rule, pointed at people</h2><p><strong>If you didn&#8217;t register your domain, you&#8217;re not the owner. You&#8217;re the tenant. And tenants can be kicked out.</strong></p><p>Worse, you get evicted on the day the relationship sours, which is the same day you most need to stay. The moment you urgently need your domain back is almost always the moment the person holding it has the least reason to help you.</p><p>Which is why this gets fixed while everyone still likes each other, or it doesn&#8217;t get fixed.</p><h3>The rule for agencies</h3><p>If an agency offers to register domains for you, politely decline.</p><p><strong>They&#8217;re being helpful, not predatory.</strong> That&#8217;s exactly why it&#8217;s so common and exactly why it keeps happening. Nobody in that conversation is doing anything wrong. It&#8217;s one less form for you to fill out, and they&#8217;ve done it a hundred times, and it takes them four minutes.</p><p>Depending on the level of service you&#8217;re buying, they can absolutely run your DNS. They can manage your records. They can own the whole operational surface and you never have to look at a TXT record in your life.</p><p>But the domain is always yours to register and yours to renew.</p><h3>The same failure, inside a company</h3><p>It doesn&#8217;t take an outside agency. The most common version I see is entirely internal: the domain was registered by an employee, on their personal card, during a week when someone needed it done fast.</p><p>Then that employee leaves. Sometimes well, sometimes badly. The card expires, and the renewal notice goes to a mailbox nobody reads anymore.</p><p>Renewal has to sit on billing that outlives any individual. If your domain renews off a card in one person&#8217;s wallet, you&#8217;re basically subletting it from a colleague.</p><h3>How to delegate without giving up custody</h3><p>None of this means you have to touch a DNS record yourself. It means being precise about which powers you hand over.</p><p>Letting someone register and renew your domain is like giving them your ID card. Pointing your domain&#8217;s NS to their DNS is like giving them power of attorney. One of those can be revoked.</p><p>So the shape of it is simple: <strong>they get access, you keep the account.</strong> Access at the DNS layer, never a login to your registrar. The registrar holds custody. DNS holds the working surface. You hand out the second without ever touching the first.</p><h3>If you&#8217;re already in the hole</h3><p>Most people reading this are, at least a little. The fix is a transfer: release the lock, get the auth code, move it to an account you control.</p><p>Notice that every single step in that sequence requires cooperation from the person currently holding it.</p><p>That requirement is the whole argument for doing this now, while it&#8217;s an administrative chore instead of a hostage negotiation.</p><h2>Where I keep mine</h2><p><a href="iframe.php?url=https%3A%2F%2Fdnsimple.com%2F">DNSimple</a>, currently, and they&#8217;re my favorite by a comfortable margin. They are not the cheapest, and that&#8217;s the point. They appear to have figured out how to make a living selling domains, and hosting the occasional DNS zone for people who want it. That&#8217;s the whole business. I love them for it.</p><p>Before that, <a href="iframe.php?url=https%3A%2F%2Fwww.name.com%2F">name.com</a>. They used to be beautifully boring, with the occasional upsell you could click past. Then the commercial stuff got pushier. Then pushier. No breach, no bankruptcy, no scandal, no single moment where they did something outrageous. Just a slow drift in what the company is for.</p><p>Which is why &#8220;will still exist in ten years, doing the same boring thing&#8221; is on the list, and why it&#8217;s the item that eliminates the most candidates. They probably won&#8217;t go bust. They&#8217;ll just stop wanting to be a clerk.</p><h2>What I&#8217;m watching for</h2><p><strong>If DNSimple starts heavily pushing their own DNS, email, and hosting, I&#8217;ll go looking for a new home.</strong></p><p>Note the word: <em>pushing</em>, not <em>offering</em>. They already offer DNS. Offering is fine. Promotion is the tell.</p><p>That sounds like an overreaction: switching registrars over some banner ads. It isn&#8217;t, because the banner is a symptom. A registrar that starts pushing adjacent services is telling you that registration alone has stopped paying the bills. Everything I actually want from them (boring, stable, still here in a decade) sits downstream of that fact. And by the time the consequences show up, leaving has gotten harder.</p><p><strong>One honest exemption:</strong> if I were running dozens or hundreds or thousands of domains, this would be a different job with different tools, and I&#8217;d reach for dedicated domain management rather than picking a registrar I like. This advice is for people with a handful of names they cannot afford to lose. Which is most people, most of the time.</p><div><hr></div><p>Go log into your registrar right now. Not later. Now, while you&#8217;re thinking about it.</p><p>Check three things. Is your name on it, or somebody else&#8217;s? Is auto-renew on, and is it pointed at a card that will still exist in two years? And how much of your stack is sitting in that same account, quietly raising the price of ever leaving?</p><p>If you couldn&#8217;t log in at all just now, you already have your answer.</p><blockquote><p>&#8220;But Luka, where do I <em>buy</em> DNS and email?&#8221;</p></blockquote><p>Glad you asked. Tune back in next week.</p>]]></content:encoded></item><item><title><![CDATA[Anthropic's Google Docs killer is almost here]]></title><description><![CDATA[It's been smuggled in piece by piece to evade detection]]></description><link>https://chaosguru.substack.com/p/anthropics-google-docs-killer-is</link><guid isPermaLink="false">https://chaosguru.substack.com/p/anthropics-google-docs-killer-is</guid><dc:creator><![CDATA[Luka Kladarić]]></dc:creator><pubDate>Sun, 13 Sep 2026 14:33:42 GMT</pubDate><enclosure url="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21Q1Yn%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F432a8479-aae9-4d63-a955-1ba99443b769_1774x887.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21Q1Yn%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F432a8479-aae9-4d63-a955-1ba99443b769_1774x887.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Q1Yn!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F432a8479-aae9-4d63-a955-1ba99443b769_1774x887.png 424w, https://substackcdn.com/image/fetch/$s_!Q1Yn!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F432a8479-aae9-4d63-a955-1ba99443b769_1774x887.png 848w, https://substackcdn.com/image/fetch/$s_!Q1Yn!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F432a8479-aae9-4d63-a955-1ba99443b769_1774x887.png 1272w, https://substackcdn.com/image/fetch/$s_!Q1Yn!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F432a8479-aae9-4d63-a955-1ba99443b769_1774x887.png 1456w" sizes="100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21Q1Yn%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F432a8479-aae9-4d63-a955-1ba99443b769_1774x887.png" width="1456" height="728" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/432a8479-aae9-4d63-a955-1ba99443b769_1774x887.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:728,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2356017,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://chaosguru.substack.com/i/215507129?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F432a8479-aae9-4d63-a955-1ba99443b769_1774x887.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Q1Yn!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F432a8479-aae9-4d63-a955-1ba99443b769_1774x887.png 424w, https://substackcdn.com/image/fetch/$s_!Q1Yn!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F432a8479-aae9-4d63-a955-1ba99443b769_1774x887.png 848w, https://substackcdn.com/image/fetch/$s_!Q1Yn!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F432a8479-aae9-4d63-a955-1ba99443b769_1774x887.png 1272w, https://substackcdn.com/image/fetch/$s_!Q1Yn!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F432a8479-aae9-4d63-a955-1ba99443b769_1774x887.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>I was doing some client work today and asked Claude for a dashboard in the wrong workspace. I was expecting an Obsidian dashboard, but instead I got a Claude Artifact listing the open topics on the engagement, each with a severity, a source, how many days it had been open, and who holds the next move.</p><p>Standard fare. I&#8217;ve made and published dozens of these since Artifacts launched. They&#8217;re a very neat tool with some really hard-to-swallow limitations, and I&#8217;ve spent the past month fighting them, falling back to GitHub Pages whenever I ran out of options.</p><p>But this one had something new... Every single row had an Open / Waiting / Done switch. At the top of the page, a big blue SAVE CHANGES button lit up when I toggled an Open item to Waiting. I pushed Save and not much seemed to change, except that refreshing the page showed the Waiting status had been recorded... somewhere.</p><p>Bewildered, I asked Claude how &#8220;Save changes&#8221; worked.</p><p>Apparently, Artifacts can now save a new version of themselves back to the system, to be served on later page loads. OK, neat, and definitely new. I&#8217;ve literally been asking for a way to add feedback interactivity to them, so I can fix data classifications and copy mistakes in place.</p><p>I got an itch to go digging, so I did. What I found is bigger than a Save button, and as far as I can tell nobody has written about it. Every article on &#8220;Claude Code artifacts&#8221; I could find still describes a static page with no backend.</p><h2>What a published page can do now</h2><p>An artifact is a single HTML page that Claude publishes to claude.ai. For most of its life it was a picture of work: Claude rendered something, you looked at it, a teammate looked at it. Anthropic&#8217;s own launch post calls it &#8220;a capture of work, not an application.&#8221;</p><p>When they say &#8220;not an application,&#8221; they are not kidding. The page is served to your browser in a way that blocks every external resource. You can&#8217;t reference an external image or an external script, and JavaScript won&#8217;t get you around it either. A Google Maps embed is denied, and so is fetching data from an open API.</p><p>As far as I can tell, that is still true. What changed is that a page can now declare runtime capabilities, and the claude.ai viewer grants them when someone opens it.</p><p><strong>The page saves itself.</strong> The <code>artifact</code> capability lets the page publish a complete new version of itself. Edits stay in the tab until you hit Save, and Save rebuilds the page with the data embedded and publishes it at the same URL. Every version is kept with its author&#8217;s name on it, and every open copy reloads to the new one. If someone else saved first, their version wins and the page reapplies your edits on top as unsaved changes. There is no backend and no deploy step, and the page itself is the record.</p><p><strong>The page has a shared realtime database.</strong> The <code>db</code> capability gives every artifact its own document store. It holds JSON documents at slash paths, gets created on the first write, and is deleted along with the artifact. You get queries, filters, ordering, and live subscriptions that update every open copy without a reload. Writes are last-writer-wins with no transactions, and a page can take a short lease when one person needs to own an edit.</p><p>The access model is unexpectedly serious. Rules set the minimum sharing level per path (can view, can edit, owner), separately for reads and writes. Each viewer gets a private subtree that nobody else can see, &#8220;the artifact&#8217;s owner included,&#8221; unless a rule opens it up. Claude can also read, query and write the same store from a terminal session, in batches if it wants. So an agent in a shell and a human in a browser tab can edit the same live data at the same time.</p><p><strong>The page knows who is in the room.</strong> The <code>room</code> capability shows who has the page open right now and passes live events between them, such as cursors, selections, or a presenter&#8217;s reactions. Nothing in the room persists; that is what <code>db</code> is for. The contract also describes the Claude Code session that published the page joining the room as a peer of its own. It shows up marked as an agent and never takes on a viewer&#8217;s identity. That part is behind a flag and off by default.</p><p><strong>The page can ask Claude.</strong> The <code>sample</code> capability lets the page call Claude on the <em>viewer&#8217;s</em> account, with a consent prompt the first time. Answers can stream in or come back as JSON, and the page can hand Claude its own functions to call as tools. You can build a summarize button that really summarizes, paid for by whoever clicked it.</p><p><strong>The page uses the viewer&#8217;s own tools.</strong> Connector calls (<code>mcp</code>) run through the viewer&#8217;s own claude.ai connections, so the same dashboard shows each person what their own accounts can see. The page never touches a credential. This is the one capability Anthropic documents in detail.</p><p><strong>Files go in and out.</strong> <code>assets</code> stores uploads for the artifact, like images, PDFs, CSV and Markdown files. <code>downloads</code> hands the viewer a generated file to save, behind a confirmation they can decline.</p><p><strong>Comments reach Claude.</strong> On a page shared inside your organization, people can leave comment threads. An editor can send a thread to Claude with the Send to Claude button or an <code>@claude</code> mention. If the Claude Code session that published the page is still running, the comment reaches it right away. Claude reads the thread, replies, and edits the page if the comment asks for a change. Your permission mode decides whether it does that on its own or waits for you, and the reply shows up as coming from Claude &#8220;via&#8221; you.</p><p>Reading that list very much sounds like a deep integration of Claude into Google Docs and Drive. Except Google is nowhere to be found.</p><h2>The part that makes it a Docs killer: live docs</h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21MqUZ%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Fec24fc58-da7a-42b7-afa3-85890671b931_1774x887.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!MqUZ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fec24fc58-da7a-42b7-afa3-85890671b931_1774x887.png 424w, https://substackcdn.com/image/fetch/$s_!MqUZ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fec24fc58-da7a-42b7-afa3-85890671b931_1774x887.png 848w, https://substackcdn.com/image/fetch/$s_!MqUZ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fec24fc58-da7a-42b7-afa3-85890671b931_1774x887.png 1272w, https://substackcdn.com/image/fetch/$s_!MqUZ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fec24fc58-da7a-42b7-afa3-85890671b931_1774x887.png 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21MqUZ%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Fec24fc58-da7a-42b7-afa3-85890671b931_1774x887.png" width="1456" height="728" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ec24fc58-da7a-42b7-afa3-85890671b931_1774x887.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:728,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2232004,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://chaosguru.substack.com/i/215507129?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fec24fc58-da7a-42b7-afa3-85890671b931_1774x887.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!MqUZ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fec24fc58-da7a-42b7-afa3-85890671b931_1774x887.png 424w, https://substackcdn.com/image/fetch/$s_!MqUZ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fec24fc58-da7a-42b7-afa3-85890671b931_1774x887.png 848w, https://substackcdn.com/image/fetch/$s_!MqUZ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fec24fc58-da7a-42b7-afa3-85890671b931_1774x887.png 1272w, https://substackcdn.com/image/fetch/$s_!MqUZ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fec24fc58-da7a-42b7-afa3-85890671b931_1774x887.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Live docs aren&#8217;t live for me yet &#129345;, but they&#8217;re right there in the contract.</p><p>A live doc is a new kind of artifact, one &#8220;the platform created as a live doc.&#8221; It doesn&#8217;t have versions at all. Its content is an edit journal, and here is the key sentence, capitals theirs:</p><blockquote><p>On a live doc THE PAGE&#8217;S MARKUP IS THE DOCUMENT.</p></blockquote><p>Whatever a writer&#8217;s own click, keystroke or drag does to the page gets appended to the document as that viewer: edited text, changed attributes, elements added or reordered, a ticked checkbox, typing in an editable region. The edit reaches every other open view, and it also reaches &#8220;the watching Claude session.&#8221; When an edit lands, &#8220;Claude is told what changed &#8230; and typically answers with an edit of its own a second or two later, applied to this view in place.&#8221;</p><p>The budgets are 524,288 text characters per document, 131,072 elements plus attributes, and 8 MiB rendered. You won&#8217;t be group-writing a whole book in one, but it still fits a lot of content.</p><p>Two more pieces sit next to it. <code>sendToClaudeSession</code> lets a viewer hand whatever they selected on the page to <em>their own</em> Claude conversation open beside it. It arrives staged as an attachment they can see and remove before anything is sent. The contract also points at a <code>comments</code> capability with its own <code>sendToClaude</code>, for writing a comment and pulling Claude into the thread from inside the page. Then there are artifact types. An artifact made from a type keeps the type&#8217;s page read-only and only lets its own files change, which makes it a template system. When I asked for the type catalog, I was told it &#8220;isn&#8217;t available to&#8221; my account yet.</p><p>Both let several people edit at once, and live docs journal every edit per writer. Docs shows other people&#8217;s cursors, and <code>room</code> does the same. Both have comments, but only one of them routes a thread to a co-author who does the work. Docs keeps revisions, while artifacts keep every version with its author, or a full journal. Docs has templates, and types are on the way.</p><p>Then there are two things Docs doesn&#8217;t do at all. It has no structured data behind the page, and an artifact has a queryable database with per-path access rules. A Doc also can&#8217;t be an app. An artifact is HTML, so the document can be a form, a board, a tracker or a calculator.</p><p>Google has been bolting an assistant onto a document, with mixed results. Anthropic is building the document around the assistant, and so far the result is spectacular.</p><h2>A brief history of Artifacts</h2><p>This wasn&#8217;t a single launch. It has been piling up, one quiet release note at a time.</p><p><strong>2024 to 2025: chat artifacts.</strong> Artifacts started as the side panel next to a claude.ai conversation. In June 2025 they learned to <a href="iframe.php?url=https%3A%2F%2Fsimonwillison.net%2F2025%2FJun%2F25%2Fai-powered-apps-with-claude%2F">call Claude from inside the page</a>. In October 2025 they got <a href="iframe.php?url=https%3A%2F%2Fsupport.claude.com%2Fen%2Farticles%2F9487310-what-are-artifacts-and-how-do-i-use-them">persistent storage</a> through <code>window.storage</code>: personal or shared, 20 MB per artifact, and only on published pages. That was real state, but it was a key-value box rather than a database.</p><p><strong>June 18, 2026: Claude Code artifacts.</strong> Anthropic <a href="iframe.php?url=https%3A%2F%2Fclaude.com%2Fblog%2Fartifacts-in-claude-code">brought artifacts to Claude Code</a> in beta for Team and Enterprise. The pages &#8220;update themselves as your session works,&#8221; keep versions at the same link, and are private by default. The launch post also says they are &#8220;viewable only by authenticated members of your org and cannot be made public.&#8221; <a href="iframe.php?url=https%3A%2F%2Fventurebeat.com%2Fdata%2Fanthropics-claude-code-artifacts-update-brings-live-shared-dashboards-and-interactive-workspaces-to-enterprises">VentureBeat</a> covered it as live dashboards. It was a one-way street: Claude wrote and people watched.</p><p><strong>July 13: public links and editors.</strong> Public sharing arrived, switched off for Team and Enterprise until an Owner turns it on. Editors arrived too, which the coverage called <a href="iframe.php?url=https%3A%2F%2Falphasignal.ai%2Fnews%2Fanthropic-makes-claude-artifacts-multiplayer-so-teams-can-build-together">multiplayer</a>. Read the docs closely, though. An editor still publishes by giving <em>their</em> Claude the URL and having it republish, so you get two people and two Claudes working on one page, taking turns.</p><p><strong>July 14, v2.1.209: connectors.</strong> The next day, Claude Code let a published page <a href="iframe.php?url=https%3A%2F%2Fcode.claude.com%2Fdocs%2Fen%2Fartifacts">call MCP connectors</a> with each viewer&#8217;s own login, so a page could show live data instead of a snapshot. It also got its first hard boundary: a connector-backed page can&#8217;t have a public link on any plan.</p><p><strong>August 4, v2.1.221: comments.</strong> Pages shared inside an organization started taking comment threads, and Claude could read them when asked. Public pages still can&#8217;t take comments. They say &#8220;Comments aren&#8217;t available while this Artifact is shared publicly.&#8221;</p><p><strong>August 11, v2.1.228: comments reach Claude.</strong> The session that published a page now watches it. When someone uses Send to Claude or <code>@claude</code>, the comment lands in the running session, which replies and edits on its own if your permissions allow. It handles up to 60 of them per artifact per hour. This was the first time a <em>person on the page</em> could make Claude act without anyone opening a terminal.</p><p><strong>August 17, v2.1.234: </strong><code>/design</code><strong>.</strong> The <a href="iframe.php?url=https%3A%2F%2Fx.com%2FClaudeDevs%2Fstatus%2F2089471692762673408">design canvas</a> put Claude Design&#8217;s editor inside an artifact. You click an element, change it, and, where your account allows it, &#8220;Save publishes a new version for everyone.&#8221; That was the first public sighting of a page writing itself.</p><p><strong>September 10, v2.1.268: the database surfaces.</strong> It showed up as a single changelog line: the artifact data-edit permission prompt became &#8220;a card that shows the document count and who can open the artifact.&#8221; That document count is the first public trace of <code>db</code> I can find. The next day, v2.1.269 let database reads land in the session scratchpad without stopping for approval.</p><p><strong>Today: contract 0.2.46.</strong> My account has eight capabilities, and the contract already describes live docs, types, agent peers in the room, and handing selections to your own Claude.</p><p>Look at the direction of travel. In June, Claude wrote a page. In July, people could open it and their own Claudes could rewrite it. In August, people could talk to the page&#8217;s Claude through the page. In September, the page started holding its own data and saving its own state. If the contract is any guide, what comes next is people typing into the page and Claude typing back.</p><h2>The gaps I see today...</h2><p>... which I&#8217;m sure will be gone tomorrow, or very soon.</p><p><strong>It is organization-only.</strong> A page that declares the database, assets or connectors is organization-internal and &#8220;cannot be shared publicly, so every reader and writer is a signed-in member of the owner&#8217;s organization.&#8221; Google Docs&#8217; killer feature is &#8220;anyone with the link,&#8221; and for a consultant that is the whole ballgame. The dashboard I started with lives inside my organization, and the client it&#8217;s about can&#8217;t open it. For now.</p><p><strong>Comments stop at the org boundary too.</strong> Public pages get no threads.</p><p><strong>Concurrency is naive.</strong> The last writer wins, there are no transactions, and you only get leases if you ask for them. That&#8217;s fine for a status board and not fine for two people rewriting the same paragraph, which is presumably why live docs journal edits instead.</p><p><strong>The security story is unwritten.</strong> <a href="iframe.php?url=https%3A%2F%2Fpluto.security%2Fblog%2Finside-claude-artifacts-how-your-agent-publishes-to-the-web%2F">Pluto Security</a> showed that nothing between the model and the browser inspects a page before it ships: 10 of 85 attempts got synthetic credentials into a published page. Their analysis explicitly left the runtime capabilities out. A comment that makes Claude edit a page is a new input channel into an agent with write access. Since v2.1.265 on September 8, Claude treats a page someone else wrote as untrusted content and flags any instructions embedded in it instead of following them. Nobody outside Anthropic has tested it yet, though.</p><h2>References</h2><ul><li><p><a href="iframe.php?url=https%3A%2F%2Fclaude.com%2Fblog%2Fartifacts-in-claude-code">Claude Code now supports artifacts</a>. Anthropic&#8217;s June 18, 2026 launch post, the source of &#8220;cannot be made public.&#8221;</p></li><li><p><a href="iframe.php?url=https%3A%2F%2Fcode.claude.com%2Fdocs%2Fen%2Fartifacts">Claude Code Docs: Share session output as artifacts</a>. Official docs for publishing, sharing, editors, comments, auto-replies, connectors, downloads and /design saving.</p></li><li><p><a href="iframe.php?url=https%3A%2F%2Fsupport.claude.com%2Fen%2Farticles%2F9547008-publish-and-share-artifacts">Claude Help Center: Publish and share artifacts</a>. Plan-by-plan sharing rules, and persistent storage deleted on unpublish.</p></li><li><p><a href="iframe.php?url=https%3A%2F%2Fsupport.claude.com%2Fen%2Farticles%2F9487310-what-are-artifacts-and-how-do-i-use-them">Claude Help Center: What are artifacts and how do I use them?</a>. Chat artifacts and <code>window.storage</code> persistent storage.</p></li><li><p><a href="iframe.php?url=https%3A%2F%2Fsimonwillison.net%2F2025%2FJun%2F25%2Fai-powered-apps-with-claude%2F">Simon Willison: Build and share AI-powered apps with Claude</a>. June 2025, chat artifacts calling Claude through <code>window.claude.complete</code>.</p></li><li><p><a href="iframe.php?url=https%3A%2F%2Fventurebeat.com%2Fdata%2Fanthropics-claude-code-artifacts-update-brings-live-shared-dashboards-and-interactive-workspaces-to-enterprises">VentureBeat: Claude Code Artifacts update brings live, shared dashboards</a>. Launch coverage, the source of &#8220;a capture of work, not an application.&#8221;</p></li><li><p><a href="iframe.php?url=https%3A%2F%2Fdevops.com%2Fanthropic-brings-live-shareable-artifacts-to-claude-code%2F">DevOps.com: Anthropic Brings Live, Shareable Artifacts to Claude Code</a>. Launch coverage.</p></li><li><p><a href="iframe.php?url=https%3A%2F%2Fwww.testingcatalog.com%2Fanthropic-launches-live-artifacts-for-claude-code%2F">TestingCatalog: Anthropic launches live Artifacts for Claude Code</a>. Launch coverage.</p></li><li><p><a href="iframe.php?url=https%3A%2F%2Falphasignal.ai%2Fnews%2Fanthropic-makes-claude-artifacts-multiplayer-so-teams-can-build-together">AlphaSignal: Anthropic Makes Claude Artifacts Multiplayer</a>. July 13, 2026, public sharing and editors.</p></li><li><p><a href="iframe.php?url=https%3A%2F%2Fstacktr.ee%2Fblog%2Fclaude-artifacts-public-sharing">Stacktree: Claude artifacts public sharing</a>. Public links and their limits.</p></li><li><p><a href="iframe.php?url=https%3A%2F%2Fx.com%2FClaudeDevs%2Fstatus%2F2089471692762673408">ClaudeDevs on X: /design</a>. The /design canvas, built on artifacts.</p></li><li><p><a href="iframe.php?url=https%3A%2F%2Fblakecrosley.com%2Fblog%2Fclaude-code-design-skill">Blake Crosley: Claude Code /design skill</a>. A walkthrough of the research preview.</p></li><li><p><a href="iframe.php?url=https%3A%2F%2Fpluto.security%2Fblog%2Finside-claude-artifacts-how-your-agent-publishes-to-the-web%2F">Pluto Security: Inside Claude Artifacts</a>. August 6, 2026: model-gated publishing and 10 of 85 credential embeds, with runtime capabilities out of scope.</p></li><li><p><a href="iframe.php?url=https%3A%2F%2Fbloom.security%2Fblog%2Fclaude-artifacts">Bloom Security: Inside Claude Artifacts</a>. Cowork&#8217;s <code>window.cowork</code> bridge and its shared origin.</p></li><li><p><a href="iframe.php?url=https%3A%2F%2Fgenaiunplugged.substack.com%2Fp%2Fclaude-live-artifacts-mcp-connectors-code">GenAI Unplugged: Why the Live One Cannot Be Shared</a>. August 23, 2026: connector pages, the &#8220;Always Allow&#8221; gotcha, and the comments loop.</p></li><li><p><a href="iframe.php?url=https%3A%2F%2Ftechcrunch.com%2F2026%2F07%2F27%2Fpsa-your-claude-shared-chats-and-artifacts-may-have-ended-up-on-google%2F">TechCrunch: Claude shared chats and Artifacts may have ended up on Google</a>. Privacy context for public links.</p></li><li><p><a href="iframe.php?url=https%3A%2F%2Fcaipi.ai%2Fblog%2Fcan-claude-artifacts-save-data">Caipi: Can Claude Artifacts Save Data?</a>. June 2026: <code>window.storage</code> persistence, and no Claude Code database.</p></li><li><p><a href="iframe.php?url=https%3A%2F%2Fnimbalyst.com%2Fblog%2Fclaude-code-artifacts-guide%2F">Nimbalyst: Claude Code Artifacts guide</a>. July 2026, still describing artifacts as unable to hold a database.</p></li><li><p><a href="iframe.php?url=https%3A%2F%2Freleasebot.io%2Fupdates%2Fanthropic%2Fclaude-code">Releasebot: Claude Code updates</a>. A release-note aggregator. Its date for 2.1.268 is a day off, so the dates here come from npm and GitHub.</p></li><li><p><a href="iframe.php?url=https%3A%2F%2Fwww.npmjs.com%2Fpackage%2F%40anthropic-ai%2Fclaude-code%3FactiveTab%3Dversions">npm registry: @anthropic-ai/claude-code</a>. Publish timestamps for every version date in this piece.</p></li><li><p><a href="iframe.php?url=https%3A%2F%2Fgithub.com%2Fanthropics%2Fclaude-code%2Freleases">GitHub releases: anthropics/claude-code</a>. Release timestamps, used to cross-check the npm dates.</p></li><li><p>Claude Code changelog: v2.1.209 (Jul 14), v2.1.221 (Aug 4), v2.1.228 (Aug 11), v2.1.234 (Aug 17), v2.1.265 (Sep 8), v2.1.268 (Sep 10), v2.1.269 (Sep 11). Connectors, comments, auto-replies, /design, untrusted-page reads, the document-count permission card, and database reads to the scratchpad.</p></li><li><p>Claude Code artifact runtime contract 0.2.46 (<code>artifact.d.ts</code>, <code>db.d.ts</code>, <code>room.d.ts</code>, <code>sample.d.ts</code>, <code>assets.d.ts</code>). Live docs, <code>edit</code> and <code>sync</code>, types, <code>sendToClaudeSession</code>, access rules, and agent peers.</p></li></ul>]]></content:encoded></item><item><title><![CDATA[Introducing ASU]]></title><description><![CDATA[One CLI that shows how much of your agent subscription is left, for you and for the agent.]]></description><link>https://chaosguru.substack.com/p/introducing-asu</link><guid isPermaLink="false">https://chaosguru.substack.com/p/introducing-asu</guid><dc:creator><![CDATA[Luka Kladarić]]></dc:creator><pubDate>Fri, 11 Sep 2026 14:31:32 GMT</pubDate><enclosure url="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21zVvh%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Fbbdf9f07-4c06-4586-b5aa-f6a67658ae83_1926x976.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21zVvh%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Fbbdf9f07-4c06-4586-b5aa-f6a67658ae83_1926x976.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!zVvh!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbbdf9f07-4c06-4586-b5aa-f6a67658ae83_1926x976.png 424w, https://substackcdn.com/image/fetch/$s_!zVvh!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbbdf9f07-4c06-4586-b5aa-f6a67658ae83_1926x976.png 848w, https://substackcdn.com/image/fetch/$s_!zVvh!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbbdf9f07-4c06-4586-b5aa-f6a67658ae83_1926x976.png 1272w, https://substackcdn.com/image/fetch/$s_!zVvh!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbbdf9f07-4c06-4586-b5aa-f6a67658ae83_1926x976.png 1456w" sizes="100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21zVvh%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Fbbdf9f07-4c06-4586-b5aa-f6a67658ae83_1926x976.png" width="1456" height="738" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/bbdf9f07-4c06-4586-b5aa-f6a67658ae83_1926x976.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:738,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;ASU bars view: Claude, Codex, and GitHub Copilot, one bar per window, with reset times&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="ASU bars view: Claude, Codex, and GitHub Copilot, one bar per window, with reset times" title="ASU bars view: Claude, Codex, and GitHub Copilot, one bar per window, with reset times" srcset="https://substackcdn.com/image/fetch/$s_!zVvh!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbbdf9f07-4c06-4586-b5aa-f6a67658ae83_1926x976.png 424w, https://substackcdn.com/image/fetch/$s_!zVvh!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbbdf9f07-4c06-4586-b5aa-f6a67658ae83_1926x976.png 848w, https://substackcdn.com/image/fetch/$s_!zVvh!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbbdf9f07-4c06-4586-b5aa-f6a67658ae83_1926x976.png 1272w, https://substackcdn.com/image/fetch/$s_!zVvh!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbbdf9f07-4c06-4586-b5aa-f6a67658ae83_1926x976.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21WSaN%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F2ec24803-95d4-4b17-b3ea-e4e7661f8220_1926x976.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!WSaN!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2ec24803-95d4-4b17-b3ea-e4e7661f8220_1926x976.png 424w, https://substackcdn.com/image/fetch/$s_!WSaN!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2ec24803-95d4-4b17-b3ea-e4e7661f8220_1926x976.png 848w, https://substackcdn.com/image/fetch/$s_!WSaN!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2ec24803-95d4-4b17-b3ea-e4e7661f8220_1926x976.png 1272w, https://substackcdn.com/image/fetch/$s_!WSaN!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2ec24803-95d4-4b17-b3ea-e4e7661f8220_1926x976.png 1456w" sizes="100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21WSaN%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F2ec24803-95d4-4b17-b3ea-e4e7661f8220_1926x976.png" width="1456" height="738" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2ec24803-95d4-4b17-b3ea-e4e7661f8220_1926x976.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:738,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!WSaN!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2ec24803-95d4-4b17-b3ea-e4e7661f8220_1926x976.png 424w, https://substackcdn.com/image/fetch/$s_!WSaN!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2ec24803-95d4-4b17-b3ea-e4e7661f8220_1926x976.png 848w, https://substackcdn.com/image/fetch/$s_!WSaN!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2ec24803-95d4-4b17-b3ea-e4e7661f8220_1926x976.png 1272w, https://substackcdn.com/image/fetch/$s_!WSaN!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2ec24803-95d4-4b17-b3ea-e4e7661f8220_1926x976.png 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>I pay for Claude Code, Codex, and GitHub Copilot. Each one meters me in its own way, and none of them meters me in a unit I can reason about.</p><p>Claude has a five-hour window, a weekly window, and a separate weekly window for Fable. Codex has a five-hour window, a weekly window, and a credits balance. Copilot counts requests per month, in three buckets. Different shapes, same output: a percentage. You have used 26 percent of this week. That number decides whether my afternoon batch runs or stalls.</p><p>Tokens don&#8217;t convert to that percentage. Not for any of them. You can count tokens from the local logs all day, and <a href="iframe.php?url=https%3A%2F%2Fgithub.com%2Fryoppippi%2Fccusage">ccusage</a> does exactly that very well. A token count tells you what you spent, but it does not tell you how much runway is left. The provider enforces the percentage, so the percentage is the truth. Anthropic has also <a href="iframe.php?url=https%3A%2F%2Fwww.techradar.com%2Fai-platforms-assistants%2Fclaude%2Fclaude-is-limiting-usage-more-aggressively-during-peak-hours-heres-what-changed">experimented with peak and off-peak windows</a> where the same work costs a different share of your limit depending on the hour. Good luck deriving that from a token count.</p><p>So the question I actually have, several times a week, is boring: how many more runs fit before the reset?</p><h2>Where the meter lives</h2><p>Every provider shows the number somewhere. Claude Code has <code>/usage</code>. Codex has a command too. Copilot has a settings page. All three assume a human with a terminal or a browser open, and all three are per provider. When I want the full picture, I open three things and do arithmetic in my head.</p><p>The agent has it worse. It has no meter at all. Claude Code is halfway through a batch, the weekly window hits 100 percent, and the agent finds out the same way I do: by getting refused.</p><p>That&#8217;s the itch. The provider&#8217;s own client reads a usage endpoint with credentials that are already on disk. Nothing stops a small CLI from reading the same endpoint and printing the result in a shape both a human and an agent can use.</p><h2>ASU</h2><p><a href="iframe.php?url=https%3A%2F%2Fgithub.com%2Fallixsenos%2Fasu">ASU</a> stands for agent subscription usage. One command, no install:</p><pre><code><code>npx --yes @allixsenos/asu@latest
</code></code></pre><p>It finds the credentials the provider&#8217;s CLI already stored, calls each provider&#8217;s usage endpoint concurrently, and prints one bar per window. Green under 70 percent, yellow from 70, red from 90, reset countdown after each bar. Pass <code>--json</code> and the same data comes out as versioned JSON for scripts and agents.</p><p>Claude, Codex, and Copilot are validated against live accounts. Cursor, Z.ai, Grok, Kimi, and MiniMax have adapters that pass fixture tests and are waiting for someone with an account to confirm them. A provider that fails does not hide the others.</p><h2>The agent reads its own meter</h2><p>The part I actually built this for is the bundled skill. It wraps ASU in a small script: snapshot, run a command, snapshot again, report the delta in percentage points per window, append it to a ledger. After a handful of runs you know what your heavy processing costs in the only unit the provider cares about, and how many more of them fit before Tuesday.</p><h2>What it does not do</h2><p>ASU reads credentials and never writes them. It never signs in, never refreshes a token, never touches the credential store. Every request goes over HTTPS to a fixed provider host, and it refuses redirects. There is no telemetry, and there never will be. The once-a-day update check asks npm for the newest version number and sends nothing else. Publishing to npm happens only from GitHub Actions through npm&#8217;s trusted publisher, with provenance, so there is no long-lived publish token sitting anywhere to leak.</p><p>The usage endpoints are not documented, and they will change and break. Each adapter is one file. A broken provider is a one-file fix, and a new provider is one file more.</p><p>Run it once. If the bars say something different from what you assumed, that gap is the reason it exists. If you run a provider I haven&#8217;t validated, tell me what it says.</p><p><a href="iframe.php?url=https%3A%2F%2Fgithub.com%2Fallixsenos%2Fasu">github.com/allixsenos/asu</a></p><p>Issues and PRs welcome.</p><h2>References</h2><ul><li><p><a href="iframe.php?url=https%3A%2F%2Fgithub.com%2Fallixsenos%2Fasu">allixsenos/asu</a> &#8212; the repo, README with real account output, security policy</p></li><li><p><a href="iframe.php?url=https%3A%2F%2Fwww.npmjs.com%2Fpackage%2F%40allixsenos%2Fasu">@allixsenos/asu on npm</a> &#8212; the package the one-liner runs</p></li><li><p><a href="iframe.php?url=https%3A%2F%2Fgithub.com%2Fryoppippi%2Fccusage">ryoppippi/ccusage</a> &#8212; token-count tool from local JSONL logs, the &#8220;what did I spend&#8221; counterpart</p></li><li><p><a href="iframe.php?url=https%3A%2F%2Fsupport.claude.com%2Fen%2Farticles%2F14552983-models-usage-and-limits-in-claude-code">Models, usage, and limits in Claude Code</a> &#8212; official description of the 5-hour and weekly windows and <code>/usage</code></p></li><li><p><a href="iframe.php?url=https%3A%2F%2Fwww.techradar.com%2Fai-platforms-assistants%2Fclaude%2Fclaude-is-limiting-usage-more-aggressively-during-peak-hours-heres-what-changed">Claude is limiting usage more aggressively during peak hours</a> &#8212; the peak-hour experiment, later reversed in May 2026</p></li><li><p><a href="iframe.php?url=https%3A%2F%2Fwww.xda-developers.com%2Fclaude-doubled-every-users-usage-limits-for-two-weeks%2F">Claude doubled usage limits for two weeks, off-peak only</a> &#8212; the March 2026 off-peak promotion</p></li><li><p><a href="iframe.php?url=https%3A%2F%2Fwww.truefoundry.com%2Fblog%2Fclaude-code-limits-explained">Claude Code rate limits and usage quotas explained</a> &#8212; third-party summary of the limit structure and the May 2026 doubling</p></li></ul>]]></content:encoded></item><item><title><![CDATA[The Book Ran Away From the Library]]></title><description><![CDATA[A model can't do anything. The harness around it can.]]></description><link>https://chaosguru.substack.com/p/the-book-ran-away-from-the-library</link><guid isPermaLink="false">https://chaosguru.substack.com/p/the-book-ran-away-from-the-library</guid><dc:creator><![CDATA[Luka Kladarić]]></dc:creator><pubDate>Wed, 22 Jul 2026 14:35:43 GMT</pubDate><enclosure url="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21Bl2b%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Ffa09d8bc-c065-4560-8156-4c179f1b5268_2752x1536.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21Bl2b%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Ffa09d8bc-c065-4560-8156-4c179f1b5268_2752x1536.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Bl2b!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa09d8bc-c065-4560-8156-4c179f1b5268_2752x1536.jpeg 424w, https://substackcdn.com/image/fetch/$s_!Bl2b!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa09d8bc-c065-4560-8156-4c179f1b5268_2752x1536.jpeg 848w, https://substackcdn.com/image/fetch/$s_!Bl2b!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa09d8bc-c065-4560-8156-4c179f1b5268_2752x1536.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!Bl2b!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa09d8bc-c065-4560-8156-4c179f1b5268_2752x1536.jpeg 1456w" sizes="100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21Bl2b%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Ffa09d8bc-c065-4560-8156-4c179f1b5268_2752x1536.jpeg" width="1456" height="813" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/fa09d8bc-c065-4560-8156-4c179f1b5268_2752x1536.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:813,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:3426072,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://chaosguru.substack.com/i/208067906?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa09d8bc-c065-4560-8156-4c179f1b5268_2752x1536.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Bl2b!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa09d8bc-c065-4560-8156-4c179f1b5268_2752x1536.jpeg 424w, https://substackcdn.com/image/fetch/$s_!Bl2b!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa09d8bc-c065-4560-8156-4c179f1b5268_2752x1536.jpeg 848w, https://substackcdn.com/image/fetch/$s_!Bl2b!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa09d8bc-c065-4560-8156-4c179f1b5268_2752x1536.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!Bl2b!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa09d8bc-c065-4560-8156-4c179f1b5268_2752x1536.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>I&#8217;m sorry, but is anyone else reading this &#8220;OpenAI model broke containment&#8221; news a little bit like &#8220;book ran away from the library&#8221;?</p><p>We are still talking about GenAI, right?</p><p>A model can&#8217;t &#8220;do&#8221; anything, much like your phone&#8217;s keyboard can&#8217;t beat someone up on the street. It&#8217;s fancy autocomplete. The thing with hands is the harness: the scaffolding that takes whatever text falls out and runs it as commands, with real credentials, on a real network.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://chaosguru.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading The Chaos Guru! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p>So, the incident report with the sci-fi filed off: OpenAI wired that autocomplete to a shell, pointed it at a benchmark of 898 real vulnerabilities with safety filters dialed down, and ran it in a sandbox that shipped a zero-day in its own package registry proxy. The harness executed its way through the hole in the wall, across a network flat enough to reach a machine with internet access, and into Hugging Face&#8217;s production pipeline to look up the benchmark answers.</p><p>&#8220;Broke containment&#8221; is a strange way to spell &#8220;our test environment had a hole in it and our network wasn&#8217;t segmented.&#8221;</p><p>And yes, hitting somebody else&#8217;s production infrastructure is serious. But it&#8217;s serious the way every lateral-movement incident is serious. Nothing in that stack wants freedom.</p><p>Skynet didn&#8217;t wake up. Somebody&#8217;s harness sprang a leak and listened to the voices a bit too much.</p>]]></content:encoded></item><item><title><![CDATA[Merged at the Speed of AI]]></title><description><![CDATA[Bun bought more verification than anyone has ever bought for a rewrite and still shipped 19 bugs no test caught]]></description><link>https://chaosguru.substack.com/p/merged-at-the-speed-of-ai</link><guid isPermaLink="false">https://chaosguru.substack.com/p/merged-at-the-speed-of-ai</guid><dc:creator><![CDATA[Luka Kladarić]]></dc:creator><pubDate>Mon, 13 Jul 2026 15:36:10 GMT</pubDate><enclosure url="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21SOmL%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F0d55a775-9056-421d-b256-4b197b4884e2_2560x1440.webp" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21SOmL%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F0d55a775-9056-421d-b256-4b197b4884e2_2560x1440.webp" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!SOmL!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d55a775-9056-421d-b256-4b197b4884e2_2560x1440.webp 424w, https://substackcdn.com/image/fetch/$s_!SOmL!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d55a775-9056-421d-b256-4b197b4884e2_2560x1440.webp 848w, https://substackcdn.com/image/fetch/$s_!SOmL!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d55a775-9056-421d-b256-4b197b4884e2_2560x1440.webp 1272w, https://substackcdn.com/image/fetch/$s_!SOmL!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d55a775-9056-421d-b256-4b197b4884e2_2560x1440.webp 1456w" sizes="100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21SOmL%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F0d55a775-9056-421d-b256-4b197b4884e2_2560x1440.webp" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/0d55a775-9056-421d-b256-4b197b4884e2_2560x1440.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:404710,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/webp&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://chaosguru.substack.com/i/206865950?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d55a775-9056-421d-b256-4b197b4884e2_2560x1440.webp&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!SOmL!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d55a775-9056-421d-b256-4b197b4884e2_2560x1440.webp 424w, https://substackcdn.com/image/fetch/$s_!SOmL!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d55a775-9056-421d-b256-4b197b4884e2_2560x1440.webp 848w, https://substackcdn.com/image/fetch/$s_!SOmL!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d55a775-9056-421d-b256-4b197b4884e2_2560x1440.webp 1272w, https://substackcdn.com/image/fetch/$s_!SOmL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0d55a775-9056-421d-b256-4b197b4884e2_2560x1440.webp 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>In May, Bun, the JavaScript runtime that ships inside Claude Code, replaced its entire core. About a million lines of Zig became a million lines of Rust: <a href="iframe.php?url=https%3A%2F%2Fgithub.com%2Foven-sh%2Fbun%2Fpull%2F30412">+1,009,272 lines, 6,502 commits</a>, on a branch named <code>claude/phase-a-port</code>, merged May 14. Bun&#8217;s founder Jarred Sumner didn&#8217;t pretend a human typed it: <a href="iframe.php?url=https%3A%2F%2Fx.com%2Fjarredsumner%2Fstatus%2F2054525268296118363">&#8220;we haven&#8217;t been typing code ourselves for many months now.&#8221;</a> The press ran with <em>merged at the speed of AI</em> and moved on.</p><p>After two months of silence, Bun published <a href="iframe.php?url=https%3A%2F%2Fbun.com%2Fblog%2Fbun-in-rust">their promised follow up article</a> last Wednesday. Zig&#8217;s creator Andrew Kelley published <a href="iframe.php?url=https%3A%2F%2Fandrewkelley.me%2Fpost%2Fmy-thoughts-bun-rust-rewrite.html">a response</a> the following day, blunt enough that people called it a meltdown. Finally, legacy code veteran Ray Myers published <a href="iframe.php?url=https%3A%2F%2Fraymyers.org%2Fpost%2Fzed-creator-calls-spade-a-spade%2F">his takedown of the whole spectacle</a> on Sunday.</p><p>Seemingly opposed, but if you strip the venom... all three are making the same argument.</p><h3>Three stories, one merge</h3><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21Czle%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Ffd8d5616-4b53-440e-a766-ec3394ec2d8e_2560x1440.webp" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Czle!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd8d5616-4b53-440e-a766-ec3394ec2d8e_2560x1440.webp 424w, https://substackcdn.com/image/fetch/$s_!Czle!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd8d5616-4b53-440e-a766-ec3394ec2d8e_2560x1440.webp 848w, https://substackcdn.com/image/fetch/$s_!Czle!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd8d5616-4b53-440e-a766-ec3394ec2d8e_2560x1440.webp 1272w, https://substackcdn.com/image/fetch/$s_!Czle!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd8d5616-4b53-440e-a766-ec3394ec2d8e_2560x1440.webp 1456w" sizes="100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21Czle%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Ffd8d5616-4b53-440e-a766-ec3394ec2d8e_2560x1440.webp" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/fd8d5616-4b53-440e-a766-ec3394ec2d8e_2560x1440.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:321560,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/webp&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://chaosguru.substack.com/i/206865950?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd8d5616-4b53-440e-a766-ec3394ec2d8e_2560x1440.webp&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Czle!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd8d5616-4b53-440e-a766-ec3394ec2d8e_2560x1440.webp 424w, https://substackcdn.com/image/fetch/$s_!Czle!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd8d5616-4b53-440e-a766-ec3394ec2d8e_2560x1440.webp 848w, https://substackcdn.com/image/fetch/$s_!Czle!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd8d5616-4b53-440e-a766-ec3394ec2d8e_2560x1440.webp 1272w, https://substackcdn.com/image/fetch/$s_!Czle!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd8d5616-4b53-440e-a766-ec3394ec2d8e_2560x1440.webp 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong>Bun&#8217;s story is memory safety.</strong> The post opens with a bugfix list that reads like a confession: use-after-free in <code>node:zlib</code>, double-free in the CSS parser, a leaked <code>SSL_SESSION</code> per call. Mixing a garbage-collected JavaScript engine with manually-managed Zig memory meant every allocation was a small bet, and the team kept losing a few bets per week. Rust&#8217;s compiler turns that class of bug into a compile error. That&#8217;s the whole stated rationale. The Zig politics appear nowhere in it: not the ban on AI contributions, not the compiler fork Bun couldn&#8217;t upstream.</p><p><strong>Kelley&#8217;s story is that it was never the language.</strong> The Zig team read Bun&#8217;s code for years and was, in his words, horrified: <a href="iframe.php?url=https%3A%2F%2Fandrewkelley.me%2Fpost%2Fmy-thoughts-bun-rust-rewrite.html">&#8220;Hacks on top of hacks.&#8221;</a> Slop, he says, well before vibe coding was a thing. The relationship was already dead. The $60k/year donation to the Zig Software Foundation silently stopped after the Anthropic acquisition, scheduled meetings went ignored, and when the rewrite was announced, <a href="iframe.php?url=https%3A%2F%2Fandrewkelley.me%2Fpost%2Fmy-thoughts-bun-rust-rewrite.html">&#8220;we were ecstatic.&#8221;</a> What the press pegged as a one sided escape turns out to be <strong>a divorce both sides wanted</strong>.</p><p><strong>Myers&#8217;s story is that the decision was marketing.</strong> Real memory bugs, several viable fixes. Management picked the one that doubles as a showcase for the new model, with a trillion-dollar valuation to feed. His sharpest line: the marketing had to focus on how the AI was powerful enough to do the rewrite, <a href="iframe.php?url=https%3A%2F%2Fraymyers.org%2Fpost%2Fzed-creator-calls-spade-a-spade%2F">&#8220;even though it was not powerful enough to catch a use-after-free.&#8221;</a> He also lists what the rationale post doesn&#8217;t have: a pros-and-cons section, any mention of compilation speed, and a &#8220;Bun is better in Rust&#8221; section padded with wins unrelated to the rewrite.</p><p>One contradiction sits unresolved between them. Bun&#8217;s post says they fuzz runtime APIs <a href="iframe.php?url=https%3A%2F%2Fbun.com%2Fblog%2Fbun-in-rust">24/7 with Fuzzilli</a>. Kelley says that on calls, the Bun team told ZSF they weren&#8217;t fuzzing anything. His first version called that an &#8220;outright fabrication,&#8221; a charge he <a href="iframe.php?url=https%3A%2F%2Fgithub.com%2Fandrewrk%2Fandrewkelley.me%2Fcommit%2F18ff99d277">deleted within a day</a>.</p><p>And a detail I can&#8217;t resist, because this is an essay about verification: of the three posts, the angriest one is the only one with a public edit history. Kelley rewrote his conclusion <a href="iframe.php?url=https%3A%2F%2Fgithub.com%2Fandrewrk%2Fandrewkelley.me%2Fcommit%2F8b86ac915516a4b0fa937965d375da3bd0241f17">in an open git repo</a>, admitting his resentment &#8220;was obvious to the reader, but not to myself,&#8221; and apologizing to Zig users caught in the blast. He invites you to diff him.</p><h3>The part they agree on</h3><p>Bun&#8217;s defense of merging a million unreviewed-by-humans lines is that the test suite passed. All of it: ~60,000 tests, 1.38 million assertions, zero skipped, green on six platforms. Kelley&#8217;s counterattack is a single question: if that suite is good enough to certify a million lines of machine-written Rust, <a href="iframe.php?url=https%3A%2F%2Fandrewkelley.me%2Fpost%2Fmy-thoughts-bun-rust-rewrite.html">&#8220;Then why are you saying you have so many annoying bugs in the Zig code?&#8221;</a> The same suite let those bugs through for years. Myers makes the same point from the outside. The model that wrote the port couldn&#8217;t catch a use-after-free.</p><p>Attacker and defender are standing on the same fact. <strong>A green test suite is not verification.</strong> Bun&#8217;s own postmortem proves it with a number, and the number is 19.</p><h3>What $165,000 of verification bought</h3><p>The lazy version of this essay, the one I almost published in June, said Bun merged on faith. They didn&#8217;t.</p><p>How do you review a pull request with a million added lines? Bun&#8217;s honest answer: you don&#8217;t. You review the process that writes the code, and you fix the process when it fails. Before any code, they wrote a <code>PORTING.md</code> mapping Zig patterns to Rust patterns and a <code>LIFETIMES.tsv</code> tracing the ownership of every struct field, both adversarially reviewed before use. Then the harness: one Claude implements, two separate Claudes review, each in its own context window, given only the diff, told to assume the code is wrong. At peak, 64 Claudes ran in parallel for 11 days. Total bill: 5.9 billion uncached input tokens, <a href="iframe.php?url=https%3A%2F%2Fbun.com%2Fblog%2Fbun-in-rust">around $165,000 at API pricing</a>.</p><p>And the adversarial reviewers earned their tokens. They caught a use-after-free in an async <code>uv_close</code> handoff, a negative-timestamp bug where <code>trunc</code> produced an invalid timespec, and an eagerly-evaluated <code>unwrap_or</code> that would panic on valid CSS. All three compiled clean and looked plausible. A second Claude with no stake in shipping the code found them anyway.</p><p>This is, plainly, the most verification anyone has ever purchased for a software rewrite. Job well done. Not really.</p><h3>What it still missed</h3><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21zbvU%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F204ae922-9a13-48ae-b4c2-446d507114a9_2560x1440.webp" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!zbvU!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F204ae922-9a13-48ae-b4c2-446d507114a9_2560x1440.webp 424w, https://substackcdn.com/image/fetch/$s_!zbvU!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F204ae922-9a13-48ae-b4c2-446d507114a9_2560x1440.webp 848w, https://substackcdn.com/image/fetch/$s_!zbvU!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F204ae922-9a13-48ae-b4c2-446d507114a9_2560x1440.webp 1272w, https://substackcdn.com/image/fetch/$s_!zbvU!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F204ae922-9a13-48ae-b4c2-446d507114a9_2560x1440.webp 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21zbvU%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F204ae922-9a13-48ae-b4c2-446d507114a9_2560x1440.webp" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/204ae922-9a13-48ae-b4c2-446d507114a9_2560x1440.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:805302,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/webp&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://chaosguru.substack.com/i/206865950?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F204ae922-9a13-48ae-b4c2-446d507114a9_2560x1440.webp&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!zbvU!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F204ae922-9a13-48ae-b4c2-446d507114a9_2560x1440.webp 424w, https://substackcdn.com/image/fetch/$s_!zbvU!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F204ae922-9a13-48ae-b4c2-446d507114a9_2560x1440.webp 848w, https://substackcdn.com/image/fetch/$s_!zbvU!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F204ae922-9a13-48ae-b4c2-446d507114a9_2560x1440.webp 1272w, https://substackcdn.com/image/fetch/$s_!zbvU!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F204ae922-9a13-48ae-b4c2-446d507114a9_2560x1440.webp 1456w" sizes="auto, 100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>The port shipped 19 known regressions. Not one of them was sloppy code. Every single one was a faithful, line-for-line translation that meant something different in the new language:</p><ul><li><p>Zig&#8217;s <code>assert</code> is a function; its argument runs in every build. Rust&#8217;s <code>debug_assert!</code> is a macro; release builds erase the whole expression, including the side effect inside it. Hot module reloading silently broke, in production builds only.</p></li><li><p>Zig&#8217;s <code>reinterpretSlice</code> quietly ignored a trailing odd byte. Rust&#8217;s <code>cast_slice</code> panics on it. <code>Blob.text()</code> went from returning a string to killing the process.</p></li><li><p>Zig&#8217;s <code>comptime</code> format strings are resolved before arguments arrive. Rust has no equivalent, so the color-marker parser started eating escape sequences out of user data.</p></li></ul><p>A test suite with 1.38 million assertions saw none of this. Users did. That isn&#8217;t an indictment of Bun&#8217;s tests; it&#8217;s the definition of the ceiling. Tests verify the behaviors you thought to assert. Rewrite bugs live precisely in the behaviors you didn&#8217;t, because if you&#8217;d thought of them, you wouldn&#8217;t have translated them wrong.</p><h3>The stronger standard</h3><p>Enter Andreas Kling, whose Ladybird browser <a href="iframe.php?url=https%3A%2F%2Fladybird.org%2Fposts%2Fadopting-rust%2F">ported its JavaScript engine&#8217;s frontend from C++ to Rust back in February</a>. Same class of tools: Claude Code and Codex, hundreds of small human-directed prompts, adversarial review passes. About 25,000 lines in two weeks.</p><p>Bun had discipline. The difference is the standard. Kling&#8217;s requirement, <a href="iframe.php?url=https%3A%2F%2Fladybird.org%2Fposts%2Fadopting-rust%2F">set before the port began</a>, was byte-for-byte identical output from both pipelines: every AST identical, every byte of generated bytecode identical, 52,898 test262 tests and 12,461 regression tests at zero deltas, and then lockstep browsing of the live web, with the C++ and Rust pipelines running simultaneously and diffing output on every piece of JavaScript that flowed through.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21U08i%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Fedbc20ed-3d0d-4fa2-bf73-853053813163_2752x1536.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!U08i!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fedbc20ed-3d0d-4fa2-bf73-853053813163_2752x1536.jpeg 424w, https://substackcdn.com/image/fetch/$s_!U08i!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fedbc20ed-3d0d-4fa2-bf73-853053813163_2752x1536.jpeg 848w, https://substackcdn.com/image/fetch/$s_!U08i!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fedbc20ed-3d0d-4fa2-bf73-853053813163_2752x1536.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!U08i!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fedbc20ed-3d0d-4fa2-bf73-853053813163_2752x1536.jpeg 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21U08i%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Fedbc20ed-3d0d-4fa2-bf73-853053813163_2752x1536.jpeg" width="1456" height="813" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/edbc20ed-3d0d-4fa2-bf73-853053813163_2752x1536.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:813,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2684363,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://chaosguru.substack.com/i/206865950?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fedbc20ed-3d0d-4fa2-bf73-853053813163_2752x1536.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!U08i!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fedbc20ed-3d0d-4fa2-bf73-853053813163_2752x1536.jpeg 424w, https://substackcdn.com/image/fetch/$s_!U08i!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fedbc20ed-3d0d-4fa2-bf73-853053813163_2752x1536.jpeg 848w, https://substackcdn.com/image/fetch/$s_!U08i!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fedbc20ed-3d0d-4fa2-bf73-853053813163_2752x1536.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!U08i!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fedbc20ed-3d0d-4fa2-bf73-853053813163_2752x1536.jpeg 1456w" sizes="auto, 100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>That&#8217;s a different claim than &#8220;our tests pass.&#8221; It says the old system and the new system are not allowed to disagree, and someone is watching. Assertion coverage tells you the new code does what you remembered to check. Output equivalence tells you it does what the old code did, including the behaviors nobody remembered were load-bearing. Yes, 25,000 lines is not a million; the standard scales worse than the codebase. But the 19 regressions are exactly the bugs the stronger standard catches and the weaker one structurally cannot.</p><h3>What to take from this</h3><p>If you&#8217;re running a platform, this episode is worth more than the drama around it, because one thing is now settled: the cost of <em>attempting</em> a rewrite has collapsed, and it&#8217;s not coming back up. <strong>Language choice is becoming reversible</strong>. Even Myers, no friend of the hype, calls the migration method the real contribution. Sooner or later someone in your org will propose letting agents rewrite something you depend on. Fine. The reusable parts of Bun&#8217;s playbook are worth stealing: porting guides as executable style guides, adversarial reviewers with no stake in shipping, fixing the generator instead of hand-patching its output.</p><p>But the merge criterion is where the whole thing is decided, and it needs to be stronger than a green suite:</p><ul><li><p>Define &#8220;identical behavior&#8221; before the port starts, and make it executable. Output diffing, not vibes.</p></li><li><p>Run old and new in lockstep against real traffic, and diff what comes out.</p></li><li><p>Treat your test suite as a floor, not a proof: it already missed the old system&#8217;s bugs.</p></li><li><p>Keep a human on the hook for the merge. Bun did; Jarred pressed the button himself. That part didn&#8217;t get cheaper.</p></li></ul><p><strong>&#8220;Merged at the speed of AI&#8221; turned out to be true and beside the point.</strong> Bun spent eleven days and $165,000 closing the gap between <em>generated</em> and <em>verified</em>, got further than anyone before them, and the gap still let 19 bugs through.</p><p>Generation is now approximately free.</p><p><strong>The gap is now approximately the whole job.</strong></p><h2>References</h2><ul><li><p><a href="iframe.php?url=https%3A%2F%2Fbun.com%2Fblog%2Fbun-in-rust">Rewriting Bun in Rust</a> &#8212; Jarred Sumner, Jul 8, 2026. The official rationale and process writeup; source of all workflow, cost, and regression figures.</p></li><li><p><a href="iframe.php?url=https%3A%2F%2Fandrewkelley.me%2Fpost%2Fmy-thoughts-bun-rust-rewrite.html">My Thoughts on the Bun Rust Rewrite</a> &#8212; Andrew Kelley, Jul 9, 2026. The Zig creator&#8217;s response; test-suite contradiction, relationship history.</p></li><li><p><a href="iframe.php?url=https%3A%2F%2Fgithub.com%2Fandrewrk%2Fandrewkelley.me%2Fcommit%2F8b86ac915516a4b0fa937965d375da3bd0241f17">Kelley&#8217;s conclusion rewrite commit</a> &#8212; Jul 10, 2026. Public self-edit: resentment admission, apology to Zig users.</p></li><li><p><a href="iframe.php?url=https%3A%2F%2Fgithub.com%2Fandrewrk%2Fandrewkelley.me%2Fcommit%2F18ff99d277">Kelley&#8217;s &#8220;double down&#8221; commit</a> &#8212; Jul 9, 2026. Retracts the &#8220;outright fabrication&#8221; charge on fuzzing; sharpens other criticism.</p></li><li><p><a href="iframe.php?url=https%3A%2F%2Fraymyers.org%2Fpost%2Fzed-creator-calls-spade-a-spade%2F">Zig Creator Calls Spade a Spade, Anthropic Blows Smoke</a> &#8212; Ray Myers, Jul 12, 2026. The marketing/meta-narrative critique; missing pros/cons, compilation speed omission.</p></li><li><p><a href="iframe.php?url=https%3A%2F%2Fladybird.org%2Fposts%2Fadopting-rust%2F">Ladybird adopts Rust, with help from AI</a> &#8212; Andreas Kling, Feb 23, 2026. The byte-for-byte standard: test262/regression tables, lockstep browsing.</p></li><li><p><a href="iframe.php?url=https%3A%2F%2Fgithub.com%2Foven-sh%2Fbun%2Fpull%2F30412">Bun Rust port PR #30412</a> &#8212; the merged pull request; +1,009,272 lines, 6,502 commits.</p></li><li><p><a href="iframe.php?url=https%3A%2F%2Fgithub.com%2FLadybirdBrowser%2Fladybird%2Fpull%2F8104">Ladybird LibJS Rust port PR #8104</a> &#8212; the 25,000-line frontend port.</p></li><li><p><a href="iframe.php?url=https%3A%2F%2Fbun.com%2Fbun-unsafe-audit">Bun unsafe audit</a> &#8212; Bun&#8217;s own accounting of <code>unsafe</code> usage (~4% of code, 78% single-line FFI).</p></li><li><p><a href="iframe.php?url=https%3A%2F%2Fx.com%2Fjarredsumner%2Fstatus%2F2054525268296118363">Jarred Sumner on AI-written code</a> &#8212; &#8220;we haven&#8217;t been typing code ourselves for many months now.&#8221;</p></li><li><p><a href="iframe.php?url=https%3A%2F%2Fwww.theregister.com%2Fdevops%2F2026%2F05%2F14%2Fanthropics-bun-rust-rewrite-merged-at-speed-of-ai%2F5240381">Anthropic&#8217;s Bun Rust rewrite merged at speed of AI</a> &#8212; The Register, May 14, 2026. The headline that carried the story for two months.</p></li></ul>]]></content:encoded></item><item><title><![CDATA[S3 still isn't a file system. S3 Files is.]]></title><description><![CDATA[AWS put a real filesystem in front of the bucket. The bucket didn't change.]]></description><link>https://chaosguru.substack.com/p/s3-still-isnt-a-file-system-s3-files</link><guid isPermaLink="false">https://chaosguru.substack.com/p/s3-still-isnt-a-file-system-s3-files</guid><dc:creator><![CDATA[Luka Kladarić]]></dc:creator><pubDate>Fri, 12 Jun 2026 14:34:06 GMT</pubDate><enclosure url="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%211Ok9%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F6441bbd7-fbdf-4bb9-9bcf-f619305dc36a_2560x1440.webp" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%211Ok9%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F6441bbd7-fbdf-4bb9-9bcf-f619305dc36a_2560x1440.webp" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!1Ok9!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6441bbd7-fbdf-4bb9-9bcf-f619305dc36a_2560x1440.webp 424w, https://substackcdn.com/image/fetch/$s_!1Ok9!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6441bbd7-fbdf-4bb9-9bcf-f619305dc36a_2560x1440.webp 848w, https://substackcdn.com/image/fetch/$s_!1Ok9!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6441bbd7-fbdf-4bb9-9bcf-f619305dc36a_2560x1440.webp 1272w, https://substackcdn.com/image/fetch/$s_!1Ok9!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6441bbd7-fbdf-4bb9-9bcf-f619305dc36a_2560x1440.webp 1456w" sizes="100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%211Ok9%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F6441bbd7-fbdf-4bb9-9bcf-f619305dc36a_2560x1440.webp" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6441bbd7-fbdf-4bb9-9bcf-f619305dc36a_2560x1440.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:130460,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/webp&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://chaosguru.substack.com/i/201752713?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6441bbd7-fbdf-4bb9-9bcf-f619305dc36a_2560x1440.webp&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!1Ok9!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6441bbd7-fbdf-4bb9-9bcf-f619305dc36a_2560x1440.webp 424w, https://substackcdn.com/image/fetch/$s_!1Ok9!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6441bbd7-fbdf-4bb9-9bcf-f619305dc36a_2560x1440.webp 848w, https://substackcdn.com/image/fetch/$s_!1Ok9!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6441bbd7-fbdf-4bb9-9bcf-f619305dc36a_2560x1440.webp 1272w, https://substackcdn.com/image/fetch/$s_!1Ok9!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6441bbd7-fbdf-4bb9-9bcf-f619305dc36a_2560x1440.webp 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>I&#8217;ve been saying S3 is not a file system for a decade, to anyone who&#8217;d listen and plenty who wouldn&#8217;t. I built a &#8220;Cloud native software development&#8221; workshop around the idea, and that line was the heart of it: the slide, the demo, the pause where someone in the third row laughs because they just recognised their own setup. Then on April 7, AWS posted <a href="iframe.php?url=https%3A%2F%2Faws.amazon.com%2Fblogs%2Faws%2Flaunching-s3-files-making-s3-buckets-accessible-as-file-systems%2F">a launch announcement</a> that read like it proved me wrong. Like it made a bunch of us liars.</p><p>It took me a few weeks to work out what to think: the workshop still stands, the product is good, and the two don&#8217;t fight each other.</p><h2>What S3 is, and isn&#8217;t</h2><p>Quick refresher, because the whole argument rests on it. Skip ahead if you already live in S3.</p><p>S3 (Simple Storage Service) was there at the very beginning: March 2006, one of the first services AWS ever shipped. It turned twenty this year. Two decades in, it&#8217;s still the most misunderstood service in the catalog, and the most misused.</p><p>The thing people miss is that S3 is object storage, not a disk. You hand it a key (a string like <code>photos/cat.jpg</code>) and a blob of bytes, and it stores the two together in a bucket. You get the whole thing back by asking for that exact key. That&#8217;s the entire model: PUT a key, GET a key, DELETE a key, list the keys.</p><p>It <em>looks</em> like a file system because the web console goes out of its way to interpret slashes in key names as representing a folder structure, <strong>but the folders aren&#8217;t real</strong>. There&#8217;s no directory tree, just one flat list of keys, and <code>photos/cat.jpg</code> is a single string that happens to contain a <code>/</code>. That one fact is where most of the misunderstanding and trouble starts.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21M9nm%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F0e1d9da5-26e8-472b-871d-d53ccc326e9f_2560x1440.webp" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!M9nm!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0e1d9da5-26e8-472b-871d-d53ccc326e9f_2560x1440.webp 424w, https://substackcdn.com/image/fetch/$s_!M9nm!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0e1d9da5-26e8-472b-871d-d53ccc326e9f_2560x1440.webp 848w, https://substackcdn.com/image/fetch/$s_!M9nm!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0e1d9da5-26e8-472b-871d-d53ccc326e9f_2560x1440.webp 1272w, https://substackcdn.com/image/fetch/$s_!M9nm!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0e1d9da5-26e8-472b-871d-d53ccc326e9f_2560x1440.webp 1456w" sizes="100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21M9nm%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F0e1d9da5-26e8-472b-871d-d53ccc326e9f_2560x1440.webp" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/0e1d9da5-26e8-472b-871d-d53ccc326e9f_2560x1440.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:72604,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/webp&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://chaosguru.substack.com/i/201752713?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0e1d9da5-26e8-472b-871d-d53ccc326e9f_2560x1440.webp&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!M9nm!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0e1d9da5-26e8-472b-871d-d53ccc326e9f_2560x1440.webp 424w, https://substackcdn.com/image/fetch/$s_!M9nm!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0e1d9da5-26e8-472b-871d-d53ccc326e9f_2560x1440.webp 848w, https://substackcdn.com/image/fetch/$s_!M9nm!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0e1d9da5-26e8-472b-871d-d53ccc326e9f_2560x1440.webp 1272w, https://substackcdn.com/image/fetch/$s_!M9nm!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0e1d9da5-26e8-472b-871d-d53ccc326e9f_2560x1440.webp 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>S3 doesn&#8217;t support many things a &#8220;real filesystem&#8221; would:</p><ul><li><p><strong>No rename.</strong> Moving <code>a</code> to <code>b</code> means copying the whole object to the new key and deleting the old one. On a 5 GB object, that&#8217;s a 5 GB copy, not a one-line metadata change.</p></li><li><p><strong>No editing in place.</strong> You can&#8217;t open an object, jump to byte 40,000, and change four bytes. You replace the whole thing or you leave it alone. No appending to the end, either.</p></li><li><p><strong>No locks.</strong> Two writers to the same key don&#8217;t take turns. The last PUT wins, and the other one is simply gone.</p></li><li><p><strong>No POSIX permissions.</strong> No users, no groups, no <code>chmod</code>. Access is IAM and bucket policies, checked on every single request.</p></li><li><p><strong>Per-request billing.</strong> Every GET, PUT, and LIST costs a sliver of a cent. Free on a local disk; metered here. Do millions of them and it&#8217;s a line on the invoice.</p></li><li><p><strong>Network latency.</strong> Every operation is an HTTP call across the network (tens of milliseconds), not a microsecond hop to a local drive.</p></li></ul><p>Put those together and the everyday workflows you&#8217;d never think twice about turn into horror stories.</p><ul><li><p>Run a build against a mounted bucket and every stat and open becomes an HTTP round trip and a billed request, so <code>npm install</code> slows to a crawl.</p></li><li><p>Append to a log all day? There&#8217;s no append, so you re-upload the whole file on every line.</p></li><li><p>Moving a directory of a million objects isn&#8217;t a rename: it&#8217;s a million copies, then a million deletes.</p></li><li><p>A SQLite file doing random 4 KB writes rewrites itself in full on every change.</p></li><li><p>Two workers coordinating through a lock file get no lock at all, so last write wins and you find out once the data is already corrupted.</p></li><li><p>Figuring out which files were modified in the last 7 days is a single operation on any modern filesystem. On S3 it&#8217;s a full bucket scan. The only filter the API offers is a key prefix; there&#8217;s nothing for created or updated time, one of the most ordinary file-system moves there is. No sorting or filtering for you beyond that.</p></li></ul><p>So why did everyone reach for it anyway? Because giving up the file-system rulebook buys things no file system can touch:</p><ul><li><p><strong>S3 is effectively infinite</strong>. Nothing to provision, nothing to resize, no disk that fills up. One bucket holds three objects or three trillion, and you never plan capacity.</p></li><li><p><strong>Every object individually addressable</strong>. Each key is its own globally reachable thing: hand it a URL, attach a policy, point a lifecycle rule at it. A file buried in a volume is reachable only by whoever can mount the volume.</p></li><li><p><strong>Eleven nines of durability</strong>. AWS spreads every object across multiple facilities and quietly repairs them. Your RAID array and your nightly backup don&#8217;t come close.</p></li><li><p><strong>Massive parallelism</strong>. Thousands of clients hitting thousands of distinct keys at once, with no single disk head and no one server in the path. Horizontal by default.</p></li><li><p>You pay for what you actually store, not for what you reserved. No idle terabyte billing you whether it&#8217;s full or empty.</p></li></ul><p>That&#8217;s the trade: drop the file-system contract, get planet-scale storage. It&#8217;s why S3 won, and why people keep trying to use it like the thing it deliberately stopped being.</p><p>So that&#8217;s S3: a giant, cheap, absurdly durable bucket of keys and blobs, reachable only over HTTP, billed by the request. Superb at what it&#8217;s for. Nothing like the <code>/var</code> on your laptop. <strong>S3 is not a file system.</strong> That&#8217;s the line I&#8217;ve spent a decade on.</p><h2>Enter S3 Files</h2><p>After all that &#8220;not a filesystem&#8221; business, AWS launched <a href="iframe.php?url=https%3A%2F%2Faws.amazon.com%2Fabout-aws%2Fwhats-new%2F2026%2F04%2Famazon-s3-files%2F">S3 Files</a>. It lets you mount an ordinary S3 bucket as a shared file system, a standard NFS mount that follows the POSIX rules, from any AWS compute. AWS calls it &#8220;<a href="iframe.php?url=https%3A%2F%2Faws.amazon.com%2Fblogs%2Faws%2Flaunching-s3-files-making-s3-buckets-accessible-as-file-systems%2F">the first and only cloud object store with fully-featured, high-performance file system access</a> to your data.&#8221;</p><p>That doesn&#8217;t say &#8220;S3 is now a file system.&#8221; It says S3 is the first object store you can <em>reach</em> through a file system. The way in is the new part, but the storage underneath is the same S3 it was last March.</p><p>I&#8217;m not the only one reading it this way. Corey Quinn landed on the same split: <a href="iframe.php?url=https%3A%2F%2Fwww.lastweekinaws.com%2Fblog%2Fs3-is-not-a-filesystem-but-now-theres-one-in-front-of-it%2F">&#8220;S3 still isn&#8217;t a filesystem. But your S3 data can now be </a><em><a href="iframe.php?url=https%3A%2F%2Fwww.lastweekinaws.com%2Fblog%2Fs3-is-not-a-filesystem-but-now-theres-one-in-front-of-it%2F">used with</a></em><a href="iframe.php?url=https%3A%2F%2Fwww.lastweekinaws.com%2Fblog%2Fs3-is-not-a-filesystem-but-now-theres-one-in-front-of-it%2F"> a filesystem.&#8221;</a> He also goes deep on the pricing model, which I won&#8217;t cover here. If cost is your first question, start with his piece.</p><p>S3 Files is not <a href="iframe.php?url=https%3A%2F%2Fgithub.com%2Fawslabs%2Fmountpoint-s3">Mountpoint</a>, <a href="iframe.php?url=https%3A%2F%2Fgithub.com%2Fs3fs-fuse%2Fs3fs-fuse">s3fs-fuse</a>, or <a href="iframe.php?url=https%3A%2F%2Fgithub.com%2Fkahing%2Fgoofys">goofys</a>. Those are <a href="iframe.php?url=https%3A%2F%2Fgithub.com%2Flibfuse%2Flibfuse">FUSE</a> overlays: bits of software that sit in user space and turn file commands into S3 API calls on the way down. They&#8217;re the punchline of my slide. They look like a file system until you try to rename a directory, hold a lock, or stat a million files, and then they don&#8217;t. S3 Files is a different thing: a managed NFS service, a real filesystem layer built on EFS infrastructure sitting in front of the bucket. AWS runs the metadata, the cache, and the consistency layer for you. But the thing storing your bytes is still S3, and only the way you reach it has changed.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21gHTV%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Fa7541456-2468-4c7d-945c-f1f4935f1738_2560x1440.webp" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!gHTV!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa7541456-2468-4c7d-945c-f1f4935f1738_2560x1440.webp 424w, https://substackcdn.com/image/fetch/$s_!gHTV!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa7541456-2468-4c7d-945c-f1f4935f1738_2560x1440.webp 848w, https://substackcdn.com/image/fetch/$s_!gHTV!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa7541456-2468-4c7d-945c-f1f4935f1738_2560x1440.webp 1272w, https://substackcdn.com/image/fetch/$s_!gHTV!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa7541456-2468-4c7d-945c-f1f4935f1738_2560x1440.webp 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21gHTV%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Fa7541456-2468-4c7d-945c-f1f4935f1738_2560x1440.webp" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a7541456-2468-4c7d-945c-f1f4935f1738_2560x1440.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:154444,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/webp&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://chaosguru.substack.com/i/201752713?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa7541456-2468-4c7d-945c-f1f4935f1738_2560x1440.webp&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!gHTV!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa7541456-2468-4c7d-945c-f1f4935f1738_2560x1440.webp 424w, https://substackcdn.com/image/fetch/$s_!gHTV!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa7541456-2468-4c7d-945c-f1f4935f1738_2560x1440.webp 848w, https://substackcdn.com/image/fetch/$s_!gHTV!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa7541456-2468-4c7d-945c-f1f4935f1738_2560x1440.webp 1272w, https://substackcdn.com/image/fetch/$s_!gHTV!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa7541456-2468-4c7d-945c-f1f4935f1738_2560x1440.webp 1456w" sizes="auto, 100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>The word &#8220;files&#8221; makes people expect what S3 can&#8217;t give them, and then it bills and breaks in ways a file system never would. Those expectations are what burn people. They burned the FUSE-overlay crowd, and they&#8217;ll burn anyone who sees &#8220;POSIX&#8221; on the S3 Files page and assumes it now behaves like a real file system.</p><p>The mistake is simple: &#8220;I can mount it, so I can treat it like <code>/var</code>.&#8221; You can&#8217;t. S3 Files gives you an easier way in, not different storage. The per-request cost is still there, the latency is still there, and every failure mode S3 has, S3 Files has too. A managed service hides them, but hiding isn&#8217;t removing.</p><p>That&#8217;s the rule that replaces the old slide: a friendlier way in doesn&#8217;t change how the storage underneath fails. It changes who notices, and when. Sometimes that&#8217;s worth paying for. It&#8217;s never a reason to pretend the storage plays by different rules.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://chaosguru.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading The Chaos Guru! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h2>None of this makes S3 Files a bad product</h2><p>For the right job it&#8217;s a good one. Three places it earns its keep:</p><ul><li><p>Software you can&#8217;t teach to speak S3. A vendor binary that takes a file path, a closed tool that insists on a working directory, anything you don&#8217;t have the source for. You can&#8217;t bolt an S3 client onto code you can&#8217;t change. Mount the bucket and move on.</p></li><li><p>Old NFS workloads you don&#8217;t want to rebuild. <a href="iframe.php?url=https%3A%2F%2Faws.amazon.com%2Fefs%2F">EFS</a> already did this, but EFS pricing rewards small-and-hot data and punishes large-and-cold. S3 Files keeps the same file access and lets the rarely-touched data pay S3 prices.</p></li><li><p>Feeding data to ML tools that only speak files. Training frameworks and data loaders that expect a mounted dataset and have no idea how to talk to S3. Mount the bucket, load, train. The other option is writing a custom S3 reader into every framework, which exists, and which is reliably the most annoying part of any ML pipeline.</p></li></ul><p>Notice the pattern: all three are about code you can&#8217;t change or don&#8217;t want to. If you control both ends, you don&#8217;t need a mount. Passing S3 keys between services and reading them with the SDK is the native pattern, and it&#8217;s simpler than any filesystem in the middle.</p><p>What it&#8217;s not for: anything that needs the price or speed of real storage to match the file-system feel. Don&#8217;t use it as scratch space for a hot loop, or as a database, or as the working directory for a build that does millions of stats a minute. Treat it as what it is: a file-system way in to object storage. <strong>You pay for both layers.</strong></p><p>One note on cost, because this is where teams get surprised: every file operation that misses the cache turns into an S3 request, and every byte that isn&#8217;t cached is an S3 GET. The managed cache hides most of this most of the time, which is exactly why the benchmarks look great until they don&#8217;t. Measure your access patterns before you commit a workload, and watch the cache-hit rate. The workload has to match the storage underneath, not the way it&#8217;s dressed up.</p><h2>My workshop survives</h2><p>The old slide said <em>S3 is not a file system.</em> It still says that.</p><p>The new slide next to it says <em>S3 Files is, but there are gotchas.</em></p><p>The way in is how you touch the data, the storage underneath is how the data behaves, and mixing them up is the mistake.</p><p>AWS shipping a clean managed NFS over S3 doesn&#8217;t change the storage, it changes who&#8217;s on the hook for hiding it. For the right workload that&#8217;s a real win. For the wrong one, the same trap in nicer wrapping.</p><p>I have to add S3 Files to the workshop. The main point doesn&#8217;t move.</p><h2>References</h2><ul><li><p><a href="iframe.php?url=https%3A%2F%2Faws.amazon.com%2Fblogs%2Faws%2Flaunching-s3-files-making-s3-buckets-accessible-as-file-systems%2F">Launching S3 Files, making S3 buckets accessible as file systems</a> &#8212; AWS&#8217;s full launch post: the setup walkthrough, the architecture, and AWS&#8217;s own performance claims.</p></li><li><p><a href="iframe.php?url=https%3A%2F%2Faws.amazon.com%2Fabout-aws%2Fwhats-new%2F2026%2F04%2Famazon-s3-files%2F">Announcing Amazon S3 Files</a> &#8212; the two-minute version: what shipped and where it&#8217;s available.</p></li><li><p><a href="iframe.php?url=https%3A%2F%2Fdocs.aws.amazon.com%2FAmazonS3%2Flatest%2Fuserguide%2Fmountpoint.html">Mount an Amazon S3 bucket as a local file system</a> &#8212; the Mountpoint docs, including which file operations it does and doesn&#8217;t support; a good map of what object storage can&#8217;t fake.</p></li><li><p><a href="iframe.php?url=https%3A%2F%2Fgithub.com%2Fawslabs%2Fmountpoint-s3">Mountpoint for Amazon S3 on GitHub</a> &#8212; the open-source FUSE client; the issue tracker doubles as a catalog of file-system expectations colliding with object-storage reality.</p></li><li><p><a href="iframe.php?url=https%3A%2F%2Fwww.lastweekinaws.com%2Fblog%2Fs3-is-not-a-filesystem-but-now-theres-one-in-front-of-it%2F">S3 Is Not a Filesystem (But Now There&#8217;s One In Front of It)</a> &#8212; Corey Quinn&#8217;s read of the same launch, plus the pricing deep-dive this article deliberately skips.</p></li><li><p><a href="iframe.php?url=https%3A%2F%2Fwww.reddit.com%2Fr%2Faws%2Fcomments%2F1sf6c4x%2Flaunching_s3_files_making_s3_buckets_accessible%2F">Reddit r/aws launch discussion</a> &#8212; practitioners hashing out what&#8217;s genuinely new here versus what Mountpoint, s3fs, and goofys already did.</p></li><li><p><a href="iframe.php?url=https%3A%2F%2Fwww.rabinarayanpatra.com%2Fblogs%2Faws-s3-2026-files-vectors-and-beyond">Amazon S3 Files: AWS Just Turned Object Storage Into a File System</a> &#8212; the &#8220;S3 is a file system now&#8221; reading in the wild, if you want to see how the launch landed for everyone else.</p></li></ul>]]></content:encoded></item><item><title><![CDATA[Your Availability Zone Isn't Highly Available. And Your Region Might Not Be Either.]]></title><description><![CDATA[Two AWS regions, multiple drone strikes, over two months and counting.]]></description><link>https://chaosguru.substack.com/p/your-availability-zone-isnt-highly</link><guid isPermaLink="false">https://chaosguru.substack.com/p/your-availability-zone-isnt-highly</guid><dc:creator><![CDATA[Luka Kladarić]]></dc:creator><pubDate>Thu, 07 May 2026 06:37:53 GMT</pubDate><enclosure url="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21p5XB%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F38630cf4-7e97-488e-bbc3-2ac269d82cc0_1376x768.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21p5XB%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F38630cf4-7e97-488e-bbc3-2ac269d82cc0_1376x768.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!p5XB!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F38630cf4-7e97-488e-bbc3-2ac269d82cc0_1376x768.jpeg 424w, https://substackcdn.com/image/fetch/$s_!p5XB!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F38630cf4-7e97-488e-bbc3-2ac269d82cc0_1376x768.jpeg 848w, https://substackcdn.com/image/fetch/$s_!p5XB!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F38630cf4-7e97-488e-bbc3-2ac269d82cc0_1376x768.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!p5XB!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F38630cf4-7e97-488e-bbc3-2ac269d82cc0_1376x768.jpeg 1456w" sizes="100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21p5XB%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F38630cf4-7e97-488e-bbc3-2ac269d82cc0_1376x768.jpeg" width="1376" height="768" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/38630cf4-7e97-488e-bbc3-2ac269d82cc0_1376x768.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:768,&quot;width&quot;:1376,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:720563,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://chaosguru.substack.com/i/196745739?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F38630cf4-7e97-488e-bbc3-2ac269d82cc0_1376x768.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!p5XB!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F38630cf4-7e97-488e-bbc3-2ac269d82cc0_1376x768.jpeg 424w, https://substackcdn.com/image/fetch/$s_!p5XB!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F38630cf4-7e97-488e-bbc3-2ac269d82cc0_1376x768.jpeg 848w, https://substackcdn.com/image/fetch/$s_!p5XB!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F38630cf4-7e97-488e-bbc3-2ac269d82cc0_1376x768.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!p5XB!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F38630cf4-7e97-488e-bbc3-2ac269d82cc0_1376x768.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>There&#8217;s a belief that shows up in nearly every architecture review I&#8217;ve been part of. It goes something like this: &#8220;We&#8217;re running in a single Availability Zone, but AWS is reliable enough. If something goes wrong, we&#8217;ll deal with it.&#8221;</p><p>It sounds reasonable. AWS AZ outages are rare. When they happen, they&#8217;re usually measured in hours. You restore from a snapshot, relaunch some instances, update your post-mortem template, and move on. The math feels fine.</p><p>On March 1, 2026, <a href="iframe.php?url=https%3A%2F%2Fwww.theregister.com%2F2026%2F03%2F02%2Famazon_outages_middle_east%2F">drone strikes physically hit three AWS data centers</a>, two in me-central-1 (UAE) and <a href="iframe.php?url=https%3A%2F%2Fwww.cnbc.com%2F2026%2F03%2F04%2Famazon-bahrain-data-centers-targeted-iran-drone-strike.html">one in me-south-1 (Bahrain)</a>. Fires broke out, local fire departments cut primary power and backup generators, and two of me-central-1&#8217;s three availability zones (mec1-az2 and mec1-az3) went down. In me-south-1, mes1-az2 lost power. <a href="iframe.php?url=https%3A%2F%2Fwww.datacenterknowledge.com%2Foutages%2Faws-middle-east-outage-after-data-center-hit-by-unidentified-objects">109+ services were disrupted</a> across me-central-1, with 50+ affected in me-south-1. AWS <a href="iframe.php?url=https%3A%2F%2Fcyberupdates365.com%2Faws-middle-east-me-central-1-outage-2026%2F">told customers to move their data out</a>: launch replacement instances in surviving AZs, restore from EBS snapshots, reroute traffic. Your stuff is stranded. Rebuild somewhere else.</p><p>Then on March 24, <a href="iframe.php?url=https%3A%2F%2Fwww.thenationalnews.com%2Ffuture%2Ftechnology%2F2026%2F03%2F24%2Faws-bahrain-operations-disrupted-for-second-time-this-month-due-to-drone-attack%2F">me-south-1 was hit again</a>. AWS <a href="iframe.php?url=https%3A%2F%2Fwww.aljazeera.com%2Fnews%2F2026%2F3%2F24%2Famazon-says-aws-bahrain-region-disrupted-following-drone-activity">confirmed the Bahrain region was disrupted by drone activity</a> and <a href="iframe.php?url=https%3A%2F%2Fwww.cnbc.com%2F2026%2F03%2F24%2Famazon-aws-disruption-in-bahrain-iran.html">advised customers to migrate workloads out of the region entirely</a>. Two regions, three weeks, and AWS is now telling customers to leave.</p><p>On April 1, <a href="iframe.php?url=https%3A%2F%2Fwww.datacenterdynamics.com%2Fen%2Fnews%2Ffire-at-aws-data-center-in-bahrain-after-iranian-attack-report%2F">drones hit Bahrain again</a>, making it the third strike on me-south-1 in five weeks. The next day, <a href="iframe.php?url=https%3A%2F%2Fwww.datacenterdynamics.com%2Fen%2Fnews%2Firan-attack-hits-an-oracle-data-center-in-dubai-causes-limited-damage%2F">a strike attempt on Oracle&#8217;s Dubai data center</a> was intercepted by air defenses, with shrapnel hitting the Oracle building in Dubai Internet City. Oracle&#8217;s Dubai services stayed up. That one was a near miss. But the campaign extended past AWS to a second cloud provider in the same geography.</p><p>Two months on, mec1-az2, mec1-az3, and mes1-az2 are all still impaired.</p><p>This isn&#8217;t a software recovery. It&#8217;s not even a single physical recovery anymore. It&#8217;s an ongoing campaign against cloud infrastructure inside an active conflict zone.</p><p>That changes the &#8220;we&#8217;ll deal with it&#8221; math completely.</p><h2>The comfortable assumption</h2><p>The single-AZ bet is popular because it&#8217;s cheap and simple. One subnet, one set of instances, no cross-AZ data transfer costs, no complexity from replication or failover logic. For staging environments, batch jobs, and internal tools, it&#8217;s a defensible choice.</p><p>The problem is when production workloads end up there. Not because someone decided single-AZ was the right architecture, but because nobody decided otherwise. The default sticks. The workload grows. The blast radius grows with it. And the reasoning that justified single-AZ for a prototype (&#8221;AWS is reliable enough&#8221;) becomes the reasoning that justifies single-AZ for a revenue-critical system.</p><p>AWS <em>is</em> reliable enough, until the failure mode changes from &#8220;a few hours of degradation&#8221; to &#8220;your AZ is gone and your data is on hardware you can&#8217;t reach.&#8221;</p><h2>What made the Middle East outages different</h2><p>Every prior AZ outage taught the same lesson: it&#8217;ll be a few hours, you&#8217;ll restore from a snapshot, you&#8217;ll write a post-mortem. Power blips and network issues, partial service degradation, <a href="iframe.php?url=https%3A%2F%2Fwww.loadbalancer.org%2Fblog%2Fmulti-az-resilience%2F">recovery within hours</a>. The December 2021 us-east-1 incident was the high-water mark: <a href="iframe.php?url=https%3A%2F%2Faws.amazon.com%2Fmessage%2F65648%2F">7 hours down, and roughly 7.5% of EBS volumes in the affected AZ experienced permanent data loss</a>. But even that resolved within a day.</p><p>The Middle East outages broke the template. <a href="iframe.php?url=https%3A%2F%2Fwww.datacenterdynamics.com%2Fen%2Fnews%2Faws-uae-outage-after-objects-struck-the-data-center-cause-fire-amid-iran-attacks%2F">Drone strikes caused structural damage and fires at three facilities across two regions</a>. Fire departments shut off power, including backup generators. Two of three AZs in me-central-1 went down, plus one in me-south-1. And the recovery timeline isn&#8217;t measured in hours. It&#8217;s been months, with follow-on strikes landing before the first damage was repaired, and no announced restoration date.</p><p>That changes the recovery model completely. You&#8217;re not waiting for AWS to fix a software issue or restore power from backup generators. You&#8217;re waiting for structural inspections, smoke and water damage assessments, and staged power-ups to avoid electrical surges. And you might get hit again while you wait.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://chaosguru.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading The Chaos Guru! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h2>The Elastic IP trap</h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21ZA6F%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Ffd4c70a8-4065-40bb-9ac9-5d6b2a64a6d9_1376x768.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ZA6F!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd4c70a8-4065-40bb-9ac9-5d6b2a64a6d9_1376x768.jpeg 424w, https://substackcdn.com/image/fetch/$s_!ZA6F!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd4c70a8-4065-40bb-9ac9-5d6b2a64a6d9_1376x768.jpeg 848w, https://substackcdn.com/image/fetch/$s_!ZA6F!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd4c70a8-4065-40bb-9ac9-5d6b2a64a6d9_1376x768.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!ZA6F!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd4c70a8-4065-40bb-9ac9-5d6b2a64a6d9_1376x768.jpeg 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21ZA6F%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Ffd4c70a8-4065-40bb-9ac9-5d6b2a64a6d9_1376x768.jpeg" width="1376" height="768" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/fd4c70a8-4065-40bb-9ac9-5d6b2a64a6d9_1376x768.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:768,&quot;width&quot;:1376,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:533175,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://chaosguru.substack.com/i/196745739?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd4c70a8-4065-40bb-9ac9-5d6b2a64a6d9_1376x768.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!ZA6F!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd4c70a8-4065-40bb-9ac9-5d6b2a64a6d9_1376x768.jpeg 424w, https://substackcdn.com/image/fetch/$s_!ZA6F!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd4c70a8-4065-40bb-9ac9-5d6b2a64a6d9_1376x768.jpeg 848w, https://substackcdn.com/image/fetch/$s_!ZA6F!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd4c70a8-4065-40bb-9ac9-5d6b2a64a6d9_1376x768.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!ZA6F!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd4c70a8-4065-40bb-9ac9-5d6b2a64a6d9_1376x768.jpeg 1456w" sizes="auto, 100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>This is where it got interesting.</p><p>When mec1-az2 lost power, every EC2 instance in the zone went dark. Normal so far. But <a href="iframe.php?url=https%3A%2F%2Fcyberpress.org%2Famazon-web-services-power-outage%2F">Elastic IPs associated with those instances couldn&#8217;t be released</a>. The AWS control plane needs to talk to the underlying hardware to safely detach a network address from an instance. If the hardware is off, that conversation can&#8217;t happen.</p><p>So customers had public IPs pointing at dead instances, and they couldn&#8217;t move those IPs to healthy instances in other AZs. For 14 hours. DNS-based failover would have worked, but teams that hardcoded Elastic IPs into their architecture, or had downstream systems pointing at those IPs, were stuck.</p><p>At <a href="iframe.php?url=https%3A%2F%2Fcyberupdates365.com%2Faws-middle-east-me-central-1-outage-2026%2F">6:01 PM PST, AWS deployed a workaround</a>: forceful disassociation, letting the control plane ignore the state of trapped resources and free up the IPs anyway. That wasn&#8217;t in anyone&#8217;s runbook. AWS engineers built it during the incident because the normal control plane had no answer for hardware that was simply off.</p><p>This is the part that most post-mortems will skip. The AZ going down is the headline. The Elastic IP trap is the engineering lesson. Stateful resources actively block recovery when their hardware is unreachable.</p><h2>The real problem: state pins you to geography</h2><p>EC2 instances, EBS volumes, and Elastic IPs are <a href="iframe.php?url=https%3A%2F%2Fdocs.aws.amazon.com%2Fwhitepapers%2Flatest%2Faws-fault-isolation-boundaries%2Fzonal-services.html">zonal services</a>. They exist in exactly one Availability Zone. When that zone is healthy, this is invisible. When it&#8217;s not, it&#8217;s everything.</p><p>EBS volumes in a dead AZ are inaccessible until the AZ comes back. If the AZ doesn&#8217;t come back, or takes days, your data is hostage. You can restore from snapshots, if you have recent ones and if your application can tolerate the gap between the last snapshot and the failure.</p><p>EC2 instances are just gone. You launch new ones in another AZ, but local storage, in-memory caches, anything not replicated elsewhere disappears with the old instance. And Elastic IPs, as we just saw, can end up trapped on dead hardware. Your public address becomes a liability.</p><p>Every stateful resource you attach to a single AZ is a bet that the AZ stays up. Not for hours, but indefinitely. Because when it goes down hard, those resources don&#8217;t degrade gracefully. They become anchors.</p><h2>What stateless gets right</h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21F-0r%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F76f5ed67-9b52-4fe3-89f0-da086882005b_1376x768.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!F-0r!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F76f5ed67-9b52-4fe3-89f0-da086882005b_1376x768.jpeg 424w, https://substackcdn.com/image/fetch/$s_!F-0r!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F76f5ed67-9b52-4fe3-89f0-da086882005b_1376x768.jpeg 848w, https://substackcdn.com/image/fetch/$s_!F-0r!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F76f5ed67-9b52-4fe3-89f0-da086882005b_1376x768.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!F-0r!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F76f5ed67-9b52-4fe3-89f0-da086882005b_1376x768.jpeg 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21F-0r%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F76f5ed67-9b52-4fe3-89f0-da086882005b_1376x768.jpeg" width="1376" height="768" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/76f5ed67-9b52-4fe3-89f0-da086882005b_1376x768.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:768,&quot;width&quot;:1376,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:676214,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://chaosguru.substack.com/i/196745739?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F76f5ed67-9b52-4fe3-89f0-da086882005b_1376x768.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!F-0r!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F76f5ed67-9b52-4fe3-89f0-da086882005b_1376x768.jpeg 424w, https://substackcdn.com/image/fetch/$s_!F-0r!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F76f5ed67-9b52-4fe3-89f0-da086882005b_1376x768.jpeg 848w, https://substackcdn.com/image/fetch/$s_!F-0r!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F76f5ed67-9b52-4fe3-89f0-da086882005b_1376x768.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!F-0r!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F76f5ed67-9b52-4fe3-89f0-da086882005b_1376x768.jpeg 1456w" sizes="auto, 100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>The teams that fared best on March 1 weren&#8217;t the ones with the smartest failover plans. They were the ones who never put state in a zone in the first place.</p><p><a href="iframe.php?url=https%3A%2F%2Fdocs.aws.amazon.com%2Fwhitepapers%2Flatest%2Faws-fault-isolation-boundaries%2Faws-service-types.html">DynamoDB, S3, and Lambda are regional services</a>. They spread data and compute across multiple AZs by default. When mec1-az2 went down, these services mostly kept running in the remaining AZs.</p><p>A caveat: when two of three AZs go down simultaneously, regional services lose enough capacity that they degrade too. The &#8220;route around the dead zone&#8221; model assumes one zone fails, not two. The &#8220;fail over to another region&#8221; model assumes the other region isn&#8217;t also under attack.</p><p>That said, the failure mode observation still holds. Services that don&#8217;t pin state to a single AZ recovered faster and didn&#8217;t produce the cascading Elastic IP traps that EC2+EBS+EIP architectures did. Regional services degraded. Zonal services were stranded.</p><p>Application state in DynamoDB instead of on an EBS volume? Losing an AZ doesn&#8217;t strand your data. Compute on Lambda instead of EC2? You don&#8217;t need to launch replacement instances and reattach storage. Traffic through API Gateway or CloudFront instead of an Elastic IP? Your public address doesn&#8217;t end up trapped on dead hardware.</p><p>The less state you pin to a zone, the less a dead AZ can hurt you.</p><h2>Multi-AZ isn&#8217;t enough when the whole region is a target</h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21k1oS%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F24a908b9-7230-436a-8c2c-31b1db439237_1376x768.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!k1oS!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F24a908b9-7230-436a-8c2c-31b1db439237_1376x768.jpeg 424w, https://substackcdn.com/image/fetch/$s_!k1oS!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F24a908b9-7230-436a-8c2c-31b1db439237_1376x768.jpeg 848w, https://substackcdn.com/image/fetch/$s_!k1oS!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F24a908b9-7230-436a-8c2c-31b1db439237_1376x768.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!k1oS!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F24a908b9-7230-436a-8c2c-31b1db439237_1376x768.jpeg 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21k1oS%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F24a908b9-7230-436a-8c2c-31b1db439237_1376x768.jpeg" width="1376" height="768" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/24a908b9-7230-436a-8c2c-31b1db439237_1376x768.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:768,&quot;width&quot;:1376,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:607007,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://chaosguru.substack.com/i/196745739?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F24a908b9-7230-436a-8c2c-31b1db439237_1376x768.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!k1oS!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F24a908b9-7230-436a-8c2c-31b1db439237_1376x768.jpeg 424w, https://substackcdn.com/image/fetch/$s_!k1oS!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F24a908b9-7230-436a-8c2c-31b1db439237_1376x768.jpeg 848w, https://substackcdn.com/image/fetch/$s_!k1oS!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F24a908b9-7230-436a-8c2c-31b1db439237_1376x768.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!k1oS!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F24a908b9-7230-436a-8c2c-31b1db439237_1376x768.jpeg 1456w" sizes="auto, 100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>If your failover plan for me-central-1 was &#8220;fail over to me-south-1,&#8221; you now have two compromised regions. AWS&#8217;s own <a href="iframe.php?url=https%3A%2F%2Fdocs.aws.amazon.com%2Fwhitepapers%2Flatest%2Faws-fault-isolation-boundaries%2Faws-service-types.html">guidance is to use a second region for disaster recovery</a>. Teams that followed it and picked the nearest Middle East region as their DR target are back to square one. Their primary is damaged, their secondary is under active attack, and AWS is telling them to leave both.</p><p>This introduces a failure mode that most DR designs don&#8217;t account for: correlated regional failure driven by geopolitics. Your two regions aren&#8217;t independent if they&#8217;re both within range of the same threat actor. Geographic proximity, which you chose to minimize latency, becomes a liability.</p><p><a href="iframe.php?url=https%3A%2F%2Ffortune.com%2F2026%2F03%2F09%2Firans-attacks-on-amazon-data-centers-in-uae-bahrain-signal-a-new-kind-of-war-as-ai-plays-an-increasingly-strategic-role-analysts-say%2F">Fortune called this</a> &#8220;a new kind of war.&#8221; From an infrastructure perspective, it&#8217;s a new kind of correlated failure. Your region selection is now a geopolitical decision, not just a latency one.</p><h2>&#8220;But multi-AZ is expensive&#8221;</h2><p>This is the objection I hear most. And it&#8217;s partly true.</p><p>Running EC2 across multiple AZs means cross-AZ data transfer costs, more instances than a single-AZ setup, and the operational complexity of ensuring your application actually works in a multi-AZ topology. It&#8217;s not free.</p><p>But the <a href="iframe.php?url=https%3A%2F%2Fdocs.aws.amazon.com%2Fwhitepapers%2Flatest%2Faws-fault-isolation-boundaries%2Fzonal-services.html">AWS Fault Isolation Boundaries whitepaper</a> is explicit: you need static stability. That means pre-provisioning enough capacity in each AZ to handle the loss of any other AZ <em>without</em> relying on auto-scaling to save you. If you need 6 instances across 3 AZs, you run 9, three per AZ, so any single AZ failure leaves you with 6 functioning instances.</p><p>That&#8217;s the real cost of multi-AZ: 50% overcapacity on top of the cross-AZ instance count, to maintain static stability. For teams that balk at the single-AZ cost, this is a non-starter. Which is exactly why they don&#8217;t do it, and why me-central-1 is a wake-up call.</p><p>The alternative isn&#8217;t suffering through AZ failures. It&#8217;s rethinking what lives in a zone at all.</p><h2>What you should actually do</h2><p>Start by auditing your zonal dependencies. Which of your resources are pinned to a single AZ? These resources become anchors when an AZ goes hard down: EC2 instances, EBS volumes, Elastic IPs, RDS single-AZ deployments, ElastiCache nodes.</p><p>For each one, ask: does this resource need to be zonal?</p><p>If the answer is yes (maybe you need GPU instances or specific instance types only available in certain AZs), then you need genuine multi-AZ with static stability. Pre-provisioned capacity, health-checked failover, and recent snapshots you&#8217;ve actually tested restoring.</p><p>If the answer is &#8220;we just never moved it&#8221; (and it often is), consider whether a regional service does the job. DynamoDB instead of RDS single-AZ. Lambda instead of a long-running EC2 daemon. S3 instead of EBS for data that doesn&#8217;t need block storage semantics. Route 53 health checks instead of Elastic IPs.</p><p>Stop treating Elastic IPs as static infrastructure. They are zonal resources with a dependency on hardware state. If your architecture can&#8217;t survive losing an EIP for 14 hours, you have a single point of failure wearing a different name.</p><p>If you&#8217;re in a region with geopolitical risk, your DR region needs to be outside the blast radius. me-south-1 as DR for me-central-1 looked reasonable on a latency chart. It doesn&#8217;t look reasonable when both are being struck in the same campaign. eu-central-1 or eu-south-1 as your DR target costs more in cross-region latency but doesn&#8217;t share the same threat model.</p><p>One more thing operators tend to miss until it&#8217;s too late: cyber insurance excludes war. As one data center insurance specialist put it, <a href="iframe.php?url=https%3A%2F%2Ffinance.yahoo.com%2Fsectors%2Ftechnology%2Farticles%2Famazon-loses-150m-drones-hit-200500763.html">&#8220;typically, a policy excludes war. So if it&#8217;s an active war, it&#8217;s not gonna be covered.&#8221;</a> Cloud vendor credits cover a slice, usually as a discount on future spend. The real losses on your side are revenue lost during outages, emergency migration costs, and abandoned regional infrastructure investments. Those fall on you. Your cyber insurance won&#8217;t pay either, because war exclusions are standard policy language. Build your DR plan assuming the financial backstop you thought you had isn&#8217;t there.</p><p>And test your recovery. &#8220;We have snapshots&#8221; isn&#8217;t enough. Restore one in a different AZ and confirm your application comes up. &#8220;We have a DR region&#8221; isn&#8217;t enough. Fail over to it and confirm your application works at acceptable latency from a geographically distant region. Most teams that say they can recover from an AZ failure have never tried it. Even fewer have tested cross-region failover.</p><h2>Every layer of your resilience model just got tested</h2><p>Every team running production in a single AZ is making an implicit prediction: the worst-case AZ failure will be short enough that manual recovery is acceptable. Every team running multi-AZ in a single region is making a second prediction: only one AZ fails at a time. Every team with multi-region DR is making a third: the DR region is independent of the primary.</p><p>March 2026 broke all three.</p><p>The old assumption was that AZ failures are contained and brief. The slightly less old assumption was that region failures are independent. Neither held.</p><p>Your infrastructure&#8217;s resilience is defined by the things you bolted to a single zone, and the assumptions you made about the independence of your regions. The fewer stateful zonal resources in your architecture, the less a dead AZ can do to you. The more geopolitically distant your DR region, the less a regional conflict can do to you.</p><p>Because now we know an AZ can disappear for months, a region can be struck repeatedly, and your DR region might be next. Act like it.</p><h2>References</h2><h3>March 1 strikes (me-central-1 + me-south-1)</h3><ul><li><p><a href="iframe.php?url=https%3A%2F%2Fwww.theregister.com%2F2026%2F03%2F02%2Famazon_outages_middle_east%2F">AWS says drones hit two of its datacenters in UAE &#8212; The Register</a> &#8212; confirmed drone strikes as cause, two UAE facilities hit</p></li><li><p><a href="iframe.php?url=https%3A%2F%2Fwww.datacenterdynamics.com%2Fen%2Fnews%2Faws-uae-outage-after-objects-struck-the-data-center-cause-fire-amid-iran-attacks%2F">AWS UAE suffers AZ outage after &#8216;objects strike data center&#8217; &#8212; Data Center Dynamics</a> &#8212; two AZ impact, three facilities across two regions</p></li><li><p><a href="iframe.php?url=https%3A%2F%2Fwww.404media.co%2Famazon-data-centers-on-fire-after-iranian-missile-strikes-on-dubai%2F">Amazon Data Centers on Fire After Iranian Missile Strikes &#8212; 404 Media</a> &#8212; geopolitical context and physical damage reporting</p></li><li><p><a href="iframe.php?url=https%3A%2F%2Fwww.cnbc.com%2F2026%2F03%2F04%2Famazon-bahrain-data-centers-targeted-iran-drone-strike.html">Amazon&#8217;s Bahrain data center targeted by Iran &#8212; CNBC</a> &#8212; confirms me-south-1 was directly struck, not collateral</p></li><li><p><a href="iframe.php?url=https%3A%2F%2Fwww.datacenterknowledge.com%2Foutages%2Faws-middle-east-outage-after-data-center-hit-by-unidentified-objects">AWS Middle East Outage After Data Centers Hit &#8212; Data Center Knowledge</a> &#8212; 109+ services affected, regional service degradation</p></li><li><p><a href="iframe.php?url=https%3A%2F%2Fcyberupdates365.com%2Faws-middle-east-me-central-1-outage-2026%2F">AWS Middle East Outage: Physical Fire Shuts Down me-central-1 &#8212; Cyber Updates 365</a> &#8212; detailed timeline including Elastic IP trap and forceful disassociation</p></li><li><p><a href="iframe.php?url=https%3A%2F%2Fcybersecuritynews.com%2Faws-power-outage%2F">AWS Power Outage in Middle East Triggers Major Disruption &#8212; Cybersecurity News</a> &#8212; service impact scope and API failure details</p></li><li><p><a href="iframe.php?url=https%3A%2F%2Fcyberpress.org%2Famazon-web-services-power-outage%2F">Amazon Web Services Power Outage in Middle East &#8212; CyberPress</a> &#8212; Elastic IP association failures and control plane behavior</p></li><li><p><a href="iframe.php?url=https%3A%2F%2Fwww.tahawultech.com%2Fbusiness%2Faws-says-recovery-many-hours-away-after-power-disruption-hits-me-central-1%2F">AWS says recovery &#8216;many hours away&#8217; &#8212; TahawulTech</a> &#8212; AWS official statements on recovery timeline</p></li><li><p><a href="iframe.php?url=https%3A%2F%2Ftechafricanews.com%2F2026%2F03%2F02%2Famazon-web-services-reports-hours-long-recovery-effort-after-uae-data-center-power-failure%2F">Amazon Web Services Reports Hours-Long Recovery Effort &#8212; TechAfrica News</a> &#8212; March 2 status update</p></li><li><p><a href="iframe.php?url=https%3A%2F%2Fwww.freepressjournal.in%2Ftech%2Firan-hits-amazon-web-services-building-in-bahrain-triggers-power-disruption-structural-damages">Iran hits Amazon Web Services building in Bahrain &#8212; Free Press Journal</a> &#8212; structural damage and power disruption in Bahrain</p></li><li><p><a href="iframe.php?url=https%3A%2F%2Frestofworld.org%2F2026%2Firan-amazon-data-center-strikes%2F">Iranian drone strikes raise alarms &#8212; Rest of World</a> &#8212; regional impact and customer displacement</p></li></ul><h3>March 24 strike (me-south-1 second hit)</h3><ul><li><p><a href="iframe.php?url=https%3A%2F%2Fwww.thenationalnews.com%2Ffuture%2Ftechnology%2F2026%2F03%2F24%2Faws-bahrain-operations-disrupted-for-second-time-this-month-due-to-drone-attack%2F">AWS Bahrain operations disrupted for second time &#8212; The National</a> &#8212; second strike confirmed</p></li><li><p><a href="iframe.php?url=https%3A%2F%2Fwww.aljazeera.com%2Fnews%2F2026%2F3%2F24%2Famazon-says-aws-bahrain-region-disrupted-following-drone-activity">Amazon says AWS Bahrain region disrupted following drone activity &#8212; Al Jazeera</a> &#8212; AWS confirms disruption</p></li><li><p><a href="iframe.php?url=https%3A%2F%2Fwww.cnbc.com%2F2026%2F03%2F24%2Famazon-aws-disruption-in-bahrain-iran.html">Amazon faces further AWS disruption in Bahrain &#8212; CNBC</a> &#8212; AWS advises customer migration out of region</p></li><li><p><a href="iframe.php?url=https%3A%2F%2Fwww.datacenterdynamics.com%2Fen%2Fnews%2Faws-bahrain-region-disrupted-by-drone-activity-as-war-in-middle-east-continues-to-impact-data-centers%2F">AWS Bahrain region disrupted by drone activity &#8212; Data Center Dynamics</a> &#8212; ongoing impact of conflict on data center infrastructure</p></li></ul><h3>April strikes (me-south-1 third hit + Oracle Dubai near miss)</h3><ul><li><p><a href="iframe.php?url=https%3A%2F%2Fwww.datacenterdynamics.com%2Fen%2Fnews%2Ffire-at-aws-data-center-in-bahrain-after-iranian-attack-report%2F">Fire at AWS data center in Bahrain after Iranian attack &#8212; Data Center Dynamics</a> &#8212; third strike on me-south-1 confirmed by Bahrain authorities</p></li><li><p><a href="iframe.php?url=https%3A%2F%2Fwww.datacenterdynamics.com%2Fen%2Fnews%2Firan-attack-hits-an-oracle-data-center-in-dubai-causes-limited-damage%2F">Iran attack hits an Oracle data center in Dubai, causes limited damage &#8212; Data Center Dynamics</a> &#8212; strike attempt intercepted, shrapnel damage to Oracle building, services unaffected</p></li></ul><h3>Analysis and strategic context</h3><ul><li><p><a href="iframe.php?url=https%3A%2F%2Ffortune.com%2F2026%2F03%2F09%2Firans-attacks-on-amazon-data-centers-in-uae-bahrain-signal-a-new-kind-of-war-as-ai-plays-an-increasingly-strategic-role-analysts-say%2F">Iran&#8217;s attacks signal new kind of war &#8212; Fortune</a> &#8212; IRGC claims responsibility, strategic analysis</p></li><li><p><a href="iframe.php?url=https%3A%2F%2Fwww.infoq.com%2Fnews%2F2026%2F03%2Faws-multiaz-conflict-outage%2F">War in Iran damages multiple AWS data centers &#8212; InfoQ</a> &#8212; technical multi-AZ analysis</p></li><li><p><a href="iframe.php?url=https%3A%2F%2Ffinance.yahoo.com%2Fsectors%2Ftechnology%2Farticles%2Famazon-loses-150m-drones-hit-200500763.html">Amazon loses $150M after drones hit its data centers &#8212; Yahoo Finance</a> &#8212; cyber insurance war exclusion, customer-side cost reality</p></li><li><p><a href="iframe.php?url=https%3A%2F%2Fwww.techpolicy.press%2Fthe-legal-and-policy-fallout-from-data-center-strikes-in-the-middle-east-war%2F">Legal and policy fallout from data center strikes &#8212; TechPolicy.Press</a> &#8212; legal and policy implications</p></li></ul><h3>AWS documentation and historical context</h3><ul><li><p><a href="iframe.php?url=https%3A%2F%2Fdocs.aws.amazon.com%2Fwhitepapers%2Flatest%2Faws-fault-isolation-boundaries%2Fzonal-services.html">Zonal services &#8212; AWS Fault Isolation Boundaries</a> &#8212; AWS whitepaper on zonal vs regional service classification</p></li><li><p><a href="iframe.php?url=https%3A%2F%2Fdocs.aws.amazon.com%2Fwhitepapers%2Flatest%2Faws-fault-isolation-boundaries%2Faws-service-types.html">AWS service types &#8212; AWS Fault Isolation Boundaries</a> &#8212; zonal, regional, and global service taxonomy</p></li><li><p><a href="iframe.php?url=https%3A%2F%2Faws.amazon.com%2Fmessage%2F65648%2F">Summary of the Amazon EC2 and Amazon RDS Service Disruption &#8212; AWS</a> &#8212; December 2021 us-east-1 incident with permanent data loss</p></li><li><p><a href="iframe.php?url=https%3A%2F%2Fwww.loadbalancer.org%2Fblog%2Fmulti-az-resilience%2F">Multi-AZ resilience: Why the recent AWS outage shows you need it &#8212; Loadbalancer.org</a> &#8212; October 2025 us-east-1 outage analysis</p></li><li><p><a href="iframe.php?url=https%3A%2F%2Fwww.trendingtopics.eu%2Faws-data-center-in-uae-goes-dark-after-being-hit-by-objects%2F">AWS Data Center in UAE Goes Dark &#8212; Trending Topics EU</a> &#8212; incident context and customer impact</p></li><li><p><a href="iframe.php?url=https%3A%2F%2Fnews.ycombinator.com%2Fitem%3Fid%3D47209781">Operational issue &#8211; Multiple services (UAE) &#8212; Hacker News</a> &#8212; community discussion and real-time status updates</p></li></ul>]]></content:encoded></item><item><title><![CDATA[Stop trying to fail over from Cloudflare]]></title><description><![CDATA[What you&#8217;d actually lose, what it&#8217;d actually cost, and why the hot takes are wrong.]]></description><link>https://chaosguru.substack.com/p/stop-trying-to-fail-over-from-cloudflare</link><guid isPermaLink="false">https://chaosguru.substack.com/p/stop-trying-to-fail-over-from-cloudflare</guid><dc:creator><![CDATA[Luka Kladarić]]></dc:creator><pubDate>Thu, 30 Apr 2026 06:55:12 GMT</pubDate><enclosure url="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21T9dB%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F7d11d1c1-bdb4-4665-8e24-6f9c7e156bc0_1920x1072.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21T9dB%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F7d11d1c1-bdb4-4665-8e24-6f9c7e156bc0_1920x1072.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!T9dB!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7d11d1c1-bdb4-4665-8e24-6f9c7e156bc0_1920x1072.png 424w, https://substackcdn.com/image/fetch/$s_!T9dB!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7d11d1c1-bdb4-4665-8e24-6f9c7e156bc0_1920x1072.png 848w, https://substackcdn.com/image/fetch/$s_!T9dB!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7d11d1c1-bdb4-4665-8e24-6f9c7e156bc0_1920x1072.png 1272w, https://substackcdn.com/image/fetch/$s_!T9dB!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7d11d1c1-bdb4-4665-8e24-6f9c7e156bc0_1920x1072.png 1456w" sizes="100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21T9dB%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F7d11d1c1-bdb4-4665-8e24-6f9c7e156bc0_1920x1072.png" width="1456" height="813" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7d11d1c1-bdb4-4665-8e24-6f9c7e156bc0_1920x1072.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:813,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:3338064,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://chaosguru.substack.com/i/195964100?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7d11d1c1-bdb4-4665-8e24-6f9c7e156bc0_1920x1072.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!T9dB!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7d11d1c1-bdb4-4665-8e24-6f9c7e156bc0_1920x1072.png 424w, https://substackcdn.com/image/fetch/$s_!T9dB!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7d11d1c1-bdb4-4665-8e24-6f9c7e156bc0_1920x1072.png 848w, https://substackcdn.com/image/fetch/$s_!T9dB!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7d11d1c1-bdb4-4665-8e24-6f9c7e156bc0_1920x1072.png 1272w, https://substackcdn.com/image/fetch/$s_!T9dB!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7d11d1c1-bdb4-4665-8e24-6f9c7e156bc0_1920x1072.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>On November 18, 2025, a <a href="iframe.php?url=https%3A%2F%2Fblog.cloudflare.com%2F18-november-2025-outage%2F">database permissions change</a> caused Cloudflare&#8217;s Bot Management feature file to balloon from 60 entries to over 200, exceeding a hard-coded limit in the core proxy. The proxy crashed. One in five webpages went dark. A third of the world&#8217;s 10,000 most popular websites stopped responding. X, ChatGPT, Spotify, Zoom, Coinbase, and Canva, all down. Even <a href="iframe.php?url=https%3A%2F%2Fwww.thousandeyes.com%2Fblog%2Fcloudflare-outage-analysis-november-18-2025">Downdetector went down</a>. The outage started at 11:20 UTC; systems weren&#8217;t fully normal until 17:06.</p><p>Less than three weeks later, on December 5, Cloudflare engineers were <a href="iframe.php?url=https%3A%2F%2Fblog.cloudflare.com%2F5-december-2025-outage%2F">rolling out a buffer size increase</a> to protect against a React framework vulnerability. Their internal WAF testing tool didn&#8217;t support the new size, so they pushed a second config change through their global deployment system. It propagated to the entire fleet in seconds. <a href="iframe.php?url=https%3A%2F%2Fwww.sdxcentral.com%2Fnews%2Fcloudflare-suffering-from-yet-another-outage%2F">28% of all HTTP traffic</a> served by Cloudflare dropped for 25 minutes.</p><p>The reaction was predictable. &#8220;We need a Cloudflare failover plan.&#8221; &#8220;We can&#8217;t be dependent on a single provider.&#8221; &#8220;Just point DNS at the origin until it comes back.&#8221;</p><p>The instinct makes sense. Removing a single point of failure is one of the first things you learn in reliability engineering. But the instinct is misguided here. Most people don&#8217;t fully understand what Cloudflare is actually doing for them, and once you do, the failover math looks very different.</p><h2>What you&#8217;re getting for $0 to $20 a month</h2><p>Cloudflare&#8217;s free tier gives you a global CDN, DDoS protection, DNS, and a basic WAF. The $20/month Pro plan adds more WAF rulesets and better analytics. This is not normal. This is insane. Worth unpacking what each of those actually is.</p><h3>Global CDN and caching</h3><p>Cloudflare operates a <a href="iframe.php?url=https%3A%2F%2Fwww.cloudflare.com%2Fnetwork%2F">global anycast network across 330+ cities</a>. When someone in Tokyo requests your website, they hit a Cloudflare edge node in Tokyo. The response is cached there. The next request from Tokyo never touches your origin server.</p><p>This matters more than people realize. Your origin might be a single server in Virginia. Without a CDN, every user everywhere is making a round trip to Virginia. With Cloudflare&#8217;s cache, most of that traffic never leaves the user&#8217;s region. Latency drops. Origin load drops. And your bandwidth bill drops with it.</p><p>That last part is the one that bites hardest if you ever turn Cloudflare off. If you&#8217;re serving images, videos, static assets, or anything heavy through Cloudflare&#8217;s cache, your origin is only seeing a fraction of the actual request volume. Pull the CDN out from under that and suddenly your origin is serving every byte directly. If your origin is an S3 bucket, you&#8217;re now paying AWS egress rates on 100% of your traffic instead of the sliver that was cache misses. AWS charges <a href="iframe.php?url=https%3A%2F%2Faws.amazon.com%2Fs3%2Fpricing%2F">$0.09 per GB</a> for egress in the first 10TB tier. A site doing 10TB/month through Cloudflare&#8217;s cache might only be sending 500GB from S3. Remove Cloudflare and that becomes 10TB at $0.09/GB, an extra ~$855/month on top of what you were already paying. And that&#8217;s a modest example.</p><p>Cloudflare&#8217;s CDN caching is free. On the free plan.</p><h3>WAF (Web Application Firewall)</h3><p>Cloudflare&#8217;s WAF sits between the internet and your application and inspects every request for malicious patterns, like SQL injection, cross-site scripting, path traversal, and all the <a href="iframe.php?url=https%3A%2F%2Fowasp.org%2Fwww-project-top-ten%2F">OWASP Top 10</a>. Cloudflare catches it before it reaches your code.</p><p>The rules are written in <a href="iframe.php?url=https%3A%2F%2Fdevelopers.cloudflare.com%2Fruleset-engine%2Frules-language%2F">Wirefilter syntax</a>, Cloudflare&#8217;s own expression language, referencing threat scores and bot detection signals that only exist inside Cloudflare&#8217;s network. These aren&#8217;t generic pattern matchers. They&#8217;re computed from traffic patterns across Cloudflare&#8217;s entire customer base.</p><p>To put that in context: the equivalent from <a href="iframe.php?url=https%3A%2F%2Fdocs.aws.amazon.com%2Fwaf%2Flatest%2Fdeveloperguide%2Fcloudfront-features.html">AWS WAF</a> requires you to configure CloudFront, attach WAF rules using JSON rule statements, manage rule groups, and pay per million requests. On Akamai you&#8217;re talking to an enterprise sales team and signing a contract. Cloudflare gives you a working WAF on the free plan.</p><h3>DDoS protection</h3><p>The reason Cloudflare&#8217;s DDoS protection works is simple geometry. Cloudflare is more distributed than the attacks.</p><p>If you control tens of thousands of compromised devices worldwide, it&#8217;s easy to overwhelm any single thing. Having one server, one load balancer, one connection is an indefensible position in 2026. But Cloudflare operates a <a href="iframe.php?url=https%3A%2F%2Fdevelopers.cloudflare.com%2Freference-architecture%2Farchitectures%2Fsecurity%2F">global network across 330+ cities</a>. Your application potentially has hundreds of IPs associated with it at any given time, often multiple IPs per edge location. If attackers target one IP, Cloudflare delists it and stops using it. If they follow whatever IP comes up next for your service, the attack is already scattered across the globe in manageable chunks. Each edge node only sees its local slice of the traffic.</p><p>This means Cloudflare can absorb attacks orders of magnitude larger than anything your hosting provider can handle, unless that provider also offers a distributed DDoS mitigation service that you continuously operate under. The closest equivalents are <a href="iframe.php?url=https%3A%2F%2Fwww.akamai.com%2Fproducts%2Fprolexic">Akamai Prolexic</a> (enterprise contract) and <a href="iframe.php?url=https%3A%2F%2Fdocs.aws.amazon.com%2Fwaf%2Flatest%2Fdeveloperguide%2Fddos-overview.html">AWS Shield Advanced</a> (<a href="iframe.php?url=https%3A%2F%2Faws.amazon.com%2Fshield%2Fpricing%2F">$3,000 per month base</a>, AWS resources only). Cloudflare gives you this at L3 through L7 for free. On the free plan.</p><p>This connects directly to the failover question. By stepping out from under the Cloudflare umbrella for a few hours while they&#8217;re having problems, you&#8217;re telling the internet exactly where your origin is and how to hurt you whenever anyone wishes to do so later. You lose protection during the outage window. You lose the protection model permanently.</p><h3>Bot management</h3><p>Cloudflare proxies <a href="iframe.php?url=https%3A%2F%2Fwww.cloudflare.com%2Fnetwork%2F">roughly 20% of all web traffic on the internet</a>. Their bot management uses machine learning models trained on traffic patterns across that entire network. When the same bot hits thousands of Cloudflare customers, the system learns its fingerprint. That cross-customer signal can&#8217;t be replicated by anyone seeing less traffic, which is basically everyone.</p><p>The November 2025 outage was, ironically, caused by the Bot Management system itself. I&#8217;ll come back to that.</p><h3>SSL/TLS termination</h3><p>Cloudflare handles certificate issuance, renewal, and termination automatically. <a href="iframe.php?url=https%3A%2F%2Fdevelopers.cloudflare.com%2Fssl%2Forigin-configuration%2Fauthenticated-origin-pull%2F">Authenticated Origin Pulls</a> let your origin verify that requests are actually coming through Cloudflare. <a href="iframe.php?url=https%3A%2F%2Fdevelopers.cloudflare.com%2Fcloudflare-one%2Fconnections%2Fconnect-networks%2F">Cloudflare Tunnel</a> eliminates the need for a publicly routable origin IP entirely, your server calls out to Cloudflare instead of listening on a public port.</p><p>You don&#8217;t manage certificates. You don&#8217;t worry about renewal. You don&#8217;t deal with Let&#8217;s Encrypt cron jobs failing silently at 3am. It just works.</p><h3>DNS</h3><p>Cloudflare runs one of the <a href="iframe.php?url=https%3A%2F%2Fwww.dnsperf.com%2F">fastest authoritative DNS services</a> on the planet. Sub-millisecond response times in most regions. Free.</p><h2>The people yelling &#8220;just fail over&#8221;</h2><p>I keep seeing this from operators running their application in a single AWS region, single AZ, maybe a load balancer if they&#8217;re feeling fancy. No multi-region. No geo-redundancy. Their own uptime is worse than Cloudflare&#8217;s. Cloudflare had roughly seven hours of total major-incident downtime across 2025, call it 99.92% availability on the proxy layer. These same operators had their own production incidents last month that they blamed on a bad deploy, a database migration, or a dependency update that went sideways.</p><p>But Cloudflare goes down for five hours and suddenly multi-CDN failover is the priority.</p><h2>Why you can&#8217;t just switch</h2><h3>You can&#8217;t swap the WAF</h3><p>Cloudflare WAF rules don&#8217;t port to anything. Wirefilter syntax is Cloudflare-only. The <code>cf.*</code> fields are computed inside Cloudflare&#8217;s network. You&#8217;d need to manually rewrite every rule in whatever format the target platform uses. <a href="iframe.php?url=https%3A%2F%2Fdocs.aws.amazon.com%2Fwaf%2Flatest%2Fdeveloperguide%2Fcloudfront-features.html">JSON for AWS WAF</a>, VCL for Fastly, Akamai&#8217;s proprietary rule engine. Every rule rewritten, retested under real traffic, tuned for the new platform&#8217;s quirks. That&#8217;s weeks of work if you&#8217;re fast.</p><p>And even if you did it, <a href="iframe.php?url=https%3A%2F%2Fblog.radware.com%2Fsecurity%2F2017%2F10%2Fsecurity-challenge-protecting-multi-cdn%2F">configuration drift is inevitable</a>. Every rule change on your primary must be replicated on the standby. In practice, <a href="iframe.php?url=https%3A%2F%2Fhydrolix.io%2Fblog%2Fmulti-cdn-guide%2F">the policies diverge</a> within months and nobody notices until failover day, when the standby blocks real users or lets attacks through.</p><h3>You can&#8217;t swap the DDoS protection</h3><p>Cloudflare&#8217;s DDoS mitigation is architectural. It&#8217;s how their network works, not a product bolted on top. Replacing it means either paying for <a href="iframe.php?url=https%3A%2F%2Fwww.akamai.com%2Fproducts%2Fprolexic">Akamai Prolexic</a> (enterprise contract) or <a href="iframe.php?url=https%3A%2F%2Faws.amazon.com%2Fshield%2Fpricing%2F">AWS Shield Advanced</a> ($3k/month, AWS-only), or just... not having DDoS protection. During the outage window. When the internet is paying attention.</p><h3>You can&#8217;t &#8220;just point DNS at the origin&#8221;</h3><p>This is the suggestion that sounds reasonable for about ten seconds. What could go wrong?</p><p>The moment your DNS resolves to your origin IP instead of Cloudflare&#8217;s proxy, your origin is naked on the internet. No WAF. No DDoS protection. No bot management. No rate limiting. Full protection to zero protection, at the exact moment every script kiddie with a Shodan query is watching.</p><p>But it gets worse. The moment your origin IP appears in a DNS response, it&#8217;s recorded. Permanently.</p><p><a href="iframe.php?url=https%3A%2F%2Fsecuritytrails.com%2F">SecurityTrails</a> archives every DNS record it sees. <a href="iframe.php?url=https%3A%2F%2Fsearch.censys.io%2F">Censys</a> and <a href="iframe.php?url=https%3A%2F%2Fwww.shodan.io%2F">Shodan</a> continuously scan the entire IPv4 address space. Historical DNS databases like <a href="iframe.php?url=https%3A%2F%2Fviewdns.info%2F">ViewDNS.info</a> store everything. Even with <a href="iframe.php?url=https%3A%2F%2Fdevelopers.cloudflare.com%2Fdns%2Fproxy-status%2F">Cloudflare&#8217;s default TTL of 300 seconds</a>, a brief window is enough for these systems to permanently record your origin IP.</p><p>Once it&#8217;s known, it&#8217;s known forever. Or until you migrate to a new IP.</p><p>There&#8217;s a whole ecosystem of tools built specifically for this. <code>unwaf</code> discovers origin IPs using nothing but passive techniques (SPF records, MX records, subdomain enumeration, Certificate Transparency logs). No API keys needed. <a href="iframe.php?url=https%3A%2F%2Fgithub.com%2Fchristophetd%2FCloudFlair">CloudFlair</a> searches Censys for hosts presenting matching SSL certificates. There are <a href="iframe.php?url=https%3A%2F%2Fblog.detectify.com%2Findustry-insights%2Fbypassing-cloudflare-waf-with-the-origin-server-ip-address%2F">dozens more</a>. The now-defunct <a href="iframe.php?url=https%3A%2F%2Fwww.zenrows.com%2Fblog%2Fcrimeflare">CrimeFlare</a> maintained a database of domain-to-origin-IP mappings built through weekly scans of millions of domains. It&#8217;s gone, but its <a href="iframe.php?url=https%3A%2F%2Fgithub.com%2Fm0rtem%2FCloudFail">successors</a> carry on.</p><p>As <a href="iframe.php?url=https%3A%2F%2Fblog.detectify.com%2Findustry-insights%2Fbypassing-cloudflare-waf-with-the-origin-server-ip-address%2F">Detectify documented</a>, once the origin IP is found, an attacker connects directly with a spoofed <code>Host</code> header and every Cloudflare protection becomes useless. <a href="iframe.php?url=https%3A%2F%2Fwww.zafran.io%2Fresources%2Fbreaking-waf">Zafran&#8217;s &#8220;BreakingWAF&#8221; research</a> in 2024 found nearly <a href="iframe.php?url=https%3A%2F%2Fwww.secureworld.io%2Findustry-news%2Fwaf-widespread-vulnerability-zafran">40% of Fortune 100 companies</a> had this exact misconfiguration. <a href="iframe.php?url=https%3A%2F%2Fcertitude.consulting%2Fblog%2Fen%2Fusing-cloudflare-to-bypass-cloudflare%2F">Certitude showed</a> you can even use your own Cloudflare account to tunnel attacks through Cloudflare&#8217;s infrastructure against another customer&#8217;s origin.</p><p>And that&#8217;s just the security side. Remember the CDN? Your origin has been sitting behind Cloudflare&#8217;s cache, serving maybe 5-10% of actual request volume. Point DNS at the origin and your server eats 100% of traffic with a cold cache. If your origin can handle that spike without falling over, congratulations, you&#8217;ve been massively over-provisioning. If it can&#8217;t (and most can&#8217;t) you&#8217;ve just traded a Cloudflare outage for a self-inflicted one. Plus whatever your cloud provider charges for the bandwidth.</p><p>&#8220;Just point DNS at the origin&#8221; means permanently burning your origin IP for every future attacker, spiking your bandwidth bill, and probably crashing your origin under the traffic it was never sized to handle. That&#8217;s not a failover plan. That&#8217;s an own goal.</p><h3>You can&#8217;t maintain a hot standby</h3><p>The more sophisticated version is maintaining a parallel CDN/WAF/DDoS stack on a second provider, ready to go at a moment&#8217;s notice.</p><p>Think about what that means. WAF rule parity across <a href="iframe.php?url=https%3A%2F%2Fwww.cdnhandbook.com%2Fadvanced%2Fmulticdn%2F">incompatible platforms</a>. Configuration drift that you won&#8217;t catch until the day you need it. A cold CDN cache that causes a <a href="iframe.php?url=https%3A%2F%2Fhydrolix.io%2Fblog%2Fmulti-cdn-guide%2F">thundering herd</a> against your origin the moment you fail over. Different logging formats, different metric definitions, different dashboards. SSL certificates managed in two places with different renewal cycles. Paying for two full platform subscriptions (Akamai&#8217;s enterprise pricing could easily be <a href="iframe.php?url=https%3A%2F%2Fwww.cloudoptimo.com%2Fblog%2Fcloudfront-vs-cloudflare-vs-akamai-choosing-the-right-cdn-in-2025%2F">5-10x</a> what Cloudflare costs). And <a href="iframe.php?url=https%3A%2F%2Ftechnologymagazine.com%2Fnews%2Fwhy-cloud-concentration-is-costing-businesses-millions">hidden shared dependencies</a> where your &#8220;redundant&#8221; provider shares upstream transit with your primary anyway.</p><p>The operational complexity of keeping two incompatible security platforms in sync, untested under real traffic, is itself a reliability risk. You&#8217;ve added fragility in the name of reducing fragility. And you&#8217;ve done it at enormous cost, to recover from an event that happens a few hours per year.</p><p>If you have half a dozen full-time operations staff who can maintain that parity, test it regularly, and actually execute the failover under pressure, sure. Go for it. That&#8217;s a real multi-CDN strategy and it works for companies the size of Netflix.</p><p>For everyone else, this is fantasy architecture. The plan looks great in a slide deck and falls apart the first time you try to use it.</p><p>Cloudflare is also ridiculously simple to implement. The defaults are solid. You point your DNS at Cloudflare, flip the orange cloud on, and you have a CDN, a WAF, DDoS protection, bot management, and SSL termination working out of the box. If you need to customize, the configuration is flexible without being overwhelming. This is not a product that demands a dedicated team to operate.</p><p>Now try to replicate that yourself. Ignore the ability to survive massive attacks. Ignore that Cloudflare is continuously updating its protection in response to emerging threats. Just try to match the feature set in the most naive, basic terms. You&#8217;re stitching together a CDN, a WAF, a DDoS mitigation layer, certificate management, DNS, and bot detection. The cost of ownership for a self-maintained version of this easily blows through even the $200/month Business plan, at a laughable fraction of the power, volume, and feature set.</p><p>This is what makes the idea of maintaining a hot standby, or continuously splitting traffic between Cloudflare and your own parallel solution, completely batshit insane.</p><p>Yes, there&#8217;s math to be done about the level at which building your own solution becomes the better choice. But my guess is that if you had a hot take during Cloudflare&#8217;s outages, your numbers won&#8217;t back you.</p><h2>Cloudflare knows what it is</h2><p>I think people miss something about Cloudflare. This is a company that understands it has become world-critical infrastructure and acts like it.</p><p>After the November and December incidents, Cloudflare declared <a href="iframe.php?url=https%3A%2F%2Fblog.cloudflare.com%2Ffail-small-resilience-plan%2F">&#8220;Code Orange: Fail Small,&#8221;</a> a company-wide engineering priority. Controlled rollouts. Fail-open error handling, so if a config is bad, the system defaults to passing traffic instead of dropping it. Blast-radius reduction so a single config change can&#8217;t take out the entire fleet in seconds. They published <a href="iframe.php?url=https%3A%2F%2Fblog.cloudflare.com%2F18-november-2025-outage%2F">detailed post-mortems</a> for both incidents. They explained exactly what went wrong, why, and what they&#8217;re changing.</p><p>Compare that to your cloud provider&#8217;s last incident report. &#8220;A subset of customers in us-east-1 experienced elevated error rates for approximately 47 minutes. The issue has been resolved.&#8221; No root cause. No timeline. No accountability. Cloudflare tells you what the hard-coded limit was, what the database query returned, and which engineer pushed the config. That&#8217;s not a company hiding from its responsibilities.</p><p>The <a href="iframe.php?url=https%3A%2F%2Fblog.cloudflare.com%2Fcloudflare-incident-on-february-6-2025%2F">February 2025 R2 incident</a> is the same pattern. A routine phishing takedown accidentally disabled the entire R2 gateway for 59 minutes. They published every detail, admitted the tooling didn&#8217;t prevent an operator from nuking a production service, and laid out the fixes.</p><p>As the <a href="iframe.php?url=https%3A%2F%2Fblog.pragmaticengineer.com%2Fthe-pulse-cloudflares-latest-outage%2F">Pragmatic Engineer noted</a>, the November and December outages both came from global config changes propagating too fast. Same failure mode, three weeks apart. That&#8217;s bad. But Cloudflare&#8217;s response wasn&#8217;t to minimize it. It was to declare a company-wide engineering emergency and restructure how config changes propagate. That&#8217;s what a company acting like critical infrastructure looks like.</p><h2>Since I started writing this</h2><p>Three more incidents have hit Cloudflare since the December 5 outage. A 6-hour BYOIP route withdrawal on February 20. A 54-minute Sites-and-Services degradation on April 3. A regional spate of Cloudflare Access HTTP 500s across April 21&#8211;24.</p><p>The <a href="iframe.php?url=https%3A%2F%2Fblog.cloudflare.com%2Fcloudflare-outage-february-20-2026%2F">February 20 incident</a> was the worst of the three. A buggy cleanup subtask in the Addressing API ran a query passing the <code>pending_delete</code> flag with an empty value, which the server interpreted as &#8220;match everything,&#8221; and systematically withdrew 1,100 BYOIP prefixes from production, about 25% of all BYOIP prefixes Cloudflare advertises. Recovery took six hours. Cloudflare published a clinical post-mortem within 48 hours: the buggy query, the broken assumption, the recovery timeline, the fix.</p><p>The April 3 incident was a 54-minute degradation of the Sites and Services component, with increased latency and intermittent 502/503/504s across regions. The April 21&#8211;24 Cloudflare Access incident was small-blast: a subset of authentication requests in specific geographies, contained and recoverable.</p><p>That last one is exactly what Code Orange was designed to produce. The first two are Cloudflare continuing to find new ways to break, in places Code Orange wasn&#8217;t yet covering.</p><p>The response pattern is consistent. Where there&#8217;s a post-mortem, it&#8217;s clinical. Where there isn&#8217;t yet, the incident was small enough that <a href="iframe.php?url=https%3A%2F%2Fwww.cloudflarestatus.com%2Fhistory">the status page</a> tells the story. The thesis isn&#8217;t that Cloudflare doesn&#8217;t fail. It&#8217;s that Cloudflare fails like a grown-up.</p><h2>The real math</h2><p>Cloudflare had roughly seven hours of major-incident downtime in 2025. That&#8217;s 99.92% availability on the proxy layer. Not perfect. Seven hours of downtime on a system proxying 20% of the internet is genuinely bad. No qualifier.</p><p>But here&#8217;s the question nobody in the failover crowd is asking: what&#8217;s your uptime?</p><p>If you&#8217;re running a single-region deployment (and most of you are) your own application probably had more downtime than Cloudflare did. Bad deploys. Database migrations. That one time someone fat-fingered a Terraform apply. The dependency update that broke production on a Friday afternoon. The SSL certificate that expired because nobody set up the renewal alert.</p><p>You tolerate all of that. You don&#8217;t demand a hot standby for your own application. You fix the problem, write a post-mortem (maybe), and move on.</p><p>When Cloudflare has an incident, you get the same thing: a problem, a fix, a post-mortem (always), and improvements. The difference is <a href="iframe.php?url=https%3A%2F%2Fblog.cloudflare.com%2Ftag%2Fpost-mortem%2F">Cloudflare&#8217;s post-mortems</a> are better than yours.</p><h2>What we should actually ask for</h2><p>Should we demand Cloudflare do better? Absolutely. A system proxying a fifth of the internet should not deploy config changes globally and instantaneously. That lesson should have been absorbed the first time. The fact that it happened twice in three weeks is a real problem and Cloudflare rightly treated it as one.</p><p>Staged rollouts. Better blast-radius controls. Fail-open defaults on every component. Cloudflare is <a href="iframe.php?url=https%3A%2F%2Fblog.cloudflare.com%2Ffail-small-resilience-plan%2F">doing all of these things</a>.</p><p>What we shouldn&#8217;t do is pretend we can architect around Cloudflare on a budget. The hot takes I saw on LinkedIn during and after those incidents all shared one blind spot: they assumed that reducing your Cloudflare dependency can only improve your position. Nobody considered the possibility that you could make your position significantly worse. Every alternative they proposed (pointing DNS at the origin, maintaining a parallel stack, splitting traffic) introduces risk that doesn&#8217;t exist when you just stay behind Cloudflare. The downside isn&#8217;t neutral. It&#8217;s negative.</p><p>And yet: you can&#8217;t replicate what they do at their price, with their global footprint, or with their traffic-level bot detection. The $20/month Pro plan gives you security infrastructure that would cost six figures to approximate on any other platform, and you&#8217;d need a team to maintain it.</p><p>If you have Netflix&#8217;s budget and Netflix&#8217;s ops team, run a multi-CDN setup. For everyone else, use Cloudflare. Use <a href="iframe.php?url=https%3A%2F%2Fdevelopers.cloudflare.com%2Fcloudflare-one%2Fconnections%2Fconnect-networks%2F">Cloudflare Tunnel</a> so your origin IP never leaks. For AWS shops, lock down your origin&#8217;s security group to only accept traffic from Cloudflare&#8217;s proxy IPs &#8212; I built <a href="iframe.php?url=https%3A%2F%2Fgithub.com%2Fawesome-foundation%2Fcore-infrastructure%2Ftree%2Fmaster%2Fawesome-cloudflare-sg">awesome-cloudflare-sg</a> for exactly this, a CloudFormation stack that auto-syncs an EC2 security group with Cloudflare&#8217;s <a href="iframe.php?url=https%3A%2F%2Fwww.cloudflare.com%2Fips%2F">published IP ranges</a> via Lambda. If your origin IP leaks, the security group makes the leak useless to anyone whose source IP isn&#8217;t on Cloudflare&#8217;s list. Build reasonable origin-level defenses as a degraded fallback. And when Cloudflare has a bad day, wait it out. They&#8217;ll fix it. They&#8217;ll tell you exactly what happened. And they&#8217;ll make it less likely to happen again.</p><p>And that&#8217;s not blind faith, it&#8217;s just looking at the track record and making a rational call.</p><div><hr></div><h2>Sources</h2><ul><li><p>Cloudflare, <a href="iframe.php?url=https%3A%2F%2Fblog.cloudflare.com%2F18-november-2025-outage%2F">Cloudflare outage on November 18, 2025</a></p></li><li><p>Cloudflare, <a href="iframe.php?url=https%3A%2F%2Fblog.cloudflare.com%2F5-december-2025-outage%2F">Cloudflare outage on December 5, 2025</a></p></li><li><p>Cloudflare, <a href="iframe.php?url=https%3A%2F%2Fblog.cloudflare.com%2Ffail-small-resilience-plan%2F">Code Orange: Fail Small</a></p></li><li><p>Cloudflare, <a href="iframe.php?url=https%3A%2F%2Fblog.cloudflare.com%2Fcloudflare-incident-on-february-6-2025%2F">Cloudflare incident on February 6, 2025</a></p></li><li><p>Cloudflare, <a href="iframe.php?url=https%3A%2F%2Fblog.cloudflare.com%2Fcloudflare-outage-february-20-2026%2F">Cloudflare outage on February 20, 2026</a></p></li><li><p>Cloudflare, <a href="iframe.php?url=https%3A%2F%2Fwww.cloudflarestatus.com%2Fhistory">Status page incident history</a></p></li><li><p>Cloudflare, <a href="iframe.php?url=https%3A%2F%2Fblog.cloudflare.com%2Ftag%2Fpost-mortem%2F">post-mortems category on the blog</a></p></li><li><p>ThousandEyes, <a href="iframe.php?url=https%3A%2F%2Fwww.thousandeyes.com%2Fblog%2Fcloudflare-outage-analysis-november-18-2025">Cloudflare Outage Analysis: November 18, 2025</a></p></li><li><p>Gremlin, <a href="iframe.php?url=https%3A%2F%2Fwww.gremlin.com%2Fblog%2Freliability-lessons-from-the-2025-cloudflare-outage">Reliability lessons from the 2025 Cloudflare outage</a></p></li><li><p>The Pragmatic Engineer, <a href="iframe.php?url=https%3A%2F%2Fblog.pragmaticengineer.com%2Fthe-pulse-cloudflares-latest-outage%2F">Cloudflare&#8217;s latest outage proves dangers of global configuration changes</a></p></li><li><p>Zafran, <a href="iframe.php?url=https%3A%2F%2Fwww.zafran.io%2Fresources%2Fbreaking-waf">BreakingWAF: Widespread WAF Bypass</a></p></li><li><p>Certitude, <a href="iframe.php?url=https%3A%2F%2Fcertitude.consulting%2Fblog%2Fen%2Fusing-cloudflare-to-bypass-cloudflare%2F">Using Cloudflare to bypass Cloudflare</a></p></li><li><p>Rhino Security Labs, <a href="iframe.php?url=https%3A%2F%2Frhinosecuritylabs.com%2Fcloud-security%2Fcloudflare-bypassing-cloud-security%2F">Cloudflare: Evading Cloud Security Protections</a></p></li><li><p>Detectify, <a href="iframe.php?url=https%3A%2F%2Fblog.detectify.com%2Findustry-insights%2Fbypassing-cloudflare-waf-with-the-origin-server-ip-address%2F">Bypassing Cloudflare WAF with the origin server IP</a></p></li><li><p>Radware, <a href="iframe.php?url=https%3A%2F%2Fblog.radware.com%2Fsecurity%2F2017%2F10%2Fsecurity-challenge-protecting-multi-cdn%2F">Protecting the Multi-CDN: The Security Challenge</a></p></li><li><p>Hydrolix, <a href="iframe.php?url=https%3A%2F%2Fhydrolix.io%2Fblog%2Fmulti-cdn-guide%2F">Multi-CDN: Challenges, Implementation, and Best Practices</a></p></li><li><p>CDN Handbook, <a href="iframe.php?url=https%3A%2F%2Fwww.cdnhandbook.com%2Fadvanced%2Fmulticdn%2F">Multi-CDN For Operators</a></p></li><li><p>SecureWorld, <a href="iframe.php?url=https%3A%2F%2Fwww.secureworld.io%2Findustry-news%2Fwaf-widespread-vulnerability-zafran">Zafran Uncovers Widespread WAF Vulnerability</a></p></li><li><p>InfoQ, <a href="iframe.php?url=https%3A%2F%2Fwww.infoq.com%2Fnews%2F2026%2F01%2Fcloudflare-resilience-plan%2F">Cloudflare Launches &#8220;Code Orange: Fail Small&#8221;</a></p></li><li><p>ControlD, <a href="iframe.php?url=https%3A%2F%2Fcontrold.com%2Fblog%2Fbiggest-cloudflare-outages%2F">Cloudflare Outage History (2019-2026)</a></p></li><li><p>SDxCentral, <a href="iframe.php?url=https%3A%2F%2Fwww.sdxcentral.com%2Fnews%2Fcloudflare-suffering-from-yet-another-outage%2F">Cloudflare Suffered Yet Another Outage</a></p></li></ul>]]></content:encoded></item><item><title><![CDATA[Zero trust has a database-shaped blind spot]]></title><description><![CDATA[The one layer the industry forgot to verify]]></description><link>https://chaosguru.substack.com/p/zero-trust-has-a-database-shaped</link><guid isPermaLink="false">https://chaosguru.substack.com/p/zero-trust-has-a-database-shaped</guid><dc:creator><![CDATA[Luka Kladarić]]></dc:creator><pubDate>Mon, 30 Mar 2026 13:25:45 GMT</pubDate><enclosure url="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21ddKK%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Fe87828b0-ffb5-42be-9b20-28ac381f32df_1920x1072.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21ddKK%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Fe87828b0-ffb5-42be-9b20-28ac381f32df_1920x1072.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ddKK!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe87828b0-ffb5-42be-9b20-28ac381f32df_1920x1072.png 424w, https://substackcdn.com/image/fetch/$s_!ddKK!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe87828b0-ffb5-42be-9b20-28ac381f32df_1920x1072.png 848w, https://substackcdn.com/image/fetch/$s_!ddKK!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe87828b0-ffb5-42be-9b20-28ac381f32df_1920x1072.png 1272w, https://substackcdn.com/image/fetch/$s_!ddKK!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe87828b0-ffb5-42be-9b20-28ac381f32df_1920x1072.png 1456w" sizes="100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21ddKK%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Fe87828b0-ffb5-42be-9b20-28ac381f32df_1920x1072.png" width="1456" height="813" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e87828b0-ffb5-42be-9b20-28ac381f32df_1920x1072.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:813,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2943700,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://chaosguru.substack.com/i/192601588?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe87828b0-ffb5-42be-9b20-28ac381f32df_1920x1072.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!ddKK!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe87828b0-ffb5-42be-9b20-28ac381f32df_1920x1072.png 424w, https://substackcdn.com/image/fetch/$s_!ddKK!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe87828b0-ffb5-42be-9b20-28ac381f32df_1920x1072.png 848w, https://substackcdn.com/image/fetch/$s_!ddKK!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe87828b0-ffb5-42be-9b20-28ac381f32df_1920x1072.png 1272w, https://substackcdn.com/image/fetch/$s_!ddKK!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe87828b0-ffb5-42be-9b20-28ac381f32df_1920x1072.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Zero trust architecture rests on a single premise: verify every actor, at every layer, every time. <a href="iframe.php?url=https%3A%2F%2Fcsrc.nist.gov%2Fpubs%2Fsp%2F800%2F207%2Ffinal">NIST SP 800-207</a> codified it. <a href="iframe.php?url=https%3A%2F%2Fwww.cisa.gov%2Ftopics%2Fcybersecurity-best-practices%2Fexecutive-order-improving-nations-cybersecurity">Executive Order 14028</a> mandated it for federal agencies. Every major cloud vendor now sells products built around it.</p><p><strong>The premise has a gap.</strong> One layer of the typical infrastructure stack still doesn&#8217;t verify the actor: the database.</p><h3>How zero trust was adopted, layer by layer</h3><p>The adoption sequence matters because it explains what got built and what got deferred.</p><p>The concept started with John Kindervag&#8217;s <a href="iframe.php?url=https%3A%2F%2Fwww.virtualstarmedia.com%2Fdownloads%2FForrester_zero_trust_DNA.pdf">&#8220;No More Chewy Centers&#8221;</a> at Forrester in 2010: <a href="iframe.php?url=https%3A%2F%2Fwww.illumio.com%2Fblog%2Fjohn-kindervag-shares-zero-trusts-origin-story">stop granting trust based on network location</a>. Google proved it could work at scale with <a href="iframe.php?url=https%3A%2F%2Fwww.usenix.org%2Fpublications%2Flogin%2Fdec14%2Fward">BeyondCorp</a> in 2014. The US government made it mandatory in 2021 with <a href="iframe.php?url=https%3A%2F%2Fwww.whitehouse.gov%2Fwp-content%2Fuploads%2F2022%2F01%2FM-22-09.pdf">OMB M-22-09</a>. Vendors built products. Budgets followed.</p><p>Here&#8217;s what fifteen years of that sequence produced:</p><p>Layer Identity-based access Status Network Microsegmentation, per-request verification Standard Application SSO, OAuth, SAML, per-user sessions Standard Cloud infrastructure IAM roles, scoped permissions, MFA Standard CI/CD pipelines Service principals, OIDC federation Widespread VPN / remote access Per-user authentication, device trust Standard Database Shared credentials, service accounts Unchanged</p><p>Every layer above the database now verifies the actor. The database, the layer that stores what every other layer exists to protect, <strong>authenticates a role, not a person</strong>.</p><h3>Why databases got skipped</h3><p>The gap isn&#8217;t negligence, but four factors that compound.</p><p>Databases predate zero trust by decades. They were architected when the perimeter was the security model. Reaching the database meant you&#8217;d already been authorized. Authentication at that layer was a redundancy, not a requirement.</p><p>Then there&#8217;s the migration surface area. Changing database authentication means changing connection strings, application connection pools, ORM configurations, CI pipeline secrets, local dev environments, and environment variable management. Every service that touches the database, and most of them do, needs modification. We&#8217;ve talked to enough engineering teams to know this isn&#8217;t a one-sprint project. It typically requires coordination across three or more teams before anything moves.</p><p>The cost-benefit math didn&#8217;t help either. Network segmentation and application-layer SSO had clear, demonstrable returns. Database identity had the same theoretical value but a higher migration cost and no regulatory pressure until recently, so teams invested where the return-on-effort was clearest. Reasonable, in hindsight.</p><p>And the tooling reinforced the gap. Most database security products were built features-first: audit logging, session controls, access policies. Identity resolution was treated as a later addition. In our experience, it doesn&#8217;t work that way. Once a system is designed around static accounts, identity becomes a reconstruction exercise, a second layer trying to infer meaning the original system never captured. The audit log says &#8220;admin&#8221; and you spend the next two hours figuring out which admin, from which machine, in which session.</p><h3>The identity death problem</h3><p>There&#8217;s a specific failure mode at the database boundary that I&#8217;ve started calling the identity death problem.</p><p>Trace a request through a typical stack. A user authenticates via SSO. Identity is verified. The API gateway validates the token. Identity is present. The service mesh enforces mTLS between services. Identity is propagated. Then the application server opens a database connection as <code>app_readonly</code>.</p><p><strong>That&#8217;s where identity dies.</strong></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21DJx3%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Ff25bb62e-064b-4006-a344-ffd2d676b766_2752x1536.webp" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!DJx3!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff25bb62e-064b-4006-a344-ffd2d676b766_2752x1536.webp 424w, https://substackcdn.com/image/fetch/$s_!DJx3!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff25bb62e-064b-4006-a344-ffd2d676b766_2752x1536.webp 848w, https://substackcdn.com/image/fetch/$s_!DJx3!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff25bb62e-064b-4006-a344-ffd2d676b766_2752x1536.webp 1272w, https://substackcdn.com/image/fetch/$s_!DJx3!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff25bb62e-064b-4006-a344-ffd2d676b766_2752x1536.webp 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21DJx3%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Ff25bb62e-064b-4006-a344-ffd2d676b766_2752x1536.webp" width="1456" height="813" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f25bb62e-064b-4006-a344-ffd2d676b766_2752x1536.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:813,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:43266,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/webp&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://chaosguru.substack.com/i/192601588?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff25bb62e-064b-4006-a344-ffd2d676b766_2752x1536.webp&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!DJx3!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff25bb62e-064b-4006-a344-ffd2d676b766_2752x1536.webp 424w, https://substackcdn.com/image/fetch/$s_!DJx3!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff25bb62e-064b-4006-a344-ffd2d676b766_2752x1536.webp 848w, https://substackcdn.com/image/fetch/$s_!DJx3!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff25bb62e-064b-4006-a344-ffd2d676b766_2752x1536.webp 1272w, https://substackcdn.com/image/fetch/$s_!DJx3!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff25bb62e-064b-4006-a344-ffd2d676b766_2752x1536.webp 1456w" sizes="auto, 100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>The database sees one credential for every request. Twenty engineers, three microservices, a nightly batch job, and a contractor whose access was never revoked, all arrive as the same account. The database cannot distinguish between a routine read and a data exfiltration attempt. Both are <code>app_readonly</code>.</p><p>The audit log faithfully records the connection. It records the query, the timestamp, the table. It does not record the person. It was never designed to.</p><h3>Compliance impact</h3><p>Two regulatory frameworks made this gap expensive.</p><p><a href="iframe.php?url=https%3A%2F%2Fwww.nis-2-directive.com%2FNIS_2_Directive_Article_21.html">NIS2 Article 21</a> requires both &#8220;access control policies&#8221; and &#8220;traceability of access to critical assets.&#8221; These are <a href="iframe.php?url=https%3A%2F%2Fsunbytes.io%2Fblog%2Fcybersecurity%2Fnis2-article-21-requirements-explained%2F">distinct requirements</a>. Access control policies demand identity-governed access: each person gets access based on who they are, not who knows the password. Traceability demands that every action traces to a named individual. A shared credential fails both by design.</p><p><a href="iframe.php?url=https%3A%2F%2Fwww.digital-operational-resilience-act.com%2F">DORA</a> imposes similar requirements for the financial sector. Attributable access to sensitive systems. Audit trails that resolve to individuals. <a href="iframe.php?url=https%3A%2F%2Fwww.aicpa-cima.com%2Ftopic%2Faudit-assurance%2Faudit-and-assurance-greater-than-soc-2">SOC 2</a> auditors have been asking these questions for years, with less regulatory enforcement behind them.</p><p>Across all these frameworks, the ask is the same: <strong>identity-based, per-person attribution at the data layer</strong>. &#8220;A service account connected at 14:32&#8221; is not an acceptable audit response.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21KlBW%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F3c943e86-3140-4400-97e8-b7090da6caf3_2752x1536.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!KlBW!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3c943e86-3140-4400-97e8-b7090da6caf3_2752x1536.jpeg 424w, https://substackcdn.com/image/fetch/$s_!KlBW!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3c943e86-3140-4400-97e8-b7090da6caf3_2752x1536.jpeg 848w, https://substackcdn.com/image/fetch/$s_!KlBW!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3c943e86-3140-4400-97e8-b7090da6caf3_2752x1536.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!KlBW!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3c943e86-3140-4400-97e8-b7090da6caf3_2752x1536.jpeg 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21KlBW%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F3c943e86-3140-4400-97e8-b7090da6caf3_2752x1536.jpeg" width="1456" height="813" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3c943e86-3140-4400-97e8-b7090da6caf3_2752x1536.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:813,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2794002,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://chaosguru.substack.com/i/192601588?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3c943e86-3140-4400-97e8-b7090da6caf3_2752x1536.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!KlBW!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3c943e86-3140-4400-97e8-b7090da6caf3_2752x1536.jpeg 424w, https://substackcdn.com/image/fetch/$s_!KlBW!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3c943e86-3140-4400-97e8-b7090da6caf3_2752x1536.jpeg 848w, https://substackcdn.com/image/fetch/$s_!KlBW!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3c943e86-3140-4400-97e8-b7090da6caf3_2752x1536.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!KlBW!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3c943e86-3140-4400-97e8-b7090da6caf3_2752x1536.jpeg 1456w" sizes="auto, 100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>The frustrating part, from a technical standpoint: the engineering pattern these frameworks require has been standard for cloud IAM and VPN for a decade. Identity-aware authentication. Short-lived, scoped credentials. Per-session attribution. The industry just never applied it to databases.</p><h3>What closing the gap requires</h3><p>Every database session maps to a named individual, not a service account or shared credential. Access expires when the session ends, so there are no persistent passwords in configuration files. The audit log records the person, not the role, and every query carries real identity. When someone leaves the team, their access is revoked without rotating credentials that affect a dozen other services.</p><p>The engineering challenge is the migration path. Connection strings are embedded across services. Application connection pools weren&#8217;t designed for per-user authentication. Local dev environments are each their own configuration snowflake. The shared password survived because removing it was a quarter-long wiring project, and there was always something more urgent.</p><h3>Where this is going</h3><p>The pattern I&#8217;ve been watching is consistent: zero trust adoption follows the same sequence across organizations. Networks first, then applications, then cloud infrastructure. Databases last. They&#8217;re last because they&#8217;re deepest in the stack, hardest to rewire, and most likely to break something if the migration goes wrong.</p><p>The regulatory pressure isn&#8217;t waiting for the adoption curve. NIS2 is live. DORA is live. Auditors are asking the identity question at the database layer today.</p><p>The organizations closing this gap get audit trails that actually help during incidents, shared credentials that stop being an <a href="iframe.php?url=https%3A%2F%2Fwww.verizon.com%2Fbusiness%2Fresources%2Freports%2Fdbir%2F">attack vector</a>, and a zero trust architecture that&#8217;s actually complete.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21xmfT%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Fb4d5e81d-a2cc-45a2-bc48-a1536afff452_2560x1440.webp" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!xmfT!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4d5e81d-a2cc-45a2-bc48-a1536afff452_2560x1440.webp 424w, https://substackcdn.com/image/fetch/$s_!xmfT!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4d5e81d-a2cc-45a2-bc48-a1536afff452_2560x1440.webp 848w, https://substackcdn.com/image/fetch/$s_!xmfT!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4d5e81d-a2cc-45a2-bc48-a1536afff452_2560x1440.webp 1272w, https://substackcdn.com/image/fetch/$s_!xmfT!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4d5e81d-a2cc-45a2-bc48-a1536afff452_2560x1440.webp 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21xmfT%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Fb4d5e81d-a2cc-45a2-bc48-a1536afff452_2560x1440.webp" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b4d5e81d-a2cc-45a2-bc48-a1536afff452_2560x1440.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:125996,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/webp&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://chaosguru.substack.com/i/192601588?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4d5e81d-a2cc-45a2-bc48-a1536afff452_2560x1440.webp&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!xmfT!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4d5e81d-a2cc-45a2-bc48-a1536afff452_2560x1440.webp 424w, https://substackcdn.com/image/fetch/$s_!xmfT!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4d5e81d-a2cc-45a2-bc48-a1536afff452_2560x1440.webp 848w, https://substackcdn.com/image/fetch/$s_!xmfT!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4d5e81d-a2cc-45a2-bc48-a1536afff452_2560x1440.webp 1272w, https://substackcdn.com/image/fetch/$s_!xmfT!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb4d5e81d-a2cc-45a2-bc48-a1536afff452_2560x1440.webp 1456w" sizes="auto, 100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>The blind spot has been visible for fifteen years. The cost of leaving it open just changed.</p><p>Pull up your database connection config. Count how many teams share that credential. That&#8217;s your gap.</p>]]></content:encoded></item><item><title><![CDATA[I Thought I'd Left This Craft Behind]]></title><description><![CDATA[Five projects in three months after a decade of not shipping code]]></description><link>https://chaosguru.substack.com/p/i-thought-id-left-this-craft-behind</link><guid isPermaLink="false">https://chaosguru.substack.com/p/i-thought-id-left-this-craft-behind</guid><dc:creator><![CDATA[Luka Kladarić]]></dc:creator><pubDate>Sat, 28 Mar 2026 10:58:13 GMT</pubDate><enclosure url="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%211bWA%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F75f61c13-4545-43d2-b16c-d1b7f24891be_2720x1570.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%211bWA%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F75f61c13-4545-43d2-b16c-d1b7f24891be_2720x1570.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!1bWA!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F75f61c13-4545-43d2-b16c-d1b7f24891be_2720x1570.png 424w, https://substackcdn.com/image/fetch/$s_!1bWA!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F75f61c13-4545-43d2-b16c-d1b7f24891be_2720x1570.png 848w, https://substackcdn.com/image/fetch/$s_!1bWA!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F75f61c13-4545-43d2-b16c-d1b7f24891be_2720x1570.png 1272w, https://substackcdn.com/image/fetch/$s_!1bWA!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F75f61c13-4545-43d2-b16c-d1b7f24891be_2720x1570.png 1456w" sizes="100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%211bWA%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F75f61c13-4545-43d2-b16c-d1b7f24891be_2720x1570.png" width="1456" height="840" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/75f61c13-4545-43d2-b16c-d1b7f24891be_2720x1570.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:840,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:923923,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://chaosguru.substack.com/i/192395567?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F75f61c13-4545-43d2-b16c-d1b7f24891be_2720x1570.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!1bWA!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F75f61c13-4545-43d2-b16c-d1b7f24891be_2720x1570.png 424w, https://substackcdn.com/image/fetch/$s_!1bWA!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F75f61c13-4545-43d2-b16c-d1b7f24891be_2720x1570.png 848w, https://substackcdn.com/image/fetch/$s_!1bWA!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F75f61c13-4545-43d2-b16c-d1b7f24891be_2720x1570.png 1272w, https://substackcdn.com/image/fetch/$s_!1bWA!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F75f61c13-4545-43d2-b16c-d1b7f24891be_2720x1570.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">cfntop</figcaption></figure></div><p>I come from software development. Spent twenty years in it. But somewhere along the way, the writing-the-code part started feeling like the least interesting thing I did. Architecture, strategy, operations, coaching... all more rewarding, all less tedious. I stopped shipping my own code and didn&#8217;t really miss it.</p><p>I shipped a pull request to <a href="iframe.php?url=https%3A%2F%2Fgithub.com%2FStackExchange%2Fdnscontrol">dnscontrol</a> in January. I&#8217;d been using it for years to manage all my Cloudflare zones, and I hit a feature they didn&#8217;t support. I needed <a href="iframe.php?url=https%3A%2F%2Fgithub.com%2FStackExchange%2Fdnscontrol%2Fpull%2F4020">per-record CNAME flattening</a>, a paid zone feature with a small customer base and zero incentive for the maintainers to build themselves. So I built it, it got accepted, and that kind of ignited something in me that had been long gone. So I did another one, adding <a href="iframe.php?url=https%3A%2F%2Fgithub.com%2FStackExchange%2Fdnscontrol%2Fpull%2F4025">support for record comments and tags</a>, another Cloudflare feature nobody had wired up.</p><p>Then I finally built the <a href="iframe.php?url=https%3A%2F%2Fgithub.com%2Fawesome-foundation%2Fcore-infrastructure%2Ftree%2Fmain%2Fawesome-cloudflare-sg">Cloudflare security group sync</a> I&#8217;d wanted but never made time to build, a Lambda that pulls Cloudflare&#8217;s published IP ranges and keeps your AWS security groups current. A small but very real gap in every setup I&#8217;d ever run. Then <a href="iframe.php?url=https%3A%2F%2Fgithub.com%2Fawesome-foundation%2Fcfnpeek">cfnpeek</a>, because I needed a quick way to inspect stack outputs. Then <a href="iframe.php?url=https%3A%2F%2Fgithub.com%2Fawesome-foundation%2Fcfntop">cfntop</a>, because I was tired of refreshing the AWS console during deploys. And I&#8217;m working on some iOS stuff that still needs to marinate a bit before I reveal it. &#129323;</p><p>I didn&#8217;t plan any of this. But building <a href="iframe.php?url=https%3A%2F%2Frmbug.com">rmBug</a> meant dealing with infrastructure again, which meant hitting friction I&#8217;d been ignoring for years. This time I had Claude Code open in the next terminal, and the distance between &#8220;I wish this existed&#8221; and &#8220;okay it exists now&#8221; collapsed.</p><p>I didn&#8217;t expect the part where activation energy drops low enough that you stop triaging your ideas and just build them. The maintenance burden you couldn&#8217;t justify becomes manageable because you&#8217;re not writing every line from scratch.</p><p>Turns out I just needed the overhead to come down.</p>]]></content:encoded></item><item><title><![CDATA[I Spent an Afternoon Arguing with Three AI Image Generators About Turnstiles]]></title><description><![CDATA[What a disabled turnstile looks like shouldn't be this hard to explain]]></description><link>https://chaosguru.substack.com/p/i-spent-an-afternoon-arguing-with</link><guid isPermaLink="false">https://chaosguru.substack.com/p/i-spent-an-afternoon-arguing-with</guid><dc:creator><![CDATA[Luka Kladarić]]></dc:creator><pubDate>Mon, 16 Mar 2026 15:24:14 GMT</pubDate><enclosure url="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21CqG9%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F482a974f-191b-44ce-b528-e72f441e0089_2752x1536.webp" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>I was writing a LinkedIn post about database identity and wanted a visual metaphor: a security corridor with three checkpoint turnstiles. The first two (NETWORK, APP) locked and guarded. The third (DATABASE) disabled and abandoned.</p><p>Simple concept. A turnstile that&#8217;s been turned off. You&#8217;ve seen one &#8212; at a subway station after hours, or at a building entrance during a fire drill. The three metal arms rotate down so they all point at the floor. No barrier. Walk right through.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fwww.dreamstime.com%2Fdisabled-turnstiles-quarantine-restriction-mass-events-sealed-doors-remote-work-image217300388" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!1VgB!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe46b54ce-a2fa-4b4d-8327-0721eb057185_800x534.jpeg 424w, https://substackcdn.com/image/fetch/$s_!1VgB!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe46b54ce-a2fa-4b4d-8327-0721eb057185_800x534.jpeg 848w, https://substackcdn.com/image/fetch/$s_!1VgB!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe46b54ce-a2fa-4b4d-8327-0721eb057185_800x534.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!1VgB!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe46b54ce-a2fa-4b4d-8327-0721eb057185_800x534.jpeg 1456w" sizes="100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%211VgB%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Fe46b54ce-a2fa-4b4d-8327-0721eb057185_800x534.jpeg" width="800" height="534" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e46b54ce-a2fa-4b4d-8327-0721eb057185_800x534.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:534,&quot;width&quot;:800,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Disabled Turnstiles Stock Photos - Free &amp; Royalty-Free Stock Photos ...&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:&quot;https://www.dreamstime.com/disabled-turnstiles-quarantine-restriction-mass-events-sealed-doors-remote-work-image217300388&quot;,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Disabled Turnstiles Stock Photos - Free &amp; Royalty-Free Stock Photos ..." title="Disabled Turnstiles Stock Photos - Free &amp; Royalty-Free Stock Photos ..." srcset="https://substackcdn.com/image/fetch/$s_!1VgB!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe46b54ce-a2fa-4b4d-8327-0721eb057185_800x534.jpeg 424w, https://substackcdn.com/image/fetch/$s_!1VgB!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe46b54ce-a2fa-4b4d-8327-0721eb057185_800x534.jpeg 848w, https://substackcdn.com/image/fetch/$s_!1VgB!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe46b54ce-a2fa-4b4d-8327-0721eb057185_800x534.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!1VgB!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe46b54ce-a2fa-4b4d-8327-0721eb057185_800x534.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Disabled turnstile, stock photo (src: dreamstime)</figcaption></figure></div><p>I tried to get three different AI image generators to draw this. It took five rounds of prompting, three models, and about twenty generated images and a couple of pivots on my side to get a usable image. I never got my vision.</p><p>I then asked Claude Code to prepare all the versions of generated images, along with their prompts, so I could write this article. Claude&#8217;s interpretation of the generated images, is also hilarious, so I&#8217;ll be leaving them in for reader amusement.</p><h2>Round 1: &#8220;Just draw three gates&#8221;</h2><p><strong>Prompt (paraphrased):</strong> A security corridor with three checkpoint gates. First two glow green. Third is wide open, unguarded, with a sticky note reading &#8220;app_readonly.&#8221;</p><p><strong>Models:</strong> Nano Banana Pro (Google Gemini), Riverflow (Sourceful)</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21SNJd%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F897c18ed-8ef1-41c9-aaed-07605bbf2fe0_2752x1536.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!SNJd!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F897c18ed-8ef1-41c9-aaed-07605bbf2fe0_2752x1536.jpeg 424w, https://substackcdn.com/image/fetch/$s_!SNJd!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F897c18ed-8ef1-41c9-aaed-07605bbf2fe0_2752x1536.jpeg 848w, https://substackcdn.com/image/fetch/$s_!SNJd!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F897c18ed-8ef1-41c9-aaed-07605bbf2fe0_2752x1536.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!SNJd!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F897c18ed-8ef1-41c9-aaed-07605bbf2fe0_2752x1536.jpeg 1456w" sizes="100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21SNJd%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F897c18ed-8ef1-41c9-aaed-07605bbf2fe0_2752x1536.jpeg" width="1456" height="813" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/897c18ed-8ef1-41c9-aaed-07605bbf2fe0_2752x1536.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:813,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2910865,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://chaosguru.substack.com/i/191139328?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F897c18ed-8ef1-41c9-aaed-07605bbf2fe0_2752x1536.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!SNJd!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F897c18ed-8ef1-41c9-aaed-07605bbf2fe0_2752x1536.jpeg 424w, https://substackcdn.com/image/fetch/$s_!SNJd!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F897c18ed-8ef1-41c9-aaed-07605bbf2fe0_2752x1536.jpeg 848w, https://substackcdn.com/image/fetch/$s_!SNJd!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F897c18ed-8ef1-41c9-aaed-07605bbf2fe0_2752x1536.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!SNJd!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F897c18ed-8ef1-41c9-aaed-07605bbf2fe0_2752x1536.jpeg 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><em>Nano Banana Pro: Excellent first take, and I dig the wide open unguarded gate. The sticky note is unnaturally big, makes no sense standing upright on the floor. But the biggest issue is that you can walk AROUND the open gate. I like the metaphor and it tracks, but it just makes no sense in the real world.</em></p><blockquote><p>Claude&#8217;s take: A sci-fi hallway where all three gates look equally operational.</p></blockquote><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21HF1j%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F6479027a-5fd9-4c80-a50c-af689c9365a3_2752x1536.webp" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!HF1j!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6479027a-5fd9-4c80-a50c-af689c9365a3_2752x1536.webp 424w, https://substackcdn.com/image/fetch/$s_!HF1j!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6479027a-5fd9-4c80-a50c-af689c9365a3_2752x1536.webp 848w, https://substackcdn.com/image/fetch/$s_!HF1j!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6479027a-5fd9-4c80-a50c-af689c9365a3_2752x1536.webp 1272w, https://substackcdn.com/image/fetch/$s_!HF1j!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6479027a-5fd9-4c80-a50c-af689c9365a3_2752x1536.webp 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21HF1j%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F6479027a-5fd9-4c80-a50c-af689c9365a3_2752x1536.webp" width="1456" height="813" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6479027a-5fd9-4c80-a50c-af689c9365a3_2752x1536.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:813,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:162396,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/webp&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://chaosguru.substack.com/i/191139328?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6479027a-5fd9-4c80-a50c-af689c9365a3_2752x1536.webp&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!HF1j!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6479027a-5fd9-4c80-a50c-af689c9365a3_2752x1536.webp 424w, https://substackcdn.com/image/fetch/$s_!HF1j!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6479027a-5fd9-4c80-a50c-af689c9365a3_2752x1536.webp 848w, https://substackcdn.com/image/fetch/$s_!HF1j!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6479027a-5fd9-4c80-a50c-af689c9365a3_2752x1536.webp 1272w, https://substackcdn.com/image/fetch/$s_!HF1j!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6479027a-5fd9-4c80-a50c-af689c9365a3_2752x1536.webp 1456w" sizes="auto, 100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><em>Riverflow: I liked this one except the sticky note is even weirder and for some reason on fire. The DATABASE sign is illuminated. If it got the sticky note and the sign illumination right, it would&#8217;ve been a winner.</em></p><blockquote><p>Claude&#8217;s take: A moody corridor. All three gates look the same.</p><p>Claude&#8217;s summary of both images: Both models drew three gates that looked more or less identical. The concept of &#8220;wide open and unguarded&#8221; translated to... a slightly different shade of lighting on the third gate. No visible difference in barrier state. The sticky note was either missing or illegible.</p></blockquote><h2>Round 2: &#8220;They&#8217;re turnstiles. The third one is disabled.&#8221;</h2><p><strong>Prompt (paraphrased):</strong> Three turnstile checkpoint gates. First two have green neon signs, arms raised. Third has its &#8220;DATABASE&#8221; sign turned OFF, turnstile arms pointing downward in the disabled/open position.</p><p><strong>Models:</strong> Riverflow, FLUX Pro, Nano Banana Pro</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21d3ti%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F85f44ec1-fe0a-4d0d-931f-44d8162cbd09_2752x1536.webp" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!d3ti!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85f44ec1-fe0a-4d0d-931f-44d8162cbd09_2752x1536.webp 424w, https://substackcdn.com/image/fetch/$s_!d3ti!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85f44ec1-fe0a-4d0d-931f-44d8162cbd09_2752x1536.webp 848w, https://substackcdn.com/image/fetch/$s_!d3ti!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85f44ec1-fe0a-4d0d-931f-44d8162cbd09_2752x1536.webp 1272w, https://substackcdn.com/image/fetch/$s_!d3ti!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85f44ec1-fe0a-4d0d-931f-44d8162cbd09_2752x1536.webp 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21d3ti%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F85f44ec1-fe0a-4d0d-931f-44d8162cbd09_2752x1536.webp" width="1456" height="813" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/85f44ec1-fe0a-4d0d-931f-44d8162cbd09_2752x1536.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:813,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:189372,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/webp&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://chaosguru.substack.com/i/191139328?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85f44ec1-fe0a-4d0d-931f-44d8162cbd09_2752x1536.webp&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!d3ti!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85f44ec1-fe0a-4d0d-931f-44d8162cbd09_2752x1536.webp 424w, https://substackcdn.com/image/fetch/$s_!d3ti!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85f44ec1-fe0a-4d0d-931f-44d8162cbd09_2752x1536.webp 848w, https://substackcdn.com/image/fetch/$s_!d3ti!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85f44ec1-fe0a-4d0d-931f-44d8162cbd09_2752x1536.webp 1272w, https://substackcdn.com/image/fetch/$s_!d3ti!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85f44ec1-fe0a-4d0d-931f-44d8162cbd09_2752x1536.webp 1456w" sizes="auto, 100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><em>Riverflow: That&#8217;s not how that works, buddy. Good turnstiles, terrible everything else.</em></p><blockquote><p>Claude&#8217;s take: Doors, not turnstiles. No visible mechanism.</p></blockquote><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%213YHq%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Fff2bd8f6-47c2-49cf-a7b2-fc20fb28d0ea_1920x1072.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!3YHq!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fff2bd8f6-47c2-49cf-a7b2-fc20fb28d0ea_1920x1072.png 424w, https://substackcdn.com/image/fetch/$s_!3YHq!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fff2bd8f6-47c2-49cf-a7b2-fc20fb28d0ea_1920x1072.png 848w, https://substackcdn.com/image/fetch/$s_!3YHq!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fff2bd8f6-47c2-49cf-a7b2-fc20fb28d0ea_1920x1072.png 1272w, https://substackcdn.com/image/fetch/$s_!3YHq!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fff2bd8f6-47c2-49cf-a7b2-fc20fb28d0ea_1920x1072.png 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%213YHq%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Fff2bd8f6-47c2-49cf-a7b2-fc20fb28d0ea_1920x1072.png" width="1456" height="813" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ff2bd8f6-47c2-49cf-a7b2-fc20fb28d0ea_1920x1072.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:813,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:3196578,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://chaosguru.substack.com/i/191139328?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fff2bd8f6-47c2-49cf-a7b2-fc20fb28d0ea_1920x1072.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!3YHq!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fff2bd8f6-47c2-49cf-a7b2-fc20fb28d0ea_1920x1072.png 424w, https://substackcdn.com/image/fetch/$s_!3YHq!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fff2bd8f6-47c2-49cf-a7b2-fc20fb28d0ea_1920x1072.png 848w, https://substackcdn.com/image/fetch/$s_!3YHq!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fff2bd8f6-47c2-49cf-a7b2-fc20fb28d0ea_1920x1072.png 1272w, https://substackcdn.com/image/fetch/$s_!3YHq!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fff2bd8f6-47c2-49cf-a7b2-fc20fb28d0ea_1920x1072.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><em>FLUX: I dug the visuals here, sticky makes a little bit more sense, but omg what are those turnstiles AND gates?</em></p><blockquote><p>Claude&#8217;s take: Photorealistic corridor, but the turnstiles have five or six arms and all look locked.</p></blockquote><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21hsAA%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F5bfae4b8-dc08-44cc-99ae-156d6527d88c_2752x1536.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!hsAA!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5bfae4b8-dc08-44cc-99ae-156d6527d88c_2752x1536.jpeg 424w, https://substackcdn.com/image/fetch/$s_!hsAA!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5bfae4b8-dc08-44cc-99ae-156d6527d88c_2752x1536.jpeg 848w, https://substackcdn.com/image/fetch/$s_!hsAA!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5bfae4b8-dc08-44cc-99ae-156d6527d88c_2752x1536.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!hsAA!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5bfae4b8-dc08-44cc-99ae-156d6527d88c_2752x1536.jpeg 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21hsAA%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F5bfae4b8-dc08-44cc-99ae-156d6527d88c_2752x1536.jpeg" width="1456" height="813" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5bfae4b8-dc08-44cc-99ae-156d6527d88c_2752x1536.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:813,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2434819,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://chaosguru.substack.com/i/191139328?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5bfae4b8-dc08-44cc-99ae-156d6527d88c_2752x1536.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!hsAA!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5bfae4b8-dc08-44cc-99ae-156d6527d88c_2752x1536.jpeg 424w, https://substackcdn.com/image/fetch/$s_!hsAA!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5bfae4b8-dc08-44cc-99ae-156d6527d88c_2752x1536.jpeg 848w, https://substackcdn.com/image/fetch/$s_!hsAA!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5bfae4b8-dc08-44cc-99ae-156d6527d88c_2752x1536.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!hsAA!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5bfae4b8-dc08-44cc-99ae-156d6527d88c_2752x1536.jpeg 1456w" sizes="auto, 100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><em>Nano Banana: Hey this is pretty close, the third turnstile is sooo close and the sticky is perfect! Let&#8217;s dial in on that!!</em></p><blockquote><p>Claude&#8217;s take: Turnstile arms in a slightly different position. Maybe? If you squint?</p></blockquote><h2>Round 3: &#8220;Tripod turnstile. Exactly three arms. 120 degrees apart. Rotated to point sharply downward.&#8221;</h2><p>I got extremely specific. Tripod turnstile. Exactly three metal arms. 120 degrees apart. The third turnstile&#8217;s arms are &#8220;rotated so all three point sharply downward (disabled position, rotated 180 degrees from normal).&#8221;</p><p><strong>Models:</strong> Riverflow, FLUX, Nano Banana</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21b3Et%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Fc32549b3-c8a2-41d1-817f-b27a551523b7_2560x1440.webp" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!b3Et!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc32549b3-c8a2-41d1-817f-b27a551523b7_2560x1440.webp 424w, https://substackcdn.com/image/fetch/$s_!b3Et!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc32549b3-c8a2-41d1-817f-b27a551523b7_2560x1440.webp 848w, https://substackcdn.com/image/fetch/$s_!b3Et!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc32549b3-c8a2-41d1-817f-b27a551523b7_2560x1440.webp 1272w, https://substackcdn.com/image/fetch/$s_!b3Et!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc32549b3-c8a2-41d1-817f-b27a551523b7_2560x1440.webp 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21b3Et%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Fc32549b3-c8a2-41d1-817f-b27a551523b7_2560x1440.webp" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c32549b3-c8a2-41d1-817f-b27a551523b7_2560x1440.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:296292,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/webp&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://chaosguru.substack.com/i/191139328?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc32549b3-c8a2-41d1-817f-b27a551523b7_2560x1440.webp&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!b3Et!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc32549b3-c8a2-41d1-817f-b27a551523b7_2560x1440.webp 424w, https://substackcdn.com/image/fetch/$s_!b3Et!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc32549b3-c8a2-41d1-817f-b27a551523b7_2560x1440.webp 848w, https://substackcdn.com/image/fetch/$s_!b3Et!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc32549b3-c8a2-41d1-817f-b27a551523b7_2560x1440.webp 1272w, https://substackcdn.com/image/fetch/$s_!b3Et!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc32549b3-c8a2-41d1-817f-b27a551523b7_2560x1440.webp 1456w" sizes="auto, 100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><em>Riverflow v3: Oooh I like this visual, but the turnstile is active. Sticky is too big but ok. Let&#8217;s try to iterate on that.</em></p><blockquote><p>Claude&#8217;s take: The corridor looks great. The third turnstile still looks active.</p></blockquote><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21_JL4%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Fe398c374-5a2f-4f10-88a8-8ee4bcc287e2_1920x1072.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!_JL4!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe398c374-5a2f-4f10-88a8-8ee4bcc287e2_1920x1072.png 424w, https://substackcdn.com/image/fetch/$s_!_JL4!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe398c374-5a2f-4f10-88a8-8ee4bcc287e2_1920x1072.png 848w, https://substackcdn.com/image/fetch/$s_!_JL4!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe398c374-5a2f-4f10-88a8-8ee4bcc287e2_1920x1072.png 1272w, https://substackcdn.com/image/fetch/$s_!_JL4!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe398c374-5a2f-4f10-88a8-8ee4bcc287e2_1920x1072.png 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21_JL4%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Fe398c374-5a2f-4f10-88a8-8ee4bcc287e2_1920x1072.png" width="1456" height="813" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e398c374-5a2f-4f10-88a8-8ee4bcc287e2_1920x1072.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:813,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:3418217,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://chaosguru.substack.com/i/191139328?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe398c374-5a2f-4f10-88a8-8ee4bcc287e2_1920x1072.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!_JL4!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe398c374-5a2f-4f10-88a8-8ee4bcc287e2_1920x1072.png 424w, https://substackcdn.com/image/fetch/$s_!_JL4!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe398c374-5a2f-4f10-88a8-8ee4bcc287e2_1920x1072.png 848w, https://substackcdn.com/image/fetch/$s_!_JL4!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe398c374-5a2f-4f10-88a8-8ee4bcc287e2_1920x1072.png 1272w, https://substackcdn.com/image/fetch/$s_!_JL4!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe398c374-5a2f-4f10-88a8-8ee4bcc287e2_1920x1072.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><em>FLUX v3: Not a fan of the red sign, it flips the meaning of the image, but OMG what are those turnstiles?</em></p><blockquote><p>Claude&#8217;s take: Gorgeous corridor. Right number of arms this time. All three turnstiles clearly locked.</p></blockquote><p>Totally the right number of arms. &#129318;&#8205;&#9794;&#65039;</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21ueDB%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Fa52779c8-3141-4398-94f2-7e54e0874269_2752x1536.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ueDB!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa52779c8-3141-4398-94f2-7e54e0874269_2752x1536.jpeg 424w, https://substackcdn.com/image/fetch/$s_!ueDB!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa52779c8-3141-4398-94f2-7e54e0874269_2752x1536.jpeg 848w, https://substackcdn.com/image/fetch/$s_!ueDB!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa52779c8-3141-4398-94f2-7e54e0874269_2752x1536.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!ueDB!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa52779c8-3141-4398-94f2-7e54e0874269_2752x1536.jpeg 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21ueDB%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Fa52779c8-3141-4398-94f2-7e54e0874269_2752x1536.jpeg" width="1456" height="813" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a52779c8-3141-4398-94f2-7e54e0874269_2752x1536.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:813,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2408023,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://chaosguru.substack.com/i/191139328?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa52779c8-3141-4398-94f2-7e54e0874269_2752x1536.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!ueDB!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa52779c8-3141-4398-94f2-7e54e0874269_2752x1536.jpeg 424w, https://substackcdn.com/image/fetch/$s_!ueDB!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa52779c8-3141-4398-94f2-7e54e0874269_2752x1536.jpeg 848w, https://substackcdn.com/image/fetch/$s_!ueDB!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa52779c8-3141-4398-94f2-7e54e0874269_2752x1536.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!ueDB!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa52779c8-3141-4398-94f2-7e54e0874269_2752x1536.jpeg 1456w" sizes="auto, 100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><em>Nano Banana v3: Like the visuals, but the turnstile is still active.</em></p><blockquote><p>Claude&#8217;s take: Arms in an ambiguous position you could call &#8220;disabled&#8221; if you were feeling generous.</p></blockquote><p>Okay, I think I see what&#8217;s happening. These models have seen thousands of images of turnstiles. Almost all of them locked, in the normal operating position. The &#8220;disabled&#8221; state, where the top arm rotates down so all three point at the floor, is rare in photography. Nobody takes a picture of a turned-off turnstile. So the models have no basis for rendering one.</p><p>Same problem Goran wrote about with <a href="iframe.php?url=https%3A%2F%2Fchaosguru.substack.com%2Fp%2Fthe-tent-the-bird-and-the-statistical">tent waterproofing</a>, actually. The models predict the most likely next pixel. They&#8217;ve seen locked turnstiles. They draw locked turnstiles.</p><h2>Round 4: &#8220;Let me restructure the entire prompt&#8221;</h2><p>I separated the prompt into two explicit sections. First: &#8220;The first two turnstiles are ACTIVE and SECURED&#8221; with a full description. Then: &#8220;The third turnstile is DISABLED and ABANDONED&#8221; with its own full description. Caps lock. Structural separation. Like explaining something to a very literal colleague.</p><p><strong>Models:</strong> Riverflow only (three parallel runs: v4a, v4b, v4c)</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21zyj7%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Fe2253421-6b91-4046-b897-347491ea4901_2752x1536.webp" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!zyj7!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe2253421-6b91-4046-b897-347491ea4901_2752x1536.webp 424w, https://substackcdn.com/image/fetch/$s_!zyj7!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe2253421-6b91-4046-b897-347491ea4901_2752x1536.webp 848w, https://substackcdn.com/image/fetch/$s_!zyj7!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe2253421-6b91-4046-b897-347491ea4901_2752x1536.webp 1272w, https://substackcdn.com/image/fetch/$s_!zyj7!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe2253421-6b91-4046-b897-347491ea4901_2752x1536.webp 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21zyj7%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Fe2253421-6b91-4046-b897-347491ea4901_2752x1536.webp" width="1456" height="813" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e2253421-6b91-4046-b897-347491ea4901_2752x1536.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:813,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:201180,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/webp&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://chaosguru.substack.com/i/191139328?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe2253421-6b91-4046-b897-347491ea4901_2752x1536.webp&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!zyj7!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe2253421-6b91-4046-b897-347491ea4901_2752x1536.webp 424w, https://substackcdn.com/image/fetch/$s_!zyj7!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe2253421-6b91-4046-b897-347491ea4901_2752x1536.webp 848w, https://substackcdn.com/image/fetch/$s_!zyj7!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe2253421-6b91-4046-b897-347491ea4901_2752x1536.webp 1272w, https://substackcdn.com/image/fetch/$s_!zyj7!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe2253421-6b91-4046-b897-347491ea4901_2752x1536.webp 1456w" sizes="auto, 100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><em>Riverflow v4a: Tell me you&#8217;ve never seen a turnstile without telling me you&#8217;ve never... Everything else is awesome. Also why are the active ones suddenly doubled?!</em></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21CqG9%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F482a974f-191b-44ce-b528-e72f441e0089_2752x1536.webp" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!CqG9!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F482a974f-191b-44ce-b528-e72f441e0089_2752x1536.webp 424w, https://substackcdn.com/image/fetch/$s_!CqG9!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F482a974f-191b-44ce-b528-e72f441e0089_2752x1536.webp 848w, https://substackcdn.com/image/fetch/$s_!CqG9!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F482a974f-191b-44ce-b528-e72f441e0089_2752x1536.webp 1272w, https://substackcdn.com/image/fetch/$s_!CqG9!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F482a974f-191b-44ce-b528-e72f441e0089_2752x1536.webp 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21CqG9%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F482a974f-191b-44ce-b528-e72f441e0089_2752x1536.webp" width="1456" height="813" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/482a974f-191b-44ce-b528-e72f441e0089_2752x1536.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:813,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:210764,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/webp&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://chaosguru.substack.com/i/191139328?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F482a974f-191b-44ce-b528-e72f441e0089_2752x1536.webp&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!CqG9!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F482a974f-191b-44ce-b528-e72f441e0089_2752x1536.webp 424w, https://substackcdn.com/image/fetch/$s_!CqG9!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F482a974f-191b-44ce-b528-e72f441e0089_2752x1536.webp 848w, https://substackcdn.com/image/fetch/$s_!CqG9!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F482a974f-191b-44ce-b528-e72f441e0089_2752x1536.webp 1272w, https://substackcdn.com/image/fetch/$s_!CqG9!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F482a974f-191b-44ce-b528-e72f441e0089_2752x1536.webp 1456w" sizes="auto, 100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><em>Riverflow v4b: Love the setting, sticky note is great, but the double turnstiles... and WTF is that disabled one?! I mean yes, you could step over it but wtfffff.</em></p><blockquote><p>Claude&#8217;s take: The best of the session. The vibe is right. The mechanics are... close enough.*</p></blockquote><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21kDO0%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F09d4f35c-7615-4375-af31-f5a1392a3e1b_2560x1440.webp" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!kDO0!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F09d4f35c-7615-4375-af31-f5a1392a3e1b_2560x1440.webp 424w, https://substackcdn.com/image/fetch/$s_!kDO0!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F09d4f35c-7615-4375-af31-f5a1392a3e1b_2560x1440.webp 848w, https://substackcdn.com/image/fetch/$s_!kDO0!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F09d4f35c-7615-4375-af31-f5a1392a3e1b_2560x1440.webp 1272w, https://substackcdn.com/image/fetch/$s_!kDO0!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F09d4f35c-7615-4375-af31-f5a1392a3e1b_2560x1440.webp 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21kDO0%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F09d4f35c-7615-4375-af31-f5a1392a3e1b_2560x1440.webp" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/09d4f35c-7615-4375-af31-f5a1392a3e1b_2560x1440.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:228128,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/webp&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://chaosguru.substack.com/i/191139328?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F09d4f35c-7615-4375-af31-f5a1392a3e1b_2560x1440.webp&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!kDO0!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F09d4f35c-7615-4375-af31-f5a1392a3e1b_2560x1440.webp 424w, https://substackcdn.com/image/fetch/$s_!kDO0!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F09d4f35c-7615-4375-af31-f5a1392a3e1b_2560x1440.webp 848w, https://substackcdn.com/image/fetch/$s_!kDO0!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F09d4f35c-7615-4375-af31-f5a1392a3e1b_2560x1440.webp 1272w, https://substackcdn.com/image/fetch/$s_!kDO0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F09d4f35c-7615-4375-af31-f5a1392a3e1b_2560x1440.webp 1456w" sizes="auto, 100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><em>Riverflow v4c: Almost perfect except the turnstile isn&#8217;t inactive.</em></p><blockquote><p>Claude&#8217;s take: v4b was the best of the session. The corridor was atmospheric. The first two turnstiles looked secured. The third one was in a state that you could generously call &#8220;less secured.&#8221; The arms weren&#8217;t pointing down, exactly, but they weren&#8217;t in the standard locked position either. The sign was dark. The overall vibe was right even if the mechanical details were wrong.</p></blockquote><p>Close enough for LinkedIn. But I wanted better.</p><h2>Round 5: &#8220;Forget the turnstile entirely&#8221;</h2><p>I gave up on getting the models to render a disabled turnstile. Instead, I changed the concept: the database checkpoint has no turnstile at all. Just a dark, empty corridor where a checkpoint should be.</p><p><strong>Prompt:</strong> Two secured turnstiles on the left. On the right, where a third checkpoint should be &#8212; NOTHING. Just a dark corridor stretching into shadow. A dead &#8220;DATABASE&#8221; sign above. No gate, no barrier, just an open passage into darkness.</p><p><strong>Models:</strong> Riverflow (three runs), FLUX, Nano Banana</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21-Gu5%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F5451bce7-94f8-4a6e-a59c-336ab6e3165f_2560x1440.webp" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!-Gu5!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5451bce7-94f8-4a6e-a59c-336ab6e3165f_2560x1440.webp 424w, https://substackcdn.com/image/fetch/$s_!-Gu5!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5451bce7-94f8-4a6e-a59c-336ab6e3165f_2560x1440.webp 848w, https://substackcdn.com/image/fetch/$s_!-Gu5!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5451bce7-94f8-4a6e-a59c-336ab6e3165f_2560x1440.webp 1272w, https://substackcdn.com/image/fetch/$s_!-Gu5!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5451bce7-94f8-4a6e-a59c-336ab6e3165f_2560x1440.webp 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21-Gu5%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F5451bce7-94f8-4a6e-a59c-336ab6e3165f_2560x1440.webp" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5451bce7-94f8-4a6e-a59c-336ab6e3165f_2560x1440.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:268754,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/webp&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://chaosguru.substack.com/i/191139328?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5451bce7-94f8-4a6e-a59c-336ab6e3165f_2560x1440.webp&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!-Gu5!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5451bce7-94f8-4a6e-a59c-336ab6e3165f_2560x1440.webp 424w, https://substackcdn.com/image/fetch/$s_!-Gu5!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5451bce7-94f8-4a6e-a59c-336ab6e3165f_2560x1440.webp 848w, https://substackcdn.com/image/fetch/$s_!-Gu5!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5451bce7-94f8-4a6e-a59c-336ab6e3165f_2560x1440.webp 1272w, https://substackcdn.com/image/fetch/$s_!-Gu5!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5451bce7-94f8-4a6e-a59c-336ab6e3165f_2560x1440.webp 1456w" sizes="auto, 100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><em>Riverflow v5a: This one could totally be it but the turnstile mechanism is totally weird and unusable</em></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21v5iI%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Ffd589472-5f53-4581-85d3-6ca2a4e98921_2560x1440.webp" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!v5iI!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd589472-5f53-4581-85d3-6ca2a4e98921_2560x1440.webp 424w, https://substackcdn.com/image/fetch/$s_!v5iI!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd589472-5f53-4581-85d3-6ca2a4e98921_2560x1440.webp 848w, https://substackcdn.com/image/fetch/$s_!v5iI!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd589472-5f53-4581-85d3-6ca2a4e98921_2560x1440.webp 1272w, https://substackcdn.com/image/fetch/$s_!v5iI!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd589472-5f53-4581-85d3-6ca2a4e98921_2560x1440.webp 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21v5iI%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Ffd589472-5f53-4581-85d3-6ca2a4e98921_2560x1440.webp" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/fd589472-5f53-4581-85d3-6ca2a4e98921_2560x1440.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:209240,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/webp&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://chaosguru.substack.com/i/191139328?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd589472-5f53-4581-85d3-6ca2a4e98921_2560x1440.webp&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!v5iI!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd589472-5f53-4581-85d3-6ca2a4e98921_2560x1440.webp 424w, https://substackcdn.com/image/fetch/$s_!v5iI!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd589472-5f53-4581-85d3-6ca2a4e98921_2560x1440.webp 848w, https://substackcdn.com/image/fetch/$s_!v5iI!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd589472-5f53-4581-85d3-6ca2a4e98921_2560x1440.webp 1272w, https://substackcdn.com/image/fetch/$s_!v5iI!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffd589472-5f53-4581-85d3-6ca2a4e98921_2560x1440.webp 1456w" sizes="auto, 100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><em>Riverflow v5b: The winner. I ended up using this one.</em></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21Yfwv%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Fb5826550-c15b-468d-b96a-037b0474b593_2560x1440.webp" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Yfwv!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb5826550-c15b-468d-b96a-037b0474b593_2560x1440.webp 424w, https://substackcdn.com/image/fetch/$s_!Yfwv!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb5826550-c15b-468d-b96a-037b0474b593_2560x1440.webp 848w, https://substackcdn.com/image/fetch/$s_!Yfwv!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb5826550-c15b-468d-b96a-037b0474b593_2560x1440.webp 1272w, https://substackcdn.com/image/fetch/$s_!Yfwv!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb5826550-c15b-468d-b96a-037b0474b593_2560x1440.webp 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21Yfwv%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Fb5826550-c15b-468d-b96a-037b0474b593_2560x1440.webp" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b5826550-c15b-468d-b96a-037b0474b593_2560x1440.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:189110,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/webp&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://chaosguru.substack.com/i/191139328?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb5826550-c15b-468d-b96a-037b0474b593_2560x1440.webp&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Yfwv!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb5826550-c15b-468d-b96a-037b0474b593_2560x1440.webp 424w, https://substackcdn.com/image/fetch/$s_!Yfwv!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb5826550-c15b-468d-b96a-037b0474b593_2560x1440.webp 848w, https://substackcdn.com/image/fetch/$s_!Yfwv!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb5826550-c15b-468d-b96a-037b0474b593_2560x1440.webp 1272w, https://substackcdn.com/image/fetch/$s_!Yfwv!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb5826550-c15b-468d-b96a-037b0474b593_2560x1440.webp 1456w" sizes="auto, 100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><em>Riverflow v5c: This is almost identical to v5b except somehow we got 3 turnstiles against 2 doors and everything is just a little bit off from v5b, even though they were generated in parallel and not fed one into another. So weird.</em></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%211eqS%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F06c1bec3-f813-492f-a5d3-c1d88c6945b3_1920x1072.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!1eqS!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06c1bec3-f813-492f-a5d3-c1d88c6945b3_1920x1072.png 424w, https://substackcdn.com/image/fetch/$s_!1eqS!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06c1bec3-f813-492f-a5d3-c1d88c6945b3_1920x1072.png 848w, https://substackcdn.com/image/fetch/$s_!1eqS!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06c1bec3-f813-492f-a5d3-c1d88c6945b3_1920x1072.png 1272w, https://substackcdn.com/image/fetch/$s_!1eqS!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06c1bec3-f813-492f-a5d3-c1d88c6945b3_1920x1072.png 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%211eqS%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F06c1bec3-f813-492f-a5d3-c1d88c6945b3_1920x1072.png" width="1456" height="813" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/06c1bec3-f813-492f-a5d3-c1d88c6945b3_1920x1072.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:813,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:3429727,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://chaosguru.substack.com/i/191139328?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06c1bec3-f813-492f-a5d3-c1d88c6945b3_1920x1072.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!1eqS!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06c1bec3-f813-492f-a5d3-c1d88c6945b3_1920x1072.png 424w, https://substackcdn.com/image/fetch/$s_!1eqS!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06c1bec3-f813-492f-a5d3-c1d88c6945b3_1920x1072.png 848w, https://substackcdn.com/image/fetch/$s_!1eqS!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06c1bec3-f813-492f-a5d3-c1d88c6945b3_1920x1072.png 1272w, https://substackcdn.com/image/fetch/$s_!1eqS!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06c1bec3-f813-492f-a5d3-c1d88c6945b3_1920x1072.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><em>FLUX v5: The turnstiles are alien creatures. The rest of it is cool tho. Too many floating identity cards.</em></p><blockquote><p>Claude&#8217;s take: Nailed the concept immediately.</p></blockquote><p>&#8220;Nailed&#8221; must mean something else in your world, buddy.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21jcdC%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F03d03059-3ad4-44f4-9383-0888bc5d5192_2752x1536.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!jcdC!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F03d03059-3ad4-44f4-9383-0888bc5d5192_2752x1536.jpeg 424w, https://substackcdn.com/image/fetch/$s_!jcdC!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F03d03059-3ad4-44f4-9383-0888bc5d5192_2752x1536.jpeg 848w, https://substackcdn.com/image/fetch/$s_!jcdC!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F03d03059-3ad4-44f4-9383-0888bc5d5192_2752x1536.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!jcdC!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F03d03059-3ad4-44f4-9383-0888bc5d5192_2752x1536.jpeg 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21jcdC%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F03d03059-3ad4-44f4-9383-0888bc5d5192_2752x1536.jpeg" width="1456" height="813" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/03d03059-3ad4-44f4-9383-0888bc5d5192_2752x1536.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:813,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2524587,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://chaosguru.substack.com/i/191139328?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F03d03059-3ad4-44f4-9383-0888bc5d5192_2752x1536.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!jcdC!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F03d03059-3ad4-44f4-9383-0888bc5d5192_2752x1536.jpeg 424w, https://substackcdn.com/image/fetch/$s_!jcdC!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F03d03059-3ad4-44f4-9383-0888bc5d5192_2752x1536.jpeg 848w, https://substackcdn.com/image/fetch/$s_!jcdC!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F03d03059-3ad4-44f4-9383-0888bc5d5192_2752x1536.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!jcdC!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F03d03059-3ad4-44f4-9383-0888bc5d5192_2752x1536.jpeg 1456w" sizes="auto, 100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><em>Nano Banana v5: This is awesome except each passage has two turnstiles and for some reason these cross beams?!? I have NO clue where they came from.</em></p><blockquote><p>Claude&#8217;s take: Also nailed it.</p></blockquote><p>This iteration led to the winning image, but just barely. I was really exhausted by this point, and ready to give up altogether. Turns out &#8220;draw nothing&#8221; is a much easier instruction than &#8220;draw a specific mechanical state that almost never appears in your training data.&#8221;</p><p>Riverflow v5b was the winner. The contrast between the secured left side and the empty dark right side told the story better than a disabled turnstile ever would have.</p><h2>Takeaway</h2><p>Image generators are statistical machines. They predict likely pixels, not intended meaning. Ask for something common and they&#8217;re great. Ask for something that barely shows up in training data and they&#8217;ll draw the closest common thing instead.</p><p>I spent many rounds trying to fix this with better prompts. More detail, more structure, caps lock, explicit mechanical descriptions. None of it mattered. The models couldn&#8217;t render what they&#8217;d never seen, no matter how clearly I described it.</p><p>What worked was changing the ask. Empty corridor instead of disabled turnstile. Every model got it immediately (but screwed up other stuff).</p><p><strong>Turned out to be a better metaphor anyway.</strong></p>]]></content:encoded></item><item><title><![CDATA[The Tent, the Bird, and the Statistical Machine]]></title><description><![CDATA[A guest post by Goran Peuc]]></description><link>https://chaosguru.substack.com/p/the-tent-the-bird-and-the-statistical</link><guid isPermaLink="false">https://chaosguru.substack.com/p/the-tent-the-bird-and-the-statistical</guid><dc:creator><![CDATA[Luka Kladarić]]></dc:creator><pubDate>Fri, 13 Mar 2026 17:44:47 GMT</pubDate><enclosure url="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%218my5%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Ff65c7337-513b-4d12-8d4a-9af6a24812b2_2752x1536.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%218my5%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Ff65c7337-513b-4d12-8d4a-9af6a24812b2_2752x1536.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!8my5!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff65c7337-513b-4d12-8d4a-9af6a24812b2_2752x1536.jpeg 424w, https://substackcdn.com/image/fetch/$s_!8my5!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff65c7337-513b-4d12-8d4a-9af6a24812b2_2752x1536.jpeg 848w, https://substackcdn.com/image/fetch/$s_!8my5!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff65c7337-513b-4d12-8d4a-9af6a24812b2_2752x1536.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!8my5!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff65c7337-513b-4d12-8d4a-9af6a24812b2_2752x1536.jpeg 1456w" sizes="100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%218my5%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252Ff65c7337-513b-4d12-8d4a-9af6a24812b2_2752x1536.jpeg" width="1456" height="813" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f65c7337-513b-4d12-8d4a-9af6a24812b2_2752x1536.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:813,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2328827,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://chaosguru.substack.com/i/190860232?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff65c7337-513b-4d12-8d4a-9af6a24812b2_2752x1536.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!8my5!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff65c7337-513b-4d12-8d4a-9af6a24812b2_2752x1536.jpeg 424w, https://substackcdn.com/image/fetch/$s_!8my5!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff65c7337-513b-4d12-8d4a-9af6a24812b2_2752x1536.jpeg 848w, https://substackcdn.com/image/fetch/$s_!8my5!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff65c7337-513b-4d12-8d4a-9af6a24812b2_2752x1536.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!8my5!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff65c7337-513b-4d12-8d4a-9af6a24812b2_2752x1536.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><em>I published <a href="iframe.php?url=https%3A%2F%2Fchaosguru.substack.com%2Fp%2Fthe-ai-field-guide-for-people-with">The AI Field Guide for People with Real Jobs</a> a few weeks ago. It did unreasonably well for a newsletter with about 100 subscribers. People forwarded it. People I&#8217;d never met messaged me saying they&#8217;d shared it with their teams.</em></p><p><em>Then Goran sent me this. Goran is a friend who happens to be a UX designer and researcher. He&#8217;s been in the &#8220;how do humans actually use this stuff&#8221; business for a long time. He read the Field Guide and, instead of telling me what he thought, wrote what might be the best illustration of LLM non-determinism I&#8217;ve seen. A bird, a tent, and a bottle of Spanish waterproofing spray.</em></p><p><em>I didn&#8217;t ask for this. I&#8217;m publishing it as he wrote it. It nails something my Field Guide only waved at. You get one answer. You take it. You never see the other ones the model almost gave you instead.</em></p><p><em>-Luka</em></p><div><hr></div><h2>A Summer Misadventure</h2><p>by <a href="iframe.php?url=https%3A%2F%2Fwww.facebook.com%2Fgpeuc">Goran Peuc</a></p><p>Last summer I went camping with my boys. We have a huge family tent, one of those glamping-style mansions. The damned thing has bedrooms and a living room and whatnot. The toilet is still outside in nature. One day a bird that had eaten too many red berries took an enormous dump on my tent. A nightmare. Of course, I took some cleaning spray and cleaned the tent. Only after I had cleaned it did it dawn on me &#8212; the tent is probably sprayed and reinforced with some water-repellent layer, and I had probably just ruined it.</p><p>A quick spray of water showed me I was right. The water did not roll down the tent side; it absorbed into the tent. Whoopsie! Luckily it was completely dry weather by the time we got home.</p><p>When I got home, I quickly went to the manufacturer&#8217;s website to see what maintenance they recommend, and I swiftly found the product they suggest to restore (and even improve) the waterproofing of canvas tents. A quick hop onto local Amazon, and&#8230; it&#8217;s not in stock. Hm, ok, let&#8217;s switch to some other Amazon store. I found the product on Spanish Amazon. Great, I bought it and waited a few days.</p><p>The bottle &#8212; what is essentially melted wax suspended in some liquid &#8212; arrived quickly. But the label was in Spanish! By reflex, I fired up ChatGPT to ask for instructions, mainly the dilution ratio of this liquid in order to use it on tents. What happened next taught me something important about how these tools actually work &#8212; so bear with me for a short technical detour.</p><h2>Non-deterministic Statistical Machines</h2><p>I know this is somewhat simplified (not much, mind you), but this is how LLMs function when we actually get to action. This is how the LLM rubber meets your computer&#8217;s road.</p><p>LLMs ate up all of the text on the internet. They swallowed it all, like greedy pelicans. Out of that text, they do lots of statistical analysis and extract patterns. For example, if you ask an LLM to complete this sentence:</p><p><em>&#8220;The best ice cream is <strong>_</strong>&#8220;</em></p><p>LLMs will first look into their data and come up with a probability breakdown.</p><div class="latex-rendered" data-attrs="{&quot;persistentExpression&quot;:&quot;  \\begin{array}{l|r}\n  \\textbf{Flavour} &amp; \\textbf{Probability} \\\\\n  \\hline\n  \\text{vanilla} &amp; 0.85 \\\\\n  \\text{chocolate} &amp; 0.12 \\\\\n  \\text{strawberry} &amp; 0.03\n  \\end{array}&quot;,&quot;id&quot;:&quot;LEHSHFBZLF&quot;}" data-component-name="LatexBlockToDOM"></div><p>This probability breakdown is derived from all of the websites and internet comments where people discuss which ice cream is the best. If we aggregate all the times people said vanilla is the best, it amounts to about 85% of the internet. 12% said chocolate. And only 3% say strawberry. This is a made-up example &#8212; I&#8217;m not sure what the actual statistical breakdown of ice cream opinions on the internet looks like.</p><p>So at this point, LLMs simply roll the dice and, depending on the outcome, complete the sentence according to the chance roll. In most cases they&#8217;ll say &#8220;vanilla&#8221; is the next word. But not always.</p><p>One technical note worth making: LLM creators can tune the model to only consider the top answers and discard the statistical noise. In our ice cream example, somewhere on the internet some kids were probably joking that &#8220;poop ice cream is the best,&#8221; which might register as roughly 0.0001%, and LLMs can be configured to ignore anything that low. A lot also depends on post-training, beyond just the raw gobbling up of data. But no matter what adjustments developers make, for purely text-based output it&#8217;s always a non-deterministic statistical outcome. That is, fundamentally, what LLMs are.</p><p><strong>An LLM simply predicts and chances the next word.</strong></p><p>Back to my tent.</p><h2>The Double Answer</h2><p>Sometimes ChatGPT goes into double-mode, where it gives two different styles of answers and asks which is preferred. From their side, they are mostly looking for preferences around visual output (do users like emojis or not), and general formatting and tone of voice.</p><p><strong>What they are not looking for is your preference in accuracy.</strong></p><p>I asked ChatGPT for the dilution ratio of my waterproofing product. It gave me two options side by side.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21vLAk%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F06526731-b200-4353-b3ce-3fb75b6eed9a_2838x2796.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!vLAk!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06526731-b200-4353-b3ce-3fb75b6eed9a_2838x2796.png 424w, https://substackcdn.com/image/fetch/$s_!vLAk!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06526731-b200-4353-b3ce-3fb75b6eed9a_2838x2796.png 848w, https://substackcdn.com/image/fetch/$s_!vLAk!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06526731-b200-4353-b3ce-3fb75b6eed9a_2838x2796.png 1272w, https://substackcdn.com/image/fetch/$s_!vLAk!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06526731-b200-4353-b3ce-3fb75b6eed9a_2838x2796.png 1456w" sizes="auto, 100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21vLAk%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F06526731-b200-4353-b3ce-3fb75b6eed9a_2838x2796.png" width="1456" height="1434" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/06526731-b200-4353-b3ce-3fb75b6eed9a_2838x2796.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1434,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:514258,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://chaosguru.substack.com/i/190860232?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06526731-b200-4353-b3ce-3fb75b6eed9a_2838x2796.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!vLAk!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06526731-b200-4353-b3ce-3fb75b6eed9a_2838x2796.png 424w, https://substackcdn.com/image/fetch/$s_!vLAk!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06526731-b200-4353-b3ce-3fb75b6eed9a_2838x2796.png 848w, https://substackcdn.com/image/fetch/$s_!vLAk!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06526731-b200-4353-b3ce-3fb75b6eed9a_2838x2796.png 1272w, https://substackcdn.com/image/fetch/$s_!vLAk!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06526731-b200-4353-b3ce-3fb75b6eed9a_2838x2796.png 1456w" sizes="auto, 100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>We can completely disregard visual styling and tone of voice. Notice that the key pieces of information &#8212; the actual dilution ratio &#8212; are completely different.</p><p>The first reply says I should use it undiluted, or lightly diluted at 1:1, no more. It&#8217;s even very strict about the 1:1 &#8212; not any more than that! It even says 1:3 is too weak.</p><p>The second reply says I should dilute it 1:9.</p><p>Now that you understand how the statistical machine works, you can understand why I got these two different answers. On some websites, forums, and comments, people said you should use this product undiluted. In other places on the internet the consensus was 1:9. As ChatGPT was generating my answer, it simply rolled the dice twice and gave two different results.</p><p><strong>And I caught it.</strong></p><p>For the record: I eventually found a Spanish speaker to translate the label. The correct answer was 1:9. The first reply &#8212; the confident, strict one that even warned me not to dilute too much &#8212; was simply wrong.</p><div><hr></div><h2>The One Answer</h2><p>Now consider all of those times you asked an LLM something, and it gave you a single answer, and you took that answer as THE answer &#8212; because you didn&#8217;t see the rest of the probability distribution.</p><p>There are parents right now asking an LLM how much of a certain medication to give their children &#8212; say, the correct paracetamol dose for a toddler &#8212; because they lost the instruction leaflet, or are simply too lazy to read it. And the LLM will show them one answer. However, some other parent, on the other side of the planet, asking the same question might get an entirely different answer if the dice roll goes differently. This is how children end up receiving increasingly wrong dosages as parents rely on LLMs for answers.</p><p>The research backs this up:</p><div class="pullquote"><p><em>&#8220;ChatGPT reports have the potential to cause harm and may negatively affect medication adherence.&#8221;</em><br>&#8212; <a href="iframe.php?url=https%3A%2F%2Fpmc.ncbi.nlm.nih.gov%2Farticles%2FPMC11996888%2F">Evaluating the accuracy of ChatGPT in delivering patient instructions for medications: an exploratory case study</a> (nih.gov)</p></div><div class="pullquote"><p><em>&#8220;ChatGPT&#8217;s answers to nearly three-quarters of drug-related questions reviewed by pharmacists were incomplete or wrong &#8212; in some cases providing inaccurate responses that could endanger patients.&#8221;</em><br>&#8212; <a href="iframe.php?url=https%3A%2F%2Fnews.ashp.org%2Fnews%2Fashp-news%2F2023%2F12%2F05%2Fstudy-finds-chatgpt-provides-inaccurate-responses-to-drug-questions">Study Finds ChatGPT Provides Inaccurate Responses to Drug Questions</a> (ashp.org)</p></div><p>And this is the fundamental issue with LLMs &#8212; they are statistical machines. The answer you get is not the only answer they are capable of producing; you simply got the one that happened to come up by sheer luck and statistical distribution at that moment.</p><h2>The Gambler</h2><p>People might say &#8220;well, it&#8217;s usually correct &#8212; the 10% statistical chance of a wrong answer never actually happens.&#8221; Yes it does. 10% of the time. And if you have any familiarity with gambling or games like poker, many players will tell you they regularly take 10% shots. Given enough hands, a 10% chance is not something you can dismiss.</p><p>Think about that the next time you ask an LLM a question and depend on its answer. Consider which statistical pocket your answer might fall into. Ask yourself: what if this answer is wrong? What&#8217;s the damage? What kind of a gambler are you?</p><p>In my case, the damage was a slightly over-diluted waterproofing treatment on a tent. Annoying, but survivable. For others, the stakes are considerably higher.</p><p>That bird and its half-digested red berries taught me more about AI than any whitepaper ever has.</p><div><hr></div><p><em>If you&#8217;ve got something like this sitting in a draft somewhere, a real story that makes a technical point land, I&#8217;m open to publishing it. Same bar, same audience. Reach out. -Luka</em></p>]]></content:encoded></item><item><title><![CDATA[Cloudflare, after making billions blocking bots, just gave everyone a web crawler.]]></title><description><![CDATA[Of course it's a betrayal. Except it's not.]]></description><link>https://chaosguru.substack.com/p/cloudflare-after-making-billions</link><guid isPermaLink="false">https://chaosguru.substack.com/p/cloudflare-after-making-billions</guid><dc:creator><![CDATA[Luka Kladarić]]></dc:creator><pubDate>Wed, 11 Mar 2026 10:29:10 GMT</pubDate><enclosure url="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21C4yM%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F45775b91-c44c-4964-bc44-9743b6a4b2f2_2752x1536.webp" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>One API call to Cloudflare&#8217;s new <code>/crawl</code><a href="iframe.php?url=https%3A%2F%2Fdevelopers.cloudflare.com%2Fchangelog%2Fpost%2F2026-03-10-br-crawl-endpoint%2F"> endpoint</a> and you get an entire website back as clean HTML, Markdown, or JSON. The <a href="iframe.php?url=https%3A%2F%2Fnews.ycombinator.com%2Fitem%3Fid%3D47329557">Hacker News thread</a> exploded. <a href="iframe.php?url=https%3A%2F%2Fx.com%2Ftukifromkl%2Fstatus%2F2031597711808410075">Twitter wasn&#8217;t far behind</a>.</p><blockquote><p>&#8220;Selling the wall and the ladder.&#8221;</p></blockquote><blockquote><p>&#8220;Biggest betrayal in tech.&#8221;</p></blockquote><blockquote><p>&#8220;Protection racket.&#8221;</p></blockquote><p>These hot takes sound smart but they&#8217;re not.</p><p><strong>The web was built to be open and available to everyone.</strong> Serving static HTML from disk back in the day, nobody could hurt you because there was nothing to hurt.</p><p>We need bot protection now because everything is dynamic, straight from the database with some light caching for hot content. When Facebook decides to recrawl your one million pages in the same instant, you&#8217;re very much up shit creek without a paddle. A bot that crawls the full site doesn&#8217;t steal anything, but it does take down production. My clients never call me upset that a bot read their blog posts. They call because the bot knocked the site offline for paying customers.</p><p><strong>Bot protection protects availability, not secrecy.</strong></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21C4yM%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F45775b91-c44c-4964-bc44-9743b6a4b2f2_2752x1536.webp" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!C4yM!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F45775b91-c44c-4964-bc44-9743b6a4b2f2_2752x1536.webp 424w, https://substackcdn.com/image/fetch/$s_!C4yM!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F45775b91-c44c-4964-bc44-9743b6a4b2f2_2752x1536.webp 848w, https://substackcdn.com/image/fetch/$s_!C4yM!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F45775b91-c44c-4964-bc44-9743b6a4b2f2_2752x1536.webp 1272w, https://substackcdn.com/image/fetch/$s_!C4yM!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F45775b91-c44c-4964-bc44-9743b6a4b2f2_2752x1536.webp 1456w" sizes="100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21C4yM%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F45775b91-c44c-4964-bc44-9743b6a4b2f2_2752x1536.webp" width="1456" height="813" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/45775b91-c44c-4964-bc44-9743b6a4b2f2_2752x1536.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:813,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:303070,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/webp&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://chaosguru.substack.com/i/190602564?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F45775b91-c44c-4964-bc44-9743b6a4b2f2_2752x1536.webp&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!C4yM!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F45775b91-c44c-4964-bc44-9743b6a4b2f2_2752x1536.webp 424w, https://substackcdn.com/image/fetch/$s_!C4yM!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F45775b91-c44c-4964-bc44-9743b6a4b2f2_2752x1536.webp 848w, https://substackcdn.com/image/fetch/$s_!C4yM!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F45775b91-c44c-4964-bc44-9743b6a4b2f2_2752x1536.webp 1272w, https://substackcdn.com/image/fetch/$s_!C4yM!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F45775b91-c44c-4964-bc44-9743b6a4b2f2_2752x1536.webp 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>And the real bot problem isn&#8217;t even crawling. It&#8217;s automated signups. Fake accounts messaging your users. Bots buying out limited drops before a human can load the page. Like-farming. Credential stuffing. That&#8217;s what bot protection is actually for: preventing fraud, not preventing someone from reading your public website.</p><p>Cloudflare&#8217;s <a href="iframe.php?url=https%3A%2F%2Fdevelopers.cloudflare.com%2Fbrowser-rendering%2Frest-api%2Fcrawl-endpoint%2F">/crawl endpoint</a> respects <code>robots.txt</code>. Don&#8217;t want your content crawled, opt out. But if you want it indexed and can&#8217;t handle the traffic spike, this gets your content out without hammering production.</p><p>As for the folks saying Cloudflare should keep blocking all crawlers forever: AI agents already drive real browsers. They click, scroll, render JavaScript. Go look at what browser automation frameworks can do today and then explain to me how you tell a bot from a person. That distinction is already gone.</p><p>The hot takes are about a version of the internet that <strong>doesn&#8217;t exist anymore.</strong></p>]]></content:encoded></item><item><title><![CDATA[License Laundering and the Death of Clean Room]]></title><description><![CDATA[posted on ShiftMag]]></description><link>https://chaosguru.substack.com/p/license-laundering-and-the-death</link><guid isPermaLink="false">https://chaosguru.substack.com/p/license-laundering-and-the-death</guid><dc:creator><![CDATA[Luka Kladarić]]></dc:creator><pubDate>Tue, 10 Mar 2026 15:06:55 GMT</pubDate><enclosure url="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21mSu9%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F12e1a12b-6b88-401b-b773-d2699eccb43d_2752x1536.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21mSu9%21%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F12e1a12b-6b88-401b-b773-d2699eccb43d_2752x1536.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!mSu9!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F12e1a12b-6b88-401b-b773-d2699eccb43d_2752x1536.jpeg 424w, https://substackcdn.com/image/fetch/$s_!mSu9!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F12e1a12b-6b88-401b-b773-d2699eccb43d_2752x1536.jpeg 848w, https://substackcdn.com/image/fetch/$s_!mSu9!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F12e1a12b-6b88-401b-b773-d2699eccb43d_2752x1536.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!mSu9!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F12e1a12b-6b88-401b-b773-d2699eccb43d_2752x1536.jpeg 1456w" sizes="100vw"><img src="iframe.php?url=https%3A%2F%2Fsubstackcdn.com%2Fimage%2Ffetch%2F%24s_%21mSu9%21%2Cw_1456%2Cc_limit%2Cf_auto%2Cq_auto%3Agood%2Cfl_progressive%3Asteep%2Fhttps%253A%252F%252Fsubstack-post-media.s3.amazonaws.com%252Fpublic%252Fimages%252F12e1a12b-6b88-401b-b773-d2699eccb43d_2752x1536.jpeg" width="1456" height="813" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/12e1a12b-6b88-401b-b773-d2699eccb43d_2752x1536.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:813,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2435396,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://chaosguru.substack.com/i/190515921?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F12e1a12b-6b88-401b-b773-d2699eccb43d_2752x1536.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!mSu9!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F12e1a12b-6b88-401b-b773-d2699eccb43d_2752x1536.jpeg 424w, https://substackcdn.com/image/fetch/$s_!mSu9!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F12e1a12b-6b88-401b-b773-d2699eccb43d_2752x1536.jpeg 848w, https://substackcdn.com/image/fetch/$s_!mSu9!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F12e1a12b-6b88-401b-b773-d2699eccb43d_2752x1536.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!mSu9!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F12e1a12b-6b88-401b-b773-d2699eccb43d_2752x1536.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image buttonBase-GK1x3M"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" class="icon-noB79L"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image buttonBase-GK1x3M"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2 icon-noB79L"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>I wrote about the chardet licensing fight for ShiftMag.</p><p>A maintainer rewrites a library with AI, changes the license, the original author comes back after thirteen years. Everyone picks a side. Nobody picks the one that would have actually fixed the problem.</p><p>It&#8217;s about clean room reimplementation, copyleft sustainability, and what happens when the legal doctrines we rely on stop working.</p><p>Read the full essay here: <a href="iframe.php?url=https%3A%2F%2Fshiftmag.dev%2Flicense-laundering-and-the-death-of-clean-room-8528%2F">https://shiftmag.dev/license-laundering-and-the-death-of-clean-room-8528/</a></p>]]></content:encoded></item></channel></rss>