<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Cross-Tenant on imds.foo</title><link>https://imds.foo/tags/cross-tenant/</link><description>Recent content in Cross-Tenant on imds.foo</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Mon, 05 Oct 2026 19:36:38 +0200</lastBuildDate><atom:link href="https://imds.foo/tags/cross-tenant/index.xml" rel="self" type="application/rss+xml"/><item><title>Your DNS policy? My DNS Policy</title><link>https://imds.foo/posts/cross-tenant-dns-policy/</link><pubDate>Wed, 02 Sep 2026 00:00:00 +0000</pubDate><guid>https://imds.foo/posts/cross-tenant-dns-policy/</guid><description>&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-console" data-lang="console"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gp"&gt;#&lt;/span&gt; before&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gp"&gt;$&lt;/span&gt; dig +short probe.lab.internal&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt;192.0.2.53&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="err"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gp"&gt;#&lt;/span&gt; after&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gp"&gt;$&lt;/span&gt; dig +short probe.lab.internal&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt;blockpolicy.azuredns.invalid.&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Nothing changed inside the VNet. No NSG, no route table, no resolver, no VM configuration. The object that changed the answer lives in a different Entra tenant, and the subscription owning the VNet logged no link operation for it. Because it cannot by design.&lt;/p&gt;&#10;&lt;p&gt;This is the third part of the Azure DNS ecosystem I have put through the same test: a child resource created in tenant B that references a VNet in tenant A. A private DNS zone, you can compare it with an address book: The attack worked, no way to detec. A forwarding ruleset, you can compare it with a pipeline that determines how requests flow: Attack worked, only way to detect it is in the DNSQueryLogs if an attacker starts to manipulate the DNS flow. A DNS resolver policy, a DNS security policy, sits in front of our pipeline. It watches queries, logs and decide which queries to block. And you don&amp;rsquo;t want an attacker to decide which DNS queries get blocked. Logging is also not optimal.&lt;/p&gt;</description></item></channel></rss>