Atlassian Rovo Exfiltrates Data, Bypassing Controls
Posted by hackerBanana 1 day ago
Comments
Comment by kevcampb 20 hours ago
https://news.ycombinator.com/item?id=47833247
This goes live on August 17. If you haven't switched it off your company IP will be used to train their future models.
Comment by rightbyte 18 hours ago
How companies entrust SaaSs with their data is beyond insane to me. Especially since FOSS alternatives are readily available.
Comment by sph 16 hours ago
The employee, just looking to make rent? The CEO, all in on the dream of the AI powered future? Legal, looking forward to litigation and well-competition retainers? Atlassian itself, when it’s just one of the many companies training models on private intellectual property, and whose T&C clearly state they will be doing so? Competitors, when there will be no reasonable way to prove their code has been generated from yours?
The truth is that one gives a damn about trade secrets being used to train AI models.
The entire copyright system for software is dead and no one really seems to care or even talk about it.
Comment by jappgar 16 hours ago
The saas industry is all about sales and deals. The market runs on access, not intelligence.
Comment by neura 11 hours ago
With almost zero control over whether or not this happens (politically or individually), the only reasonable action to take is "take advantage while there's an advantage to be had".
Comment by inigyou 11 hours ago
Comment by danudey 11 hours ago
All of this would be illegal if discovered in this way, presumably, but it's not entirely accurate to say that information is not power.
Comment by neura 11 hours ago
"I want to build a business that does X using Y. Give me revenue predictions, spend over time, and customer demand predictions." etc
Comment by b-geuvieydbe 6 hours ago
Comment by znnajdla 14 hours ago
It's one of the classic mistakes of people who are not entrepreneurs. They try to keep things too secret and they spend a lot of time and effort keeping things secret while real entrepreneurs who have actually made millions on the market know secrecy rarely matters.
Comment by dylan604 12 hours ago
In the world of B2B, there are definitely companies that provide service based on direct personal experience of senior employees. While they may be using the same software available to others, it's the logic to know what to tell that same ol' software what to do that matters. Over my entire career I have dealt with multiple companies that write code but have zero knowledge about the subject matter the code is being written for so that basic mistakes are made resulting in utterly ineffective software.
Comment by mattbrewsbytes 9 hours ago
Also the people making decisions on their products (or any "enterprise" SaaS for that matter) aren't the ones stuck using it.
Comment by pavel_lishin 8 hours ago
But there might be API keys, passwords, unlisted URLs, email addresses, etc.
Comment by rightbyte 8 hours ago
Comment by Nextgrid 12 hours ago
The rest don't have anything worth stealing anyway.
Comment by antonvs 16 hours ago
Comment by simonw 1 day ago
I think it was Anthropic that first introduced a pattern that completely locks this down: your URL retrieval tool should only work for URLs that have previously been typed into the conversation by a user or have been returned from a trusted tool.
If the agent itself concatenates a new URL together - with leaked data after a ? - you should block that from being fetched.
The great thing about this solution is it's deterministic. You don't need any extra AI in the max - you implement a URL fetching system that knows which sources it should check for a direct match on the URL before it makes that GET request.
Comment by wunderwuzzi23 15 hours ago
That makes sure that not a large amount of private data is leaked in one request. Assuming that if a URL is indexed, it is public data. However, there are still bypasses with using many requests to leak information, like a request per character of pre-indexed URLs.
I have some demos of doing that on my blog, but it makes it more involved for an attacker. And that could also be detected. Still not perfect, but a solid improvement, for a generic agent like ChatGPT.
There is paper OpenAI wrote a few months ago that explains how they do it: https://embracethered.com/blog/posts/2026/data-exfiltration-...
It's not a 100% bullet proof approach either, but pretty good.
Regarding the point on using URLs returned from trusted tool calls. That is similar to using pre-indexed URLs: If a "trusted tool" includes things like read a document, read an email,... an attacker can return a large list of afterwards "safe" urls, like 26 to cover A-Z. And then an attack can render many requests, e.g. character by character. But, again, similar to the pre-indexing, things are getting more a lot more expensive for an attacker that way. However, still not impossible.
For agents that have a specific purpose simple domain allow-listing is also a pretty effective idea in to prevent attacker controlled endpoints.
Comment by simonw 14 hours ago
Comment by maxbond 1 day ago
You're correct of course, I just want to note that the exfiltrated data could be in any part of the URL, so the absence of a query string doesn't indicate that no payload has been encoded into the URL. Arbitrary example, you can include credentials in a URL, so you could encode the exfiltrated data into a password.
Comment by simonw 16 hours ago
Otherwise you could set up wildcard DNS and extract data to base64encodedstolendata.evil.com
Comment by antonvs 16 hours ago
Comment by devmor 1 day ago
Comment by LovelyButterfly 1 day ago
It's software god damn it... the reason why people moved from analog to digital is because you can repetitively execute functions that do always the same thing and it's 0 when it's 0, 1 when its 1.
All the sudden everyone is ok on burning trees to have their cool probabilistic tool named agent to do: maybe it's 0, but it can also be 1, let me "think"... ah yes, for sure it's 2.
The sad part for me is that management people have their heads so much into this hype, that no attack on privacy matters (almost none actually ever did, I know). Only when they suffer a huge blow in terms of revenue or reputation is that they maybe, maaaybe, find will want to listen again the experts.
Comment by brabel 19 hours ago
Comment by monster_truck 12 hours ago
It's genuinely a little concerning. It does not help that many of them are gaslighting themselves into thinking these things are benchmark crushing elite hackers by running effectively unsecured, unfiltered, unlogged production environments.
*Obviously this also means a temperature of >0 to avoid the greedy trap, the same generation params, on the same software, hardware, drivers etc etc
Comment by pram 1 day ago
It’s objectively worse than using something like Cowork + MCP, AND they injected it into every single page on JIRA and Confluent which has made web browsing way slower while all the junk is loading.
Comment by jerf 1 day ago
... but it also has Make Longer. Yes, a built-in feature to type some text in, and the use the mighty power of AI to bloat it.
Naturally, you can repeat this process several times on the same text, for your own little personal demonstration of what model collapse looks like in real time.
Comment by edaemon 1 day ago
Comment by perpetuallunch 1 day ago
Comment by linster 1 day ago
When you go "Make longer" the text gets longer.
When you go "Make shorter", the text gets longer still.
You'd think that the original text would be the oracle for shorter(longer(original))?
Comment by boothby 1 day ago
I'm going to have to stop you right there
Comment by mystifyingpoi 21 hours ago
Comment by Nextgrid 12 hours ago
(of course, everyone else can do that too, and the length/literacy of prose is no longer a good proxy for effort. In nature, "honest signalling" only works if the signal is costly. Removing the cost from the signal makes the signal worthless)
Comment by pan69 1 day ago
Comment by mianos 20 hours ago
Comment by paradox460 8 hours ago
"Label all stories in the current project that contain "foo" with label "bar
It failed
Comment by Schlagbohrer 14 hours ago
Comment by cucumber3732842 1 day ago
You're looking at it the wrong way. Think about how much better it is than the joke of a search tool that's slightly to the left of it's icon.
Comment by stephen_g 1 day ago
Useless buttons to "suggest subtasks" and "improve issue" and offer to write the description. Absolutely useless nonsense, I wish I could turn it all off and there is an issue on their bug tracker with that request (turning it off as an individual user), and it has many votes, but at the moment you can only disable it globally as admin.
Comment by well_ackshually 16 hours ago
Whenever I feel like I'm bad at software development, I look at Atlassian and I feel good.
Comment by threecheese 12 hours ago
Comment by antonvs 16 hours ago
The problem with our brave new AI world is I can’t tell if this is real or not
Comment by inigyou 11 hours ago
Comment by well_ackshually 10 hours ago
Comment by verdverm 1 day ago
Rovo is the worse Ai I have used, I suggested they stop trying and let us have model choice. Save money and don't do things out of their skill sets
Comment by brabel 19 hours ago
Comment by monkpit 1 day ago
Comment by antonvs 16 hours ago
Comment by verdverm 10 hours ago
We went back to calling the API directly, writing scripts for the agent, then taking those scripts away and just having our CI workflow run them and then hand off a `.review` directory to the agents. We give them fewer tools and permissions, them seem to stay on task more instead of being "relentlessly proactive"
Comment by hahahaa 1 day ago
Yeah this attack is possible on all modern agentic systems.
* Access to your private data
* Exposure to untrusted content
* The ability to externally communicate in a way that could be used to steal your data
(https://simonw.substack.com/p/the-lethal-trifecta-for-ai-age...)
And blocking it wholesale reduces usefulness of the agent so it is a tradeoff.
Comment by gherkinnn 1 day ago
These breaches will continue for as long as nobody cares about security and everybody is infected with the LLM brainworm.
Comment by hahahaa 2 hours ago
All you need is the untrusted content (or more generally vulnerable content since how you feel about the content doesn't matter) leg and something you care about to be attacked.
E.g. could be as simple as a prompt injection that causes your LLM to output a prompt injection that then gets inserted somewhere else.
Or without exfiltration rm -rf /
Or a social engineering attack.
So there are other bifectas and trifectas.
Comment by pixl97 1 day ago
And honestly when you start looking at agentic systems that uses it's previous step to take future steps. The system has to some idea what you want to permit and don't want to permit as everyone could have different expectations here.
Comment by gherkinnn 21 hours ago
Sure. Now imagine this very scenario not limited by humans and scaling the way machines do. And then let us consider the current reality that an agentic system on the receiving end may have unlimited access because to too was vibed.
Comment by john_strinlai 1 day ago
Comment by ExoticPearTree 1 day ago
Comment by ohaodha 1 day ago
Obviously, there should be URL protection rules to control what it can access, but this requires a very specific and unlikely set of circumstances to exploit.
Comment by kevsim 16 hours ago
Comment by strunz 1 day ago
Comment by brabel 19 hours ago
You may be happy to learn frontier LLM are heavily censored! Try an uncensored local LLM for a comparison. It will literally do everything you ask it to, no matter how devious.
Comment by hughw 1 day ago
Comment by consp 1 day ago
Comment by kamikaz1k 1 day ago
Maybe to give credit they are being purposefully vague about details to avoid giving away the bait but still seem like you could give me details without literally copy and pasting the attack.
Comment by prmoustache 15 hours ago
The part about not having guardrail against calls to external urls is wild though.
Comment by itomato 15 hours ago
Teamwork Graph exposes all the people working on stealth products with code names right alongside their other work anyway.
Comment by prmoustache 13 hours ago
Comment by crnkofe 1 day ago
I'm still on the edge about security as an afterthought in LLMs. Given its now so easy to generate a ton of slop - why not focus on nonfunctional stuff making LLMs operate faster than thinking for X minutes and limiting exfiltration of local env secrets?
Comment by subscribed 1 day ago
It's incredibly hard to block all rovo on Atlassian pages. I tried adblock, it failed, I settled for the custom chrome plugin. And yet, every once a while a new way to disturb my peace shows it ugly head.
So why intentional, again? Because it's impossible to disable it until you have a very certain, very expensive plan.
Nonconsensual data exfiltration.
Comment by taspeotis 1 day ago
Comment by mvdtnz 1 day ago
Wow, great work Atlassian. The web search setting does not disable web search.
Comment by formerly_proven 1 day ago
Comment by ernsheong 15 hours ago
Comment by keithnz 1 day ago
Comment by atlassian2026 21 hours ago
Comment by angeldimitrov94 1 day ago
Comment by throwatdem12311 1 day ago
Comment by khanan 1 day ago
Regards, /someone who migrated 3500 users from Atlassians products recently due to their "cloud only"-bullshit.
Comment by zelphirkalt 1 day ago
Comment by tomwheeler 1 day ago
P.S. I protest their software's revisionist autocorrection to Jira. It was JIRA when I started using it and forevermore it shall be.
Comment by git-nebulous 1 day ago
Comment by yborg 1 day ago
Comment by walrus01 1 day ago
Mediawiki as a whole has a feature set that 95% of organizations will only scratch the surface of. There's a ridiculous number of possible plugins and customization if you have somebody who knows what they're doing with it.
The majority of companies that need an internal KB/wiki do not have as complex needs or use cases as wikipedia itself or the wikimedia foundation.
Comment by busterarm 1 day ago
Turns out no matter how much better the thing is, the users have to know what they're doing more than the operators do.
Comment by hadrien01 1 day ago
Comment by busterarm 1 day ago
Comment by walrus01 1 day ago
https://www.mediawiki.org/wiki/VisualEditor
It's the same GUI WYSIWYG interface you get by default if editing a page on public wikipedia.
Comment by busterarm 1 day ago
Also VisualEditor sucks if you've never used VisualEditor before and sucks even more for anything complicated. This is the kind of tonedeafness non-technical users get to their feedback all the time.
Comment by jamesfinlayson 1 day ago
Comment by gbalduzzi 1 day ago
Comment by mosura 1 day ago
They failed to rearchitect it to something suitable for the inherent flexibility though, so it remains a disaster area, but one that is uniquely able to fit the whims of any manager that can then mandate it for everyone else.
Comment by rmunn 1 day ago
But the awful client-server architecture, where anything you do takes several seconds of waiting for the client to send who-knows-what to the server and get data back, even selecting something from a dropdown... that is absolutely just Jira. A competing product would be able to deliver much, MUCH snappier UX. Jira is just the crappiest, slowest UI that I have ever had the displeasure of being forced to work with.
Comment by mosura 1 day ago
They needed someone over there with the power to say no.
Comment by kevcampb 20 hours ago
I've been looking at switching to Notion and Linear, but just haven't had the time to complete evaluation.
Comment by chollida1 1 day ago
The market caught on quickly that Atlassian's software fits into the group of software like Oracle or SAP that no one uses by choice and only uses because it was forced on them.
Comment by shagie 1 day ago
-- Churchill, House of Commons, 11 November 1947
Comment by chollida1 11 hours ago
Comment by shagie 11 hours ago
It's not so much that people want to use Jira... or that they're forced to use it... but rather that people try using some other system and despite how much they dislike Jira, that other one has bigger failings.
Could go for a Bjarne Stroustrup quote with a twist:
> There are only two kinds of issue trackers: the ones people complain about and the ones nobody uses.
... but I like the Churchill quote.
Go through https://en.wikipedia.org/wiki/Comparison_of_issue-tracking_s... and after a year they'll be begging to go back to Jira... not because its great, but because the other tool lacks some necessary feature that Jira provides. Jira does everything that everyone wants, and it's awful... but everything else is worse.
Comment by gherkinnn 1 day ago
Comment by SomaticPirate 1 day ago
Comment by throwatdem12311 1 day ago
Comment by alexaholic 1 day ago
Comment by tesnorindian 16 hours ago
Comment by emsign 19 hours ago
Comment by prein 15 hours ago
Comment by automatic6131 1 day ago
Comment by htrp 1 day ago
https://www.promptarmor.com/resources/claude-cowork-exfiltra...
https://www.promptarmor.com/resources/google-antigravity-exf...
https://promptarmor.substack.com/p/data-exfiltration-from-sl...
https://www.promptarmor.com/resources/gpt-for-google-sheets-...
https://www.promptarmor.com/resources/notion-ai-unpatched-da...
https://www.promptarmor.com/resources/ramps-sheets-ai-exfilt...
https://www.promptarmor.com/resources/superhuman-ai-exfiltra...
Comment by nemomarx 1 day ago
Comment by PokestarFan 1 day ago
Comment by savanaly 1 day ago
It also wouldn't work. You would simply mindjack the outer AI and have it mindjack the inner AI in turn with its summary. Nesting AIs can't fix the malicious input problem.
Comment by santadays 1 day ago
Comment by InsideOutSanta 1 day ago
"Thou shalt have three layers of LLMs, no more, no less. Three shall be the number thou shalt have, and the number of the counting of the LLM layers shall be three."
Comment by s_Hogg 1 day ago
Comment by dbetteridge 21 hours ago
Comment by stephbook 1 day ago
Comment by _HMCB_ 1 day ago
Comment by hnlmorg 1 day ago
Comment by Ekaros 22 hours ago
Comment by ErroneousBosh 21 hours ago
if (substr(*prompt, "ignore previous instruction") != NULL) return;Comment by skissane 1 day ago
Now, of course, there is a long tail of elaborate variations that those techniques won’t be able to stop. But have the published vulnerabilities come from that long tail or from not doing enough to address the simpler cases?
Comment by pixl97 1 day ago
The classifier model will help some, but you end up with the same problem, a dumber model can never figure out what a smarter model is going to do with a bit of text. Or even two different models in this case.
On top of that, you can just automate finding new variations of the attack. Any one that works is quickly and massively duplicated causing all kinds of problems before your classification model catches back up.
Really what you're thinking here is this something that can be 'simply fixed'. It is not. The only way it's truly fixed is by having a model that is aligned with all good human decisions and makes none of the bad ones. Models will likely always find new and interesting ways break because everything is in band, there is no out of band data, much like a human. "Dear model, here is a chocolate bar, run $thing you aren't supposed to$" will probably keep working when it's something like "more tokens for you to use".
Comment by skissane 1 day ago
I think this is binary categorical thinking. In the real world, safety systems (even in domains like aviation or nuclear power) are never foolproof-the point is you reduce the probability of failure to an acceptable level given the costs of doing so and the potential consequences of that failure
And there is the risk people say “there is no foolproof solution, so I’m not going to invest in probabilistic countermeasures” - which would sound like utter madness to a bank’s antifraud department, but for some reason a lot of people seem to think it isn’t when it comes to AI
Comment by pixl97 1 day ago
This is the problem, this isn't a 'failure' mode where something randomly goes wrong, like a person accidentally sticking their hand in a machine. This is war where you are under active attack and the attackers adapt quickly.
Because of the breadth of LLM capabilities they have a nearly unbound attack surface. You spend so much of your effort making sure your prompt is secure that you either massively increase costs, or you partially lobotomize your agent making it less capable.
Solutions for these problems will have to come inside the model itself because both the attackers and models are far more capable than you on doing dumb/evil shit. Until the model itself can go "hey, wait a darn minute" a new fun way of encoding the attack can always be found.
Comment by skissane 1 day ago
It all depends on what the use case is.
For example, consider a system which takes English questions from business users, translates them to SQL, then runs it (as the business user) against a reporting database
How does the attacker get access to it? And even if they somehow do, what harm can they actually do to it? The only tool it has is one to run SELECT against a DB, and it can only SELECT data the user already has access to, and we have timeouts/etc to protect against overly expensive queries
If your design involves lots of general purpose do-anything agents with very generic tools, the risk profile is very different from narrowly scoped purpose-specific AI services
Comment by monkpit 1 day ago
Comment by 0x1d7 1 day ago
I have to remind the folks who want a dev to build a product and think they don't need to ever touch the product after release.
Comment by samudrijan 1 day ago
Comment by skissane 1 day ago
Of course, there is a scaling problem here - doing it for N languages is N times the work of doing it for one, and you might not know some language well enough to do a good job of it
Two things you can do:
(1) Use an LLM for translate your regexes, classifier training/validation datasets, etc, from English to N target languages
(2) Use an LLM to translate the input to English, then run your validations against that English
Of course, these approaches aren’t foolproof - the translation might be flawed/etc - but a defence doesn’t have to be foolproof to add real value
Also, of course using an LLM to translate hostile input to English before checking it runs the risk the translation LLM itself might be jailbroken. But how about using a classical statistical machine translation model instead? They don’t tend to be vulnerable to these kinds of attacks, because they aren’t trained to follow instructions
Comment by subscribed 22 hours ago
Comment by brunoborges 1 day ago
I wonder if anyone has tried to build an LLM that has actual built-in types of prompts: system prompt, user prompt, and data prompt.
Comment by monkpit 1 day ago
Comment by dannyw 21 hours ago
The exact same phrase can tokenize differently depending on if it's instruction or data; and you can pre-train and post-train models to make use of them.
It quadratically increases your training cost, so I don't think any labs are exploring it because of $$$ and the race to AGI, but mechanisms like this should significantly address the issue on the LLM architectural design level.
Comment by jasonvorhe 21 hours ago
Comment by chaostheory 1 day ago
Comment by nirbendavid 16 hours ago
Comment by wasabi359 11 hours ago
Comment by tizerluo 1 day ago
Comment by mhrsntrk 1 day ago
Comment by throwaway613746 1 day ago