CVE-2026-87858
Açıklama
Temporal Server, bir Workflow tamamlanma geri çağırmasının (completion callback) dahili olup olmadığına çağırıcı tarafından sağlanan bir HTTP başlığını okuyarak karar vermekteydi. Tek bir namespace üzerinde yalnızca yazma iznine sahip kimliği doğrulanmış bir çağırıcı; URL ana bilgisayarı yapılandırılmış geri çağırma adresi izin listesiyle eşleşen, URL yolu herhangi bir Temporal HTTP API rotası olan ve başlık haritası boş olmayan "source" adlı bir başlık içeren bir tamamlanma geri çağırması ekleyebilirdi. History servisi bu geri çağırmayı ilettiğinde, boş olmayan source başlığı isteğin yerel ön uç istemcisine yeniden yönlendirilmesine ve yalnızca şema ile ana bilgisayarın yeniden yazılmasına neden olurken, çağırıcının yolunu, sorgusunu ve istek gövdesini korumaktaydı. HTTP API'si etkinleştirilmiş bir dahili ön ucun konuşlandırıldığı durumlarda, bu istemci dahili ön uca çözümlenir ve dahili ön uç her isteği kimlik doğrulama bilgisi gerekmeksizin sistem yöneticisi olarak yetkilendirir. Bunun sonucunda sunucu, çağırıcının adına, çağırıcının izninin olmadığı namespace'lerde kendi yönetimsel API'sine karşı saldırgan tarafından seçilen durum değiştirici bir HTTP POST işlemi gerçekleştirir. History servisi isteği yaptığı için çağırıcının dahili ön uca ağ erişimine ihtiyacı yoktur. Onaylanan etkiler arasında diğer namespace'lerdeki Workflow'ların sonlandırılması, namespace kayıtları, başka bir namespace'in yapılandırmasının değiştirilmesi ve başka bir namespace ile ona ait Workflow'ların silinmesi yer almaktadır. Etkilenen yönlendirme mantığı hem HSM hem de CHASM geri çağırma iletim uygulamalarında mevcuttur. Bu açıklama ve bu kayıttaki CVSS puanı, herhangi bir boş olmayan source başlığının yeterli olduğu 1.30.0 ve sonraki sürümleri tanımlamaktadır. 1.25.0 ile 1.29.7 arasındaki sürümler, aynı kusurun daha dar bir biçiminden etkilenmektedir; burada başlığın, namespace kapsamındaki bir çağırıcının API üzerinden okuyamadığı bir UUID olan yapılandırılmış bir küme kimliğiyle tam olarak eşleşmesi gerekir. Eşleşme gerçekleştiğinde sonuç aynıdır ancak saldırı maddi olarak daha zordur ve daha düşük puan alır. Bir dağıtımın etkilenip etkilenmediğini belirlemek için iki ayarı birlikte kontrol edin: sıfırdan farklı bir services.internal-frontend.rpc.httpPort için statik Sunucu yapılandırması ve component.callbacks.allowedAddresses'in etkili namespace başına dinamik yapılandırma değeri. Bir dağıtım, yalnızca sıfırdan farklı bir HTTP portuna sahip bir dahili ön uç konuşlandırıldığında, en az bir izin listesi kuralı bir ana bilgisayara izin verdiğinde ve yetkilendirme etkin olduğunda risk altındadır. İzin listesi varsayılan olarak boştur, bu da tüm harici geri çağırma URL'lerini reddeder ve standart statik topoloji bir dahili ön uç içermez. Başarısız bir ekleme işleminin 'invalid url: url does not match any configured callback address' hatasını döndürdüğünü, bunun yalnızca test edilen bir URL'nin eşleşmediğini kanıtladığını ve etkili izin listesinin boş olduğunu kanıtlamadığını unutmayın. Halihazırda eklenmiş geri çağırmaları aramak için, bir Workflow'un kayıtlı tamamlanma geri çağırmaları için geri çağırma bilgilerini döndüren DescribeWorkflowExecution'ı kullanın. Operatörler, iletim kanıtlarını ararken bir boşluğun farkında olmalıdır: ön uç HTTP API sunucusu istek yöntemini ve URL'sini yalnızca hata ayıklama (debug) düzeyinde kaydeder, bu nedenle varsayılan günlük seviyelerinde iletilen bir istek dahili ön ucun günlüklerine yazılmaz ve bu tür günlük girişlerinin yokluğu sorunun istismar edilmediğinin kanıtı değildir.
Nasıl düzeltilir
- temporal temporal1.30.7, 1.31.3 ya da sonraki bir sürüm
Etkilenen ürünler
| Ürün | Etkilenen sürümler | Düzeltildiği sürüm |
|---|---|---|
| temporal temporal | 1.30.0 ≤ v < 1.30.7, 1.31.0 ≤ v < 1.31.3, 1.25.0 ≤ v ≤ 1.29.7 | 1.30.7, 1.31.3 |
Sürümünüzü kontrol edin
Ürünü seçin ve kullandığınız sürümü yazın; sürümün etkilenen aralıkta olup olmadığını görün.
Attack Surface Management
Alan adlarınıza bağlı varlıkları, bu varlıklarda çalışan teknolojileri ve bilinen zafiyetleri tek listede görün.