n8n, yüksek önem dereceli bir ifade-sandbox kaçış açığını yamaladı. Bu açık, kimliği doğrulanmış bir iş akışı düzenleyicisinin otomasyon platformunu çalıştıran sunucuda işletim sistemi komutları çalıştırmasına izin veriyordu. Security Joes, n8n'in Şubat ayında CVE-2026-27577 için yayınladığı düzeltmeyi incelerken bu açığı buldu.
Etkilenen sürümler <2.31.5 ve >=2.32.0,<2.32.1. n8n, açığı 2.31.5 ve 2.32.1 sürümlerinde düzeltti. Sorunu GHSA-gv7g-jm28-cr3m olarak takip eden şirket, açığı CVSS 4.0 puanı 8.7 ile Yüksek olarak derecelendirdi. 27 Temmuz 2026 itibarıyla herhangi bir CVE numarası atanmamıştı.
Yöneticilerin, n8n'in geçici önlemlerine güvenmek yerine güncelleme yapmaları öneriliyor. Bu önlemler, örnek erişimini ve iş akışı düzenlemesini tamamen güvenilir kullanıcılarla sınırlamayı içeriyor. Danışma belgesi bu kontrolleri eksik, kısa vadeli azaltımlar olarak tanımlıyor. Yamalı 1.x sürümü listelenmezken, n8n Cloud'un etkilenip etkilenmediği de belirtilmiyor.
Açıktan yararlanmak için iş akışı oluşturma veya değiştirme iznine sahip geçerli bir hesap gerekiyor. Başka bir kullanıcının eylemini gerektirmeyen bu açık, başarılı bir istismar durumunda komutların n8n sürecinin ayrıcalıklarıyla çalıştırılmasına olanak tanıyor.
Security Joes, The Hacker News ile paylaştığı raporda, bu erişimin N8N_ENCRYPTION_KEY'i açığa çıkarabileceğini ve n8n'de depolanan kimlik bilgilerinin şifresinin çözülmesine izin verebileceğini belirtti. Ayrıca bağlı veritabanlarına, dahili hizmetlere ve bulut uç noktalarına yollar açabileceği uyarısında bulunuldu. Rapor hazırlanırken firma, açığın vahşi ortamda kullanıldığını gözlemlememişti. Kamuya açık danışma belgesi, açığın düzeltmeden önce kullanılıp kullanılmadığına dair bir bilgi içermiyor.
n8n iş akışı oluşturucuları, ={{ $json.email }} gibi ifadeler kullanıyor. Soyut sözdizimi ağacı yeniden yazıcısı, bu ifadelerdeki serbest JavaScript tanımlayıcılarını Node.js çalışma zamanı yerine n8n'in kontrollü veri bağlamına yönlendiriyor. 2.31.4 sürümünde, VariablePolyfill.ts dosyası ArrowFunctionExpression'ı açık bir no-op dalına yerleştirmişti. () => process gibi kısa bir ok gövdesi, process'in sanal alan değeri yerine gerçek Node.js globaline çözümlenmesine neden olabiliyor.