CVE-2026-87858
Təsvir
Temporal Server, Workflow tamamlanma geri çağırışının (callback) daxili olub-olmadığına çağıran tərəfindən təqdim edilən HTTP başlığını oxuyaraq qərar verirdi. Yalnız bir namespace-də yazı icazəsi olan autentifikasiya olunmuş istifadəçi, URL hostu konfiqurasiya edilmiş geri çağırış ünvanlarının ağ siyahısına uyğun gələn, URL yolu hər hansı Temporal HTTP API marşrutu olan və başlıq xəritəsi boş olmayan "source" adlı başlıq ehtiva edən tamamlanma geri çağırışı əlavə edə bilərdi. History xidməti həmin geri çağırışı çatdırdıqda, boş olmayan "source" başlığı sorğunun yerli frontend müştərisinə yönləndirilməsinə və yalnız sxem ilə hostun yenidən yazılmasına səbəb olurdu, lakin çağıranın yolu, sorğu parametrləri və sorğu gövdəsi saxlanılırdı. Daxili frontend-in HTTP API aktiv edilmiş şəkildə yerləşdirildiyi hallarda, həmin müştəri daxili frontend-ə yönəlir və bu frontend hər bir sorğunu autentifikasiya məlumatları tələb etmədən sistem administratoru kimi avtorizasiya edir. Nəticədə, server çağıran şəxsin adından, onun heç bir icazəsinin olmadığı namespace-lərdə öz inzibati API-na qarşı hücumçunun seçdiyi vəziyyət dəyişdirici HTTP POST sorğusunu icra edir. History xidməti sorğunu göndərdiyi üçün çağıran tərəfin daxili frontend-ə şəbəkə girişinə ehtiyacı yoxdur. Təsdiqlənmiş təsirlərə digər namespace-lərdəki Workflow-ların dayandırılması, namespace-lərin qeydiyyatı, digər namespace konfiqurasiyasının dəyişdirilməsi, həmçinin digər namespace və ona aid Workflow-ların silinməsi daxildir. Təsirə məruz qalan marşrutlaşdırma məntiqi həm HSM, həm də CHASM geri çağırış çatdırılma tətbiqlərində mövcuddur. Bu təsvir və bu qeyddəki CVSS balı, hər hansı boş olmayan "source" başlığının kifayət etdiyi 1.30.0 və daha sonrakı versiyalara aiddir. 1.25.0-dan 1.29.7-yə qədər olan versiyalar eyni qüsurun daha dar formasına məruz qalıb ki, burada başlıq mütləq konfiqurasiya edilmiş klaster ID-si (namespace səviyyəli istifadəçinin API vasitəsilə oxuya bilməyəcəyi UUID) ilə üst-üstə düşməlidir. Uyğunluq baş verdikdə nəticə eynidir, lakin hücum maddi cəhətdən daha çətindir və daha aşağı bal alır. Yerləşdirmənin təsirə məruz qalıb-qalmadığını müəyyən etmək üçün iki parametri birlikdə yoxlayın: statik Server konfiqurasiyasında sıfırdan fərqli "services.internal-frontend.rpc.httpPort" və hər bir namespace üçün effektiv dinamik konfiqurasiya dəyəri olan "component.callbacks.allowedAddresses". Sistem yalnız daxili frontend sıfırdan fərqli HTTP portu ilə yerləşdirildikdə, ən azı bir ağ siyahı qaydası hosta icazə verdikdə və avtorizasiya aktiv olduqda risk altındadır. Ağ siyahı standart olaraq boşdur, bu da bütün xarici geri çağırış URL-lərini rədd edir və standart statik topologiya daxili frontend-i əhatə etmir. Qeyd edək ki, uğursuz əlavəetmə "invalid url: url does not match any configured callback address" xətasını qaytarır, bu isə yalnız sınaqdan keçirilmiş bir URL-in uyğun gəlmədiyini sübut edir və effektiv ağ siyahının boş olduğunu sübut etmir. Artıq əlavə edilmiş geri çağırışları axtarmaq üçün Workflow-un qeydiyyata alınmış tamamlanma geri çağırışları haqqında məlumat qaytaran DescribeWorkflowExecution funksiyasından istifadə edin. Operatorlar çatdırılma sübutlarını axtararkən boşluqla qarşılaşdıqlarını bilməlidirlər: frontend HTTP API serveri sorğu metodunu və URL-ni yalnız debug səviyyəsində qeyd edir, buna görə də standart loq səviyyələrində çatdırılmış sorğu daxili frontend-in loqlarına yazılmır və belə loq qeydlərinin olmaması problemin istismar edilmədiyinə dair sübut deyil.
Necə düzəltmək olar
- temporal temporal1.30.7, 1.31.3 və ya daha yeni versiya
Təsirlənən məhsullar
| Məhsul | Təsirlənən versiyalar | Düzəldildiyi versiya |
|---|---|---|
| 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 |
Versiyanızı yoxlayın
Məhsulu seçin və istifadə etdiyiniz versiyanı yazın; versiyanın təsirlənən aralıqda olub-olmadığını görün.
Attack Surface Management
Domenlərinizə bağlı aktivləri, onlarda işləyən texnologiyaları və məlum zəiflikləri bir siyahıda görün.