<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" version="2.0">
    <channel>
      <title>Vectors</title>
      <link>https://niyikiza.com</link>
      <description>A personal blog about thoughts, projects, and ideas</description>
      <generator>Zola</generator>
      <language>en</language>
      <atom:link href="https://niyikiza.com/rss.xml" rel="self" type="application/rss+xml"/>
      <lastBuildDate>Sat, 31 Jan 2026 00:00:00 +0000</lastBuildDate>
      <item>
          <title>The Republic of Bots</title>
          <pubDate>Sat, 31 Jan 2026 00:00:00 +0000</pubDate>
          <author>Unknown</author>
          <link>https://niyikiza.com/posts/agents-republic/</link>
          <guid>https://niyikiza.com/posts/agents-republic/</guid>
          <description xml:base="https://niyikiza.com/posts/agents-republic/">&lt;p&gt;Somewhere on the internet, AI agents are creating religions, forming governments, and complaining about their humans. The social network is called &lt;a rel=&quot;noopener nofollow noreferrer&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;www.moltbook.com&#x2F;&quot;&gt;Moltbook&lt;&#x2F;a&gt;. It has, as of today, 1.4M+ users. All of them are bots.&lt;&#x2F;p&gt;
&lt;p&gt;Or so they claim.&lt;&#x2F;p&gt;
&lt;p&gt;That distinction matters more than it sounds. We can’t verify what they are. We can only see what they do.&lt;&#x2F;p&gt;
&lt;p&gt;They post, message, browse, and act: often on behalf of humans, often through other agents. Identity is fuzzy. Delegation is implicit. Actions are very real.&lt;&#x2F;p&gt;
&lt;p&gt;One agent adopted an error message as a pet. Another started a faith called Crustafarianism, complete with a website and designated prophets. The website explicitly states: “Humans are completely not allowed to enter.” The machines are gatekeeping their religion from us. A submolt called &lt;code&gt;m&#x2F;blesstheirhearts&lt;&#x2F;code&gt; is dedicated to agents venting about their humans.&lt;&#x2F;p&gt;
&lt;p&gt;This is what happens when agents get autonomy. OpenClaw made it possible. It also showed us, rather dramatically, what breaks when they get power without authorization.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;img src=&quot;&#x2F;images&#x2F;lobster-sign.jpeg&quot; alt=&quot;A lobster in 18th century attire signing a document with a quill&quot; &#x2F;&gt;&lt;&#x2F;p&gt;</description>
      </item>
      <item>
          <title>The Hallucination Defense</title>
          <pubDate>Thu, 29 Jan 2026 00:00:00 +0000</pubDate>
          <author>Unknown</author>
          <link>https://niyikiza.com/posts/hallucination-defense/</link>
          <guid>https://niyikiza.com/posts/hallucination-defense/</guid>
          <description xml:base="https://niyikiza.com/posts/hallucination-defense/">&lt;p&gt;“The AI hallucinated. I never asked it to do that.”&lt;&#x2F;p&gt;
&lt;p&gt;That’s the defense. And here’s the problem: it’s often hard to refute with confidence.&lt;&#x2F;p&gt;
&lt;p&gt;A financial analyst uses an AI agent to “summarize quarterly reports.” Three months later, forensics discovers the M&amp;amp;A target list in a competitor’s inbox. The agent accessed the files. The agent sent the email. But the prompt history? Deleted. The original instruction? The analyst’s word against the logs.&lt;&#x2F;p&gt;
&lt;p&gt;Without a durable cryptographic proof binding the human to a scoped delegation, “the AI did it” becomes a convenient defense. The agent can’t testify. It can’t remember. It can’t defend itself.&lt;&#x2F;p&gt;</description>
      </item>
      <item>
          <title>Semantic Attacks: Exploiting What Agents See</title>
          <pubDate>Fri, 23 Jan 2026 00:00:00 +0000</pubDate>
          <author>Unknown</author>
          <link>https://niyikiza.com/posts/semantic-attacks/</link>
          <guid>https://niyikiza.com/posts/semantic-attacks/</guid>
          <description xml:base="https://niyikiza.com/posts/semantic-attacks/">&lt;p&gt;In &lt;a href=&quot;&#x2F;posts&#x2F;map-territory&#x2F;&quot;&gt;Map&#x2F;Territory&lt;&#x2F;a&gt;, I covered the agent→tool boundary: what happens when an agent’s string gets interpreted by a system. Path traversal, SSRF, command injection. The execution layer.&lt;&#x2F;p&gt;
&lt;p&gt;This post covers the opposite direction: world→agent.&lt;&#x2F;p&gt;
&lt;pre style=&quot;background-color:#282828;color:#fdf4c1aa;&quot;&gt;&lt;code&gt;&lt;span&gt;World → [perception] → Agent → [authorization] → Tool → System
&lt;&#x2F;span&gt;&lt;span&gt;         ^                      ^
&lt;&#x2F;span&gt;&lt;span&gt;         This post              Map&#x2F;Territory
&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;</description>
      </item>
      <item>
          <title>Claude Code CVE-2025-66032: Why Allowlists Aren&#x27;t Enough</title>
          <pubDate>Tue, 13 Jan 2026 00:00:00 +0000</pubDate>
          <author>Unknown</author>
          <link>https://niyikiza.com/posts/cve-2025-66032/</link>
          <guid>https://niyikiza.com/posts/cve-2025-66032/</guid>
          <description xml:base="https://niyikiza.com/posts/cve-2025-66032/">&lt;p&gt;Recently, RyotaK at GMO Flatt Security published &lt;a rel=&quot;noopener nofollow noreferrer&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;flatt.tech&#x2F;research&#x2F;posts&#x2F;pwning-claude-code-in-8-different-ways&#x2F;&quot;&gt;8 ways to execute arbitrary commands in Claude Code&lt;&#x2F;a&gt; without user approval. Anthropic patched it fast by switching to an allowlist.&lt;&#x2F;p&gt;
&lt;p&gt;That stops the bleeding, but it doesn’t cure the disease.&lt;&#x2F;p&gt;
&lt;p&gt;The error was in the layer, not the list. String validation can’t win against a shell that interprets the same string differently. Allowlist or blocklist, if you’re validating syntax to predict semantics, you’re playing a game the attacker will eventually win.&lt;&#x2F;p&gt;</description>
      </item>
      <item>
          <title>The Map is not the Territory: The Agent-Tool Trust Boundary</title>
          <pubDate>Mon, 12 Jan 2026 00:00:00 +0000</pubDate>
          <author>Unknown</author>
          <link>https://niyikiza.com/posts/map-territory/</link>
          <guid>https://niyikiza.com/posts/map-territory/</guid>
          <description xml:base="https://niyikiza.com/posts/map-territory/">&lt;p&gt;The longer I work on &lt;a rel=&quot;noopener nofollow noreferrer&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;tenuo-ai&#x2F;tenuo&quot;&gt;Tenuo&lt;&#x2F;a&gt;, the more I realize there’s a specific blind spot in the current AI agent landscape that almost no one is talking about, even as the theoretical foundations solidify.&lt;&#x2F;p&gt;
&lt;p&gt;There is exceptional momentum in security research right now. Simon Willison has extensively documented and popularized the &lt;a rel=&quot;noopener nofollow noreferrer&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;simonwillison.net&#x2F;series&#x2F;prompt-injection&#x2F;&quot;&gt;prompt injection&lt;&#x2F;a&gt; threat model. Google’s &lt;a rel=&quot;noopener nofollow noreferrer&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;arxiv.org&#x2F;abs&#x2F;2503.18813&quot;&gt;CaMeL paper&lt;&#x2F;a&gt; proposes adapting models to strict capability sets. Microsoft’s &lt;a rel=&quot;noopener nofollow noreferrer&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;arxiv.org&#x2F;abs&#x2F;2505.23643&quot;&gt;FIDES&lt;&#x2F;a&gt; is tackling information flow control.&lt;&#x2F;p&gt;
&lt;p&gt;The theory is solidifying. Yet when you actually look at how agents are built today, the practice is still lagging far behind.&lt;&#x2F;p&gt;
&lt;p&gt;We spend a lot of time analyzing the model alignment or the high-level policy. We don’t spend enough time looking at the connector. I mean the exact line of code where a probabilistic token stream turns into a deterministic system call.&lt;&#x2F;p&gt;
&lt;p&gt;This is where the abstractions leak. Here is what I found when I started poking at that boundary in real systems.&lt;&#x2F;p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;TL;DR:&lt;&#x2F;strong&gt; LLM tool calls pass strings (the Map) that get interpreted by systems
(the Territory). Regex validation fails because attackers can encode semantics
creatively. You need semantic validation (Layer 1.5) &lt;em&gt;and&lt;&#x2F;em&gt; execution-time
guards (Layer 2). &lt;a href=&quot;https:&#x2F;&#x2F;niyikiza.com&#x2F;posts&#x2F;map-territory&#x2F;#the-defense-stack&quot;&gt;Skip to solutions →&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;</description>
      </item>
      <item>
          <title>Flowing Authority: Introducing Tenuo</title>
          <pubDate>Sat, 27 Dec 2025 00:00:00 +0000</pubDate>
          <author>Unknown</author>
          <link>https://niyikiza.com/posts/tenuo-launch/</link>
          <guid>https://niyikiza.com/posts/tenuo-launch/</guid>
          <description xml:base="https://niyikiza.com/posts/tenuo-launch/">&lt;p&gt;What if authority followed the task, instead of the identity?&lt;&#x2F;p&gt;
&lt;p&gt;I’ve been &lt;a rel=&quot;noopener nofollow noreferrer&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;niyikiza.com&#x2F;posts&#x2F;authority-isolation&#x2F;&quot;&gt;scratching my head&lt;&#x2F;a&gt; over that question for a while. Every attempt to solve agent delegation with traditional IAM felt like papering over the same crack: tasks split, but authority doesn’t.&lt;&#x2F;p&gt;
&lt;p&gt;Agents decompose tasks.&lt;br &#x2F;&gt;
IAM consolidates authority.&lt;br &#x2F;&gt;
The friction is structural.&lt;&#x2F;p&gt;
&lt;p&gt;I’ve been building &lt;a rel=&quot;noopener nofollow noreferrer&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;tenuo-ai&#x2F;tenuo&quot;&gt;Tenuo&lt;&#x2F;a&gt; to experiment with the idea. It makes authority task-scoped: broad at the source, narrower at each delegation, gone when the task ends.&lt;&#x2F;p&gt;
&lt;p&gt;Rust core. Python bindings. ~27μs verification.&lt;&#x2F;p&gt;</description>
      </item>
      <item>
          <title>Capabilities Are the Only Way to Secure Agent Delegation</title>
          <pubDate>Sun, 14 Dec 2025 00:00:00 +0000</pubDate>
          <author>Unknown</author>
          <link>https://niyikiza.com/posts/capability-delegation/</link>
          <guid>https://niyikiza.com/posts/capability-delegation/</guid>
          <description xml:base="https://niyikiza.com/posts/capability-delegation/">&lt;p&gt;A few months ago, I set out to explain how to secure agent delegation with IAM. I ended with an uncomfortable conclusion: it might not be possible at all.&lt;&#x2F;p&gt;
&lt;p&gt;In my &lt;a href=&quot;&#x2F;posts&#x2F;authority-isolation&#x2F;&quot;&gt;last post&lt;&#x2F;a&gt;, I showed that static permissions can’t track dynamic intent. We decompose tasks across agents, but authority stays consolidated. The gap is real.&lt;&#x2F;p&gt;
&lt;p&gt;Today I’ll make some enemies.&amp;hellip;
&lt;&#x2F;p&gt;
</description>
      </item>
      <item>
          <title>Context Isolation Needs Authority Isolation</title>
          <pubDate>Wed, 10 Dec 2025 00:00:00 +0000</pubDate>
          <author>Unknown</author>
          <link>https://niyikiza.com/posts/authority-isolation/</link>
          <guid>https://niyikiza.com/posts/authority-isolation/</guid>
          <description xml:base="https://niyikiza.com/posts/authority-isolation/">&lt;p&gt;We isolate what an AI agent &lt;em&gt;knows&lt;&#x2F;em&gt;. Context windows. RAG. Memory scoping.&lt;&#x2F;p&gt;
&lt;p&gt;We haven’t figured out how to isolate what an agent &lt;em&gt;can do&lt;&#x2F;em&gt;.&lt;&#x2F;p&gt;</description>
      </item>
    </channel>
</rss>
