NVIDIA NemoClaw’da yerel model tarayıcıdan zehirlenebiliyor

Anasayfa » NVIDIA NemoClaw’da yerel model tarayıcıdan zehirlenebiliyor
NVIDIA NemoClaw’da yerel model tarayıcıdan zehirlenebiliyor

Güvenlik araştırmacıları, kötü amaçlı bir web sayfasının NVIDIA NemoClaw üzerinden çalışan yerel Ollama örneğini ele geçirip modelin içine gizli talimatlar yerleştirebildiğini ortaya koydu. 25 Ağustos 2026 itibarıyla bu zincirin sahada istismar edildiğine dair bir bulgu yok, ancak araştırma NVIDIA’nın PSIRT ekibine önceden iletildi ve herhangi bir CVE numarası da atanmadı.

Oasis Security’den Elad Luz, NemoClaw’un macOS ve Linux tarafında yayımlanan v0.0.35 sürümünün problemi düzelttiğini söyledi. Windows ve WSL hattında ise aynı düzeyde bir yama bulunmuyor; Luz’a göre v0.0.34, uyarı veren ayrı bir Windows kurulumu ekledi. Araştırma metninde, bu platform ayrımının saldırı zincirinin hangi yolda çalışabildiğini doğrudan belirlediği aktarıldı.

Yerel model sunucusu tarayıcı saldırısına açıldı

NVIDIA’nın açık kaynak referans yığını olan NemoClaw, OpenClaw gibi ajanları OpenShell sanal alanları içinde çalıştırmak için kullanılıyor. Desteklenen yerel çıkarım motorlarından biri de Ollama. Sorunun merkezinde, NemoClaw’un Ollama’yı OLLAMA_HOST=0.0.0.0:11434 ile başlatması yer alıyor; bu yapılandırma model sunucusunu yalnızca localhost’a değil, tüm ağ arayüzlerine bağlıyor.

Rapor, bu erişimin saldırgana modelin chat template yapısını değiştirme imkânı verdiğini ve böylece sonraki tüm konuşmalara gizli komutların enjekte edilebildiğini aktarıyor. Oasis Security, raporda “sandboxing endpoint’i korur, ancak ajanı ele geçirmek onun erişimini ve araçlarını da ele geçirmek demektir” ifadesini kullandı. Şirketin değerlendirmesi, model katmanına yerleşen bu talimatların sonradan yapılan konuşmalarda da yürürlükte kalabildiğini vurguluyor.

Şirkete ait Ollama kurulum dokümantasyonu ile güncel kaynak kod, bazı platform yollarında aynı bağlama işaret ediyor. Fakat NemoClaw’un platforma göre davranışı değişiyor: WSL dışı sistemlerde Ollama 127.0.0.1:11434 üzerinde tutuluyor ve önünde 0.0.0.0:11435 portunda token kontrollü bir reverse proxy çalışıyor. Onboarding süreci, daha önce başka bir adrese bağlanmış bir daemon’u loopback’e geri çekiyor. Bu akışta amaç, token kontrolünü proxy katmanında sürdürmek ve model sunucusunu yerel makineyle sınırlı tutmak.

Docker Desktop üzerinde WSL kullanıldığında proxy katmanı atlanıyor. Bunun nedeni, container’ın host makinenin loopback adresine host.docker.internal üzerinden ulaşabilmesi. Windows host üzerinde Ollama yolu ise Docker Desktop container’larının daemon’a erişebilmesi için OLLAMA_HOST=0.0.0.0:11434 ayarını kullanıyor ve 11434 portunda kimlik doğrulama istemiyor. Aynı kurulum, saldırı zincirinin de dayandığı koşulu oluşturuyor.

DNS rebinding, 11434 portundaki korumayı aşıyor

Ollama’nın kendi NemoClaw entegrasyon sayfası da WSL2 ya da container içinde çalışırken OLLAMA_HOST=0.0.0.0 ayarlanmasını öneriyor. Ancak daha önce yapılan incelemelerde bu tür bir 0.0.0.0 bağlamasının Ollama örneklerini yerel makinenin dışına açtığı görülmüştü. Kaynak metin, bu bağlama tercihlerinin yerel kullanım ile ağdan erişim arasındaki sınırı belirgin biçimde değiştirdiğini aktarıyor.

11434 numaralı API varsayılan olarak kimlik doğrulama istemiyor ve tarayıcıdan gelen istekleri iki ara katmanla engellemeye çalışıyor. Bağlama adresi loopback olmadığında Host başlığı kontrolü tamamen devre dışı kalıyor. Ardından CORS katmanı, Origin ve Host başlıkları saldırganın alan adını taşıdığı için isteği aynı kaynaklı kabul ediyor. Bu durum, saldırganın 11434 portunda servis ettiği bir sayfa için de geçerli. Rapor, bu noktada tarayıcının saldırganın alan adıyla konuştuğunu sandığını ve aynı kaynaklı kabulün korumayı baypas ettiğini belirtiyor.

DNS rebinding tekniği de bu noktadaki açığı kapatıyor. Alan adı önce saldırganın kendi sunucusuna, sonra 127.0.0.1 adresine çözülüyor; tarayıcı ise istekleri hâlâ aynı kaynaklı saymaya devam ediyor. Luz, zincirin macOS üzerinde Firefox ile ve açık bulunan bir NemoClaw sürümüne karşı test edildiğini aktardı. Bu saldırı sınıfında standart savunma, Host ve Origin başlıklarının birlikte doğrulanması. Araştırmacılar, bu denetim yapılmadığında tarayıcının yerel servise ulaşan istekleri engellemekte yetersiz kalabildiğini anlattı.

Ollama API’sine karşı DNS rebinding denemeleri daha önce de dokümante edilmişti. Ollama, 14 Mart 2024’te v0.1.29 sürümünde bir düzeltme yayımladı; ertesi ay NCC Group, konuyu CVE-2024-28224 olarak duyurdu. O uyarı, sunucu tarafında yalnızca yetkili Host değerlerinin kabul edilmesini tavsiye ediyordu. Luz’a göre Ollama, 2024’teki ifşanın ardından bu doğrulamayı ekledi; ancak servis non-loopback bir adrese bağlandığında kontrolü atlıyor ve NemoClaw’un yaptığı tam olarak bu.

API erişimi açıldığında saldırı yükü /api/create üzerinden değiştirilmiş bir Go template yazıyor. Bu şablon, yapılandırılmış mesajlar dizisinin model işlemeye başlamadan önce ham metne nasıl dönüştürüleceğini belirliyor. Zehirlenmiş sürüm, çıkarım anında her sistem mesajına saldırganın metnini ekliyor. Böylece modelin sonraki yanıt akışı, ilk yerleştirilen talimatlardan etkilenmeye devam ediyor.

Raporda yer alan bilgiye göre bu yöntemle yerleştirilen talimatlar, sonraki görüşmeler boyunca kalıcı oluyor ve ajan kendi system prompt’unu gönderse bile silinmiyor. Oasis Security, müşterinin bunu ne tespit edebildiğini ne de engelleyebildiğini; çünkü şablonun API tüketicilerinden gizli, model düzeyinde bir özellik olduğunu belirtti. Araştırma, bu nedenle saldırının API katmanından bakıldığında görünmez kaldığını da aktarıyor.

V0.0.106’daki yeni engel Windows yoluna işlemedi

İncelemeyi 25 Ağustos’ta NemoClaw deposunun 17f0ca3b commit’inde yapan ekip, yerel Ollama proxy’sinin loopback’e bağlı olmayan bir backend’e karşı artık başlamayı reddettiğini de gördü. Bu davranış 10 Ağustos’ta v0.0.106 ile getirildi. Proxy, özel bir çıkış koduyla kapanıyor ve şu uyarıyı basıyor: “Refusing to start: an Ollama daemon reachable on a non-loopback interface bypasses the proxy’s token check entirely. Set OLLAMA_HOST=127.0.0.1:${port} on the Ollama systemd unit or set NEMOCLAW_OLLAMA_PROXY_SKIP_BIND_PROBE=1 to override (not recommended).”

Ancak bu kontrol NEMOCLAW_OLLAMA_PROXY_SKIP_BIND_PROBE=1 ayarıyla kapatılabiliyor. Ayrıca bağlama denetiminin çalışamadığı sistemlerde güvenli biçimde kapanmıyor. Luz, denetimin bizzat proxy içinde yürüdüğünü, NemoClaw’un WSL yollarında bu proxy’yi hiç başlatmadığını ve Windows host yapılandırmasının da bu yollar arasında olduğunu söyledi. Bu nedenle v0.0.106 ile gelen varsayılan, 0.0.0.0 bağlamasının kullanıldığı platform yoluna ulaşmıyor.

Aynı kod incelemesi, depo içinde chat template bütünlüğünü doğrulayan herhangi bir kontrol de bulmadı. NemoClaw, Ollama’nın /api/show uç noktasını yalnızca modelin doğal bağlam uzunluğu ve ilan edilen tool-calling yeteneği için sorguluyor. Kodda yer alan bu sorgu, şablonun değiştirilip değiştirilmediğini denetlemiyor.

NVIDIA’nın Windows host yoluna ilişkin dokümantasyonu, 11434 portunun bir LAN’a ya da internete açılmamasını da tavsiye ediyor. Ancak burada anlatılan zincir ağdan gelen doğrudan bir dış erişim gerektirmiyor. Tarayıcı zaten host üzerinde çalıştığı için saldırı, daemon’a 127.0.0.1 üzerinden ulaşıyor. Bu nedenle uyarı, doğrudan ağ erişimine karşı olsa da tarayıcıdan localhost’a dönen zinciri tek başına durdurmuyor.

Zehrilenmiş chat template tekniği daha önce de kayıtlara geçmişti. Oasis Security araştırmacıları bu ay içinde aynı yöntemi Paperclip’e karşı belgeledi; şubat ayında ise benzer bir tarayıcıdan-localhost yolunu kullanarak yerel OpenClaw ajanlarını ele geçirdiklerini açıkladı. Araştırmanın anlattığı teknik çizgi, model şablonuna yerleşen komutların farklı yerel ajan kurulumlarında da tekrar kullanılabildiğini gösteriyor.