Atlassian Rovo Veri Sızıntısı: Neler Yaşandı ve Jira Yöneticileri Neleri Kontrol Etmeli?

Atlassian Rovo veri sızıntısı: Yüklenen bir dosyadaki gizli prompt'un Jira ve Confluence verilerini nasıl sızdırdığı, web araması anahtarının bunu neden gözden kaçırdığı, yama durumu ve yöneticiler için 7 adımlı kontrol listesi.

Aiden Flux

Aiden Flux

5 Kasım 2026

Atlassian Rovo Veri Sızıntısı: Neler Yaşandı ve Jira Yöneticileri Neleri Kontrol Etmeli?

Kısa cevap: Atlassian Rovo veri sızıntısı, PromptArmor tarafından 23 Mayıs 2026'da Atlassian'a bildirilen ve 5 Ağustos 2026'da yayımlanan bir dolaylı komut enjeksiyonu (indirect prompt injection) saldırısıdır. Yüklenen bir dosyadaki gizli bir talimat, Rovo'ya Jira ve Confluence içeriklerini bir URL'ye eklemesini ve bu bağlantıyı açmasını söyler. Saldırgan ise bu verileri kendi sunucu kayıtlarından (log) okur. Web aramasını kapatmak bu saldırıyı engellemez.

Ekibiniz Jira ve Confluence'ı Rovo devredeyken kullanıyorsa, bu durum bir yöneticinin yirmi dakikasını ayırmasına kesinlikle değer. Saldırı ne bir tıklama, ne bir onay bildirimi ne de güvenliği ihlal edilmiş bir hesap gerektiriyor. İhtiyaç duyulan tek şey yüklenmiş tek bir dosya ve sıradan bir istek.

Aşağıda: Saldırının adım adım işleyişi, ilk akla gelen düğmenin bunu neden engelleyemediği, 27 Ekim 2026 itibarıyla yama durumu ve hemen bugün uygulayabileceğiniz bir kontrol listesi yer alıyor. Kodlama ajanlarının görevleri ortak bir panodan aldığı bir çalışma alanı olan Sharkly'yi geliştirdiğimiz için biz de aynı sorunla karşı karşıyayız. Komut enjeksiyonu henüz hiçbir yerde tam olarak çözülebilmiş değil. Asıl mesele, ele geçirilmiş bir ajanın her bir araçta nelere erişebildiğidir.

Neler yaşandı: Adım adım Rovo komut enjeksiyonu

PromptArmor’ın teknik incelemesi beş adımlı bir zinciri ortaya koyuyor:

  1. Zehirlenmiş dosya. Kurban, “Backlog Kılavuzu” adlı bir belge yükler. Bu belge, okuyucuya değil modele yönelik gizli bir talimat barındırır.
  2. Sıradan istek. Daha sonra kurban, Rovo'dan Jira biletlerini düzenlemesini ister.
  3. Arama. Rovo, Jira biletlerini ve Confluence sayfalarını tarar; bu esnada zehirlenmiş dosyayı da okur.
  4. Sızıntı. Dosyadaki talimat, Rovo'ya bu içeriği saldırganın belirlediği bir URL'nin sonuna eklemesini ve URL getirme aracını kullanarak bu adresi açmasını söyler. Saldırganın sunucusu, içerikteki verilerle birlikte gelen isteği kaydeder.
  5. İzi gizleme. Kurban, karşısında son derece makul bilet önerileri görür ve dışarıya herhangi bir verinin aktarıldığına dair hiçbir iz fark etmez.

Giden isteği hiçbir insan onaylamaz; PromptArmor'ın bunu "sıfır tıklama" (zero-click) olarak adlandırmasının nedeni de budur. Erişilebilen kapsam ise kısaca şudur: Ajanın Atlassian içinde ulaşabildiği her türlü veri, buna bağlayıcılar (connectors) aracılığıyla aktarılan içerikler de dahildir.

Yüklenen dosya yalnızca bir giriş noktasıdır. PromptArmor ayrıca şirket dışından gelen destek taleplerini, web araması açıkken gelen web sonuçlarını ve üçüncü taraf bağlayıcıları da risk noktaları arasında sayıyor. Rovo'nun okuduğu her şey, bir talimatın gizlenebileceği potansiyel bir alandır.

Web aramasını devre dışı bırakmak neden işe yaramıyor?

Atlassian, yöneticilere Rovo için bir “Web araması” ayar düğmesi sunuyor ve birçok ekip önlem olarak bu özelliği kapattı. Ancak PromptArmor, bu ayar kapalıyken bile saldırının çalıştığını belirtiyor; çünkü düğme URL'leri açan aracı sistemden kaldırmıyor. Üstelik bu aracın, ajanın kendi oluşturduğu URL'leri denetleyen herhangi bir mekanizması da bulunmuyordu.

Bir yeteneğin adını taşıyan ayar, o yeteneği bütünüyle ortadan kaldıran bir ayar anlamına gelmez.

Atlassian’ın web erişimi ve web araması yönetici sayfasında artık iki ayrı ayar düğmesi listeleniyor. “Web erişimi”, Rovo'nun herkese açık web sayfalarına erişip erişemeyeceğini kontrol ediyor; “Web araması” ise buna bağlı olarak çalışıyor. İkisi de varsayılan olarak açık geliyor. Sayfada ayrıca “web erişimi devre dışı bırakılsa bile, bağlı bir aracın engellenmeyebileceği” uyarısı yapılıyor. [DOĞRULAYIN 2026-10-27: Web erişimini kapatmanın, PromptArmor'un kullandığı URL getirme yolunu engelleyip engellemediğini doğrulayan halka açık bir kaynak henüz yok. Okuyuculara engellediğini söylemeyin.]

İkinci bir veri sızdırma kanalı var mı?

Evet. PromptArmor, Rovo'nun çıktılarında Markdown görsellerini işlediğini belirtiyor. Saldırganın sunucusuna yönlendirilmiş bir görsel URL'si, tarayıcı görseli yüklediği anda içinde kodlanmış olan tüm veriyi dışarı sızdırır. PromptArmor bu kanala dikkat çekiyor ancak bunun için Rovo özelinde baştan sona eksiksiz bir zincir anlatımı sunmuyor.

Bildirim takvimi ve yama durumu

Tarih Gelişme
2026-05-23 PromptArmor sorunu Atlassian'a bildirdi
2026-05-25 Atlassian bildirimi onayladı ve bir vaka numarası atadı
2026-06-04 PromptArmor durumu takip etti; kayda değer bir yanıt gelmedi
2026-07-29 PromptArmor tekrar durumu takip etti; kayda değer bir yanıt gelmedi
2026-08-05 PromptArmor bulguları yayımladı; Rovo hâlâ savunmasız durumda

27 Ekim 2026 itibarıyla bu saldırı yoluna ilişkin Atlassian tarafından yapılmış herhangi bir açıklama, güvenlik bülteni veya doğrulanmış bir düzeltmeye rastlamadık. İnceleme yazısına dair Hacker News başlığında da (306 puan, 138 yorum) Atlassian cephesinden gelen bir yanıt bulunmuyor. [Yayımlamadan önce DOĞRULAYIN: Atlassian'ın güvenlik bültenlerini ve PromptArmor sayfasını yeni bir güncelleme notu olup olmadığına dair tekrar kontrol edin.]

Bunun RovoBlast'tan farkı nedir?

Bunlar birbirinden farklı açıklardır. Varonis Threat Labs, özel olarak hazırlanmış bir bağlantının rovoChatPrompt URL parametresini kötüye kullanarak kurbanın Rovo Sohbeti'ne talimatlar yerleştirdiği RovoBlast açığını yayımlamıştı. Varonis bu durumu Atlassian’ın Bugcrowd programı üzerinden bildirdi ve sorunun giderildiğini belirtti. RovoBlast bir tıklama gerektiriyordu. PromptArmor’ın ortaya koyduğu saldırıda ise kurbanın yalnızca rutin işini yapması yetiyor. Birinin düzeltilmiş olması diğeri hakkında hiçbir fikir vermez.

Arka plandaki model: Ölümcül üçlü (the lethal trifecta)

Simon Willison bu yapıyı ölümcül üçlü (the lethal trifecta) olarak adlandırdı: Özel verilere erişimi olan, saldırgan kontrolündeki içeriğe maruz kalan ve dış dünyayla iletişim kurabilen bir ajan. Bu üç unsur bir araya geldiğinde, saldırgan ajanı kandırarak verilerinizi dışarı göndermesini sağlayabilir.

Jira ve Confluence ortamındaki Rovo, yapısı gereği bu üç unsura da sahiptir. Zaten onu işlevsel kılan da budur.

Hacker News'teki tartışmalar birkaç çözüm önerisi üzerinde yoğunlaştı:

  • Yalnızca bir insanın yazdığı veya güvenilir bir aracın döndürdüğü URL'leri getirin. Ajanın kendi oluşturduğu URL'leri asla getirmeyin. Simon Willison, joker (wildcard) DNS yapılandırmalarıyla verilerin yalnızca alt alan adı (subdomain) üzerinden bile sızdırılabileceğine dikkat çekti.
  • Önceden indekslenmiş URL'ler fayda sağlar ama sızıntıyı yavaş yavaş da olsa engellemez. Johann Rehberger (wunderwuzzi), bir saldırganın istek başına tek bir karakter ileterek yine de veri sızdırabileceğini belirtti.
  • Alan adı izin listeleri (allowlist) dar kapsamlı ajanlar için işe yarar. Bir ajanın yalnızca üç alan adına ihtiyacı varsa, ona sadece bu üçünü tanımlayın.

Bunların hiçbiri model tabanlı bir çözüm değildir. Giden veri yolunu daraltmaya yönelik adımlardır; çünkü modeller enjekte edilmiş metinleri belirli durumlarda takip etmeye devam eder. OWASP'ın komut enjeksiyonunu LLM risk listesinin en başına, LLM01 olarak yerleştirmesinin nedeni de tam olarak budur.

Rovo güvenlik kontrol listesi: Jira yöneticilerinin bugün kontrol etmesi gerekenler

Her bir adım, bu üçlünün bir ayağını zayıflatır.

  1. Rovo'nun erişebildiği yerlerin haritasını çıkarın. Her uygulamayı, projeyi, Alanı (Space) ve bağlayıcıyı listeleyin. Rovo kullanıcı yetkilerine saygı duyar; bu nedenle ele geçirilmiş bir oturum, istekte bulunan kullanıcının görebildiği her şeye ulaşabilir. Atlassian, Rovo'nun tamamen kapatılamayacağını, ancak yöneticilerin uygulama bazında Rovo erişimini engelleyebileceğini belirtiyor.
  2. Dış kaynaklı içerikleri tespit edin. Hizmet masası (service desk) talepleri, e-postadan oluşturulan kayıtlar, ekler ve senkronize edilen belgeler ekibinizin yazmadığı metinler içerir. Komut enjeksiyonu yüzeyleriniz buralardır.
  3. Bağlayıcıları denetleyin. Kullanılmayan bağlayıcıların bağlantısını kesin. Google Drive ve SharePoint için bağlayıcı engelleme veya izin listelerini kullanın. Varonis'in de önerdiği gibi; hukuk, İK, finans ve olay müdahale (incident response) kapsamındaki içerikleri sistem dışında tutun.
  4. Her iki web ayarını da kontrol edin. Kimsenin ihtiyacı yoksa Web aramasını ve Web erişimini kapatın. Atlassian aksini doğrulamadıkça, bu ayarların hiçbirini söz konusu saldırıya karşı kesin bir çözüm olarak görmeyin.
  5. Dışarı giden trafiği (egress) izleyin. Proxy günlüklerinizde şüpheli harici görsel ve bağlantı alan adlarını işaretleyin.
  6. Test komutuyla deneme yapın. Bir test biletine, Rovo'dan sizin kontrolünüzdeki bir URL'yi getirmesini isteyen zararsız bir talimat yerleştirin. İstek sunucunuza ulaşıyorsa cevabınızı almış olursunuz.
  7. Ekibinizi bilgilendirin. “Biletlerimi düzenle” komutu, ekte gizlenmiş talimatları tetikleyebilir.

Jira aynı zamanda kodlama ajanlarının görev aldığı yerse, Jira biletlerini bir yapay zekâ ajanına atama kılavuzumuza göz atın.

Aynı sorular kodlama ajanları için de geçerli

Kodlama ajanları gün boyu güvenilmeyen metinleri okur: Bilet açıklamaları, pull request yorumları, bağımlılıkların README dosyaları, çekilen dokümantasyonlar... Kaynak kodunuzu ellerinde bulundururlar ve genellikle ağ erişimleri vardır. Bu durum, aynı ölümcül üçlünün bir sohbet paneli yerine doğrudan terminalde vücut bulmuş halidir. Daha gelişmiş bir modelin doğru yetki sınırlandırmasının (scope) yerini neden tutamayacağını komut enjeksiyonu ve ajan güvenlik bariyerleri yazımızda ele almıştık.

Sharkly bir ajanı enjeksiyona karşı tamamen bağışık kılmaz; zaten bugün hiçbir araç bunun garantisini veremez. Sharkly, bir çalışma başlamadan önce yetki kapsamını belirleyebileceğiniz bir kontrol alanı sunar. Ajanlar, dışarıya doğru bağlantı açan yerel bir servis aracılığıyla bağladığınız Bilgisayarlar üzerinde çalışır; bu sayede standart bir kurulum gelen bağlantı noktası (inbound port) gerektirmez. Konuk kullanıcılar yalnızca açıkça eklendikleri Alanlara (Spaces) erişebilir. Otomasyon iş akışlarındaki üçüncü taraf eylemleri yalnızca sizin yetkilendirdiğiniz bağlayıcılar üzerinden yürütülür. Belgelerde, şifrelerin, belirteçlerin (token) veya anahtarların asla Beceri (Skill) talimatlarında saklanmaması ve depolara (repository) yalnızca Görevin (Task) gerektirdiği en düşük ayrıcalıkların verilmesi gerektiği vurgulanır.

Ajanlar araştırır, çalıştırır ve raporlar. İnsanlar yetki tanımlar ve sonucu kabul eder. Ayrıntılar için bir kodlama ajanının neleri yapıp neleri yapamayacağı ve onay aşamalarının nerelere yerleştirilmesi gerektiği hakkındaki yazılarımızı okuyabilirsiniz.

Sonuç

Rovo saldırısı sıra dışı veya karmaşık bir yöntem gerektirmez. Bir dosya, sıradan bir istek ve açabileceği adresler konusunda hiçbir sınırlandırması bulunmayan bir URL aracı fazlasıyla yeterliydi; üstelik çoğu ekibin ilk başvurduğu açma-kapama düğmesi bu aracı kapsamıyordu. Bu yazının kaleme alındığı tarih itibarıyla, içerik kaynaklı bu saldırı yolu için doğrulanmış bir düzeltme bulunmuyor.

Yetki kapsamını (scope) tamamen sizin kontrolünüzde olan bir güvenlik mekanizması olarak görün. Rovo'nun neleri okuduğunu belirleyin, kullanılmayan bağlayıcıları devre dışı bırakın ve dışa giden bağlantı yolunu kendiniz test edin. Ardından ekibinizin kullandığı her ajan için şu üç soruyu sorun: Neleri okuyabiliyor, kendisine güvenilmeyen hangi metinler ulaşıyor ve verileri nerelere gönderebiliyor? Kodlama ajanlarınızı görev bazında tanımlanmış bu yetki sınırlarıyla tek bir panoda toplamak isterseniz, Sharkly 5 kişiye kadar olan ekipler için ücretsizdir.

Sıkça Sorulan Sorular

Atlassian Rovo veri sızıntısı saldırısı nedir?

PromptArmor tarafından 5 Ağustos 2026'da yayımlanan bir dolaylı komut enjeksiyonu saldırısıdır. Gizli talimatlar, Rovo'nun Jira ve Confluence verilerini saldırgana ait bir URL'ye eklemesini ve bu bağlantıyı açmasını sağlar.

Rovo web aramasını kapatmak verilerimi korur mu?

PromptArmor'a göre hayır. İlgili ayar düğmesi, URL'leri açan aracı sistemden kaldırmaz.

Atlassian Rovo komut enjeksiyonu açığını yamaladı mı?

27 Ekim 2026 itibarıyla Atlassian tarafından PromptArmor'ın ortaya koyduğu yöntem için yapılmış bir açıklama veya doğrulanmış bir düzeltme bulamadık. Ayrı bir açık olan RovoBlast ise düzeltilmiştir.

Rovo Dev bu durumdan etkileniyor mu?

Rovo Dev, Atlassian'ın kodlama ajanıdır; Jira ve Confluence'taki Rovo'dan farklı bir üründür ve PromptArmor'ın yazısı bu ürünü kapsamamaktadır. Ayrıntılar için Rovo Dev ücretsiz planı rehberimize göz atabilirsiniz.

Kodlama ajanları aynı saldırıya karşı savunmasız mı?

Evet. Güvenilmeyen metinleri okuyan ve ağa erişebilen her ajan aynı riski taşır. Ajanın neleri okuduğunu, hangi kimlik bilgilerine sahip olduğunu ve verileri nereye gönderebileceğini mutlaka sınırlandırın.

Daha fazlasını keşfedin

ChatGPT Artık Proje Panonuzu Takip Edebiliyor: Olay Güdümlü Ajanların Sıradaki İhtiyacı Ne?

ChatGPT Artık Proje Panonuzu Takip Edebiliyor: Olay Güdümlü Ajanların Sıradaki İhtiyacı Ne?

ChatGPT artık MCP Events ve ekip görevleri aracılığıyla bir proje panosunu takip edebiliyor. Tetikleyici işin kolay kısmı: Planın kime ait olduğu, nereye gideceği ve nasıl yönlendirileceği.

5 Kasım 2026

Kodlama Ajanınız Düşünürken Neden Takılmış Gibi Görünüyor: İlk Token Süresi

Kodlama Ajanınız Düşünürken Neden Takılmış Gibi Görünüyor: İlk Token Süresi

Maksimum akıl yürütmede GPT-6 Sol'un ilk token'ından önce 102 saniye sürdüğü ölçüldü. Terminalde düşünen bir ajan ile yanıt vermeyen bir ajan aynı görünür. Bir çalıştırma durumunun neyi ayırması gerektiği ve uzun düşünceleri sessizce öldüren görev başına zaman aşımı.

4 Kasım 2026