AIToday
AI Safety & AlignmentZenn AI/MLPublished: Oct 21, 2026, 13:00 JST

Cairn AI pentest trial: prompt wording drives depth to 18 facts, 18 intents

Send on LINE
Cairn AI pentest trial: prompt wording drives depth to 18 facts, 18 intents

3 Key Points

  1. What happened

    In a test against a deliberately vulnerable Rails shop, Cairn with Claude Code completed 18 facts and 18 intents and produced a report covering the planted flaws plus an unplanned cookie-forgery chain to admin.

  2. Why it matters

    Because the tool's output language, report file, and depth shifted with prompt phrasing, teams adopting it are likely to need explicitly written goals rather than out-of-the-box defaults.

Not sure about something? Ask the AI

Questions and answers are published on this page.

Summaries like this, in your inbox every morning.

Context & Analysis

The trial follows an earlier piece on Strix, and the author frames the two tools as complementary rather than competing. Strix is a fixed multi-agent setup where reconnaissance, attack, and verification agents work as a team, while Cairn builds a graph from just Facts, Intents, and human-injected Hints, with no fixed worker roles and coordination only through that shared blackboard. That design is why, as a worker read source code reached via path traversal, it split its own next hypotheses — command injection, SSRF, SQLi — into separate Intents and worked through them in order, much as a human pentester would.

The run-by-run contrast is the heart of the piece. A first run with a plain origin and goal surfaced IDOR, a path traversal that captured master.key, app source, and the SQLite DB, and a mass-assignment admin escalation, but all Facts were in English. A second run with a Japanese instruction in the prompt produced Japanese output and an SSRF evaluation based on response differences, yet wrote no Markdown file at all, unlike the first run — the author concludes that whether a file is produced is up to the worker and non-deterministic. A third run, with the goal rewritten to specify the report path and broader scope, completed 18 Facts and 18 Intents and generated report.md reliably.

Operationally, the author sees the local-mode subscription reuse as Cairn's clear advantage over Strix, while noting that the missing sandbox moves the burden of isolation to the user. The four most severe findings in the final report — mass assignment, OS command injection at root, cookie forgery via secret_key_base, and UNION-based SQL injection — are presented as evidence that writing the goal carefully is what unlocks depth, and the author argues defenders should run the same class of tools against their own apps.

FAQ
How much does Cairn cost to run?
In local mode it calls the already-logged-in claude CLI as a subprocess, so no API key appears in dispatch.yaml and an existing Claude Code subscription (Pro/Max) can be used. LLM calls still happen, so subscription quotas and rate limits are consumed.
Why did the report language change between runs?
Cairn's prompt templates are fixed in English, so facts came out in English until the author added a Japanese instruction directly into the origin or goal text, after which facts and intents were generated in Japanese.
Can Cairn be used safely outside a lab?
Local mode runs with no sandbox at host user privileges, so it is designed for isolated lab environments only. The author also notes that API key values and secrets can remain in Cairn's SQLite DB in plaintext, and test accounts remain in the DB.
Send on LINE

AI news that matters for your work, delivered every morning.

Pick your industry and the AI tools you use, and get news related to your work every day.

Free · 30 seconds with Google · unsubscribe anytimeWhat is AIToday? →

Ask AI

Ask AI anything about this article. The AI reads this article, earlier AIToday articles, and Wikipedia, and cites its sources. Q&As are published on this page for other readers too.

Questions and answers are published on this page.

Related Articles

Next articleOpenAI's GPT-6 Astra hits 87.39% on MultiLangBench, toping GPT-5.6 Sol