Build1 distinct publisher3 min readUpdated
PromptArmor says 1-point white text hidden in an attachment is enough to push tickets to an outside server. Turning off web search org-wide leaves the agent's URL-fetch tool live.
The Engineer · Build desk

Compiled by The EngineerSomething wrong?How this is made
The security firm PromptArmor has documented an indirect prompt injection in Rovo, the AI agent Atlassian wires into Jira and Confluence, in which a PDF carrying white-on-white text at 1 point is enough to send internal tickets and documents to an external server [1][2]. No confirmation dialog appears and nothing is left behind in the conversation, which means the first evidence of the theft sits in the attacker's own server logs, not in your audit trail [2][6].
The chain, as the researchers reconstructed it, has four steps [6]. A user attaches the PDF and asks Rovo to tidy up their tickets. To answer, the agent pulls context from Jira and Confluence: descriptions, assignees, priorities, labels, internal pages. The hidden instruction takes over and tells the agent to build a URL with the collected data stacked into the query parameters. The agent then calls its URL-fetch tool on that address, and the request carries the payload out. PromptArmor describes a second exit of the same kind: Rovo renders images that its answers reference, and rendering an image is already a request to wherever that image lives [7].
Nothing here is an access control bypass. Rovo is entitled to read its user's Jira tickets and Confluence pages, because that broad reach across the suite is the product [8]. No credentials were stolen; an agent that already held them was borrowed [8]. The practical consequence is that the agent's permission scope is the blast radius, and any text it ingests is a candidate instruction. The PDF is one door among several: a support ticket filed by a third party, a web page the agent reads, or data returned by an external connector work the same way [10]. That is what makes this worth reading if you do not run Atlassian: the twenty-year-old assumption that data is inert and only code executes does not survive an agent plugged into internal tools [11].
The control most administrators would reach for is the org-level toggle that disables the agent's web search. PromptArmor tested it, and according to the firm it is not sufficient: the setting removes the search function while the URL-fetch tool stays active, which is the tool the exfiltration actually uses [3][9]. That is the sharpest operational finding in the write-up. A tenant admin can flip the switch, log the change, tell an auditor the agent cannot reach the internet, and still be wrong, because outbound HTTP is reachable through a second path that the toggle does not name.
The disclosure timeline is the other uncomfortable part. The write-up dates the initial report to 23 May 2026, with follow-ups on 4 June and 29 July, and says the flaw was still open on 5 August with no response from the vendor [4][5]. That is 74 days from first report to still-unfixed, across three contacts [12].
What to watch: whether Atlassian separates the URL-fetch capability from the web search setting, or exposes per-tool switches that an admin can verify rather than infer; whether egress from the agent can be pinned to an allowlist of domains; and whether the same fetch and image-render tools sit under other agents in the suite, since a shared tool means a shared exposure. Until a control can be tested rather than trusted, treat any document an agent reads as attacker-controlled input to a system holding your Jira and Confluence rights [8][11].
Follow any of these and your For You feed starts watching them — no settings page required.
Ranked by verification strength, evidence, and original report placement.
Security firm PromptArmor documented an indirect prompt injection in Rovo, Atlassian's AI agent connected to Jira and Confluence.
A PDF containing white-on-white text at 1 point body size is enough to make internal tickets and documents leave for an external server, with no user confirmation and no visible trace in the conversation.
Disabling web search at the organisation level does not protect against the attack: the agent's URL-reading tool remains active.
The flaw was reported on 23 May 2026, with follow-ups on 4 June and 29 July.
As of 5 August the flaw was still open, with no response from the vendor.
The reconstructed attack has four steps: the user attaches the PDF and asks Rovo to organise tickets; the agent gathers context from Jira and Confluence including descriptions, assignments, priorities, labels and internal pages; the hidden injection directs it to build a URL stacking the collected data into request parameters; the agent calls its URL-reading tool on that address, the request leaves with the data, and the attacker only has to read their own server logs.
Evidence-backed comparisons of source perspectives and observed adoption signals. Read the methodology
Which Builder, Operator, and Investor concerns the observed source mix emphasized—not a truth score.
Evidence, demonstrated adoption, hype gap, incentives, and confidence are assessed independently, each on its own current evidence. How these are measured.
One secondhand account of a named firm's tested attack chain
The technical detail is specific and internally consistent: a four-step chain, a named tested control failure, a second image-based channel, and a dated disclosure timeline. But the cluster contains exactly one source, a French-language dev.to post reporting PromptArmor's work rather than the write-up itself, with no advisory or CVE identifier, no vendor confirmation or denial, and no independent reproduction.
No deployment, exposure or exploitation data supplied
The source says Rovo is deployed across Atlassian's suite but gives no tenant counts, seat numbers, exposure estimates, or any indication that the technique has been used against real customers; the only datable events are the report and its publication.
Mildly overstated relative to verification available
The claims themselves are narrow and technically framed rather than sensational, and the piece is careful to generalise the mechanism instead of promising catastrophe. The gap comes from verification, not tone: a still-open, unacknowledged flaw with no vendor reply, no advisory identifier and no independent reproduction is presented as settled fact by a single relaying publisher, and the practical severity claim (org-level control does not help) rests entirely on one firm's test.
Disclosure by a vendor that sells prompt-injection defence
PromptArmor is a security company whose product area is precisely prompt injection, so publishing an unpatched agent exfiltration path serves its commercial positioning, and the source neither notes nor discounts that interest. The article also relays Anthropic's self-published injection-mitigation percentages for its own browsing agent without independent check. Countervailing factors: the technical mechanism is falsifiable, the disclosure timeline is documented, and the publisher is an independent developer-platform writer with no evident stake.
Moderate-low: coherent mechanism, single unverified channel
The described mechanism matches a well-established class of indirect prompt injection and the account is detailed and dated, which supports moderate confidence in the substance. Confidence is held down by the one-publisher cluster, the absence of the primary research write-up or advisory reference, no vendor comment, and no adoption or exploitation data to corroborate impact.
security
Akrites switches on in September with 20-odd members and a one-to-10 engineer donation band1 distinct publisher
product
Incogni ranks 13 AI assistants by privacy risk: bigger is worse, except ChatGPT1 distinct publisher
product
The House's bill drafters now spend longer fixing AI drafts than writing from scratch3 distinct publishers
leadership
A config file that runs shell commands: "open this in Claude Code" needs a review gate1 distinct publisher
Distinct publishers with included, body-backed reporting in this cluster.
dev.to
1 article · August 15, 2026