- Yama var
- Son 7 gün
- CWE-400
- CWE-667
CVE-2026-110803
Vaadin Framework 8'de geçersiz UI kimliği oturum kilidi sızıntısına ve hizmet dışı bırakmaya yol açıyor
- Yayımlandı
- Güncellendi
- 21 Eki 2026
- Açık yaşı
- 7 gün
- Kaydı açan
- Vaadin
ÖzetTürkçe
VaadinService.requestEnd metodu, Vaadin Framework 8'de oturumu kilitledikten sonra v-uiId istek parametresini, kilidi serbest bırakan bloğun dışında okuyor. Sayısal olmayan bir v-uiId içeren istek, kilit tutulurken Integer.parseInt çağrısının hata fırlatmasına neden oluyor; bu durumda kilit hiçbir zaman serbest bırakılmıyor ve konteyner iş parçacığı, hâlâ kilidi elinde tutarak havuzuna dönüyor. Bu oturuma sonraki her istek VaadinService.lockSession içinde süresiz olarak bloke oluyor ve isteğin tekrarlanması iş parçacığı havuzunu tüketerek uygulamanın çökmesine yol açıyor. Saldırı için kimlik doğrulama gerekmiyor; tek bir istekle her istemcinin elde edebildiği bir oturum çerezi yeterli. Vaadin 10 ve sonrası etkilenmiyor, çünkü Flow kilidi finally bloğunda serbest bırakıyor ve bu parametreyi orada okumuyor. Vaadin Framework 7 de etkilenmiyor. Etkilenen sürümlerin kullanıcıları, aşağıdaki geçici çözümü uygulamalı veya yükseltme yapmalıdır. Bu sorunu düzelten sürümler: Ürün sürümü Vaadin Framework 8.16.0 - 8.32.1. Çözüm: 8.32.2 sürümüne yükseltin. Vaadin Framework 7 ve Vaadin 10 ve sonrası bu davranışı göstermez ve bu sorun için yükseltme gerektirmez. Geçici çözüm: Vaadin'in istekleri işlemesinden önce, v-uiId parametresi tam sayı olmayan istekleri VaadinServlet.service metodunu geçersiz kılarak reddedin ve bu istekler için 400 yanıtı döndürün. Halihazırda sızmış kilitler ancak uygulamanın yeniden başlatılmasıyla serbest bırakılabilir.
Kaynaktaki açıklama (İngilizce)
VaadinService.requestEnd() in Vaadin Framework 8 locks the session and then reads the v-uiId request parameter outside the block that releases the lock. A request carrying a non-numeric v-uiId makes Integer.parseInt throw while the session lock is held, so the lock is never released and the container thread returns to its pool still owning it. Every later request to that session then blocks forever in VaadinService.lockSession(), and repeating the request exhausts the thread pool and takes the application down. No authentication is required: a session cookie, which any client obtains with a single request, is enough. Vaadin 10 and later are not affected, because Flow releases the lock in a finally block and does not read that parameter there, and Vaadin Framework 7 is not affected either.
Users of affected versions should apply the following mitigation or upgrade. Releases that have fixed this issue include:
Product version
Vaadin Framework 8.16.0 - 8.32.1
Mitigation
Upgrade to 8.32.2
Vaadin Framework 7 and Vaadin 10 and later do not carry this behaviour and need no upgrade for this issue.
Artifacts
Maven coordinates / Vulnerable versions / Fixed version
com.vaadin:vaadin-server / 8.16.0 - 8.32.1 / >=8.32.2
com.vaadin:vaadin-server-mpr-jakarta / 8.18.0 - 8.32.1 / >=8.32.2
Üreticinin çözüm notu (İngilizce)
Users of affected versions should apply the following mitigation or upgrade.
Üreticinin geçici önlemi (İngilizce)
Reject requests whose v-uiId parameter is not an integer before Vaadin handles them, by overriding VaadinServlet.service() and answering 400 for those requests. Locks that have already leaked are only released by restarting the application.
Bu açığın açıklamasını Türkçeye çevirdik. Adım adım çözüm önerilerini kritik ve yeni açıklar için hazırlıyoruz; düzeltilmiş sürüm aşağıdaki tabloda, ayrıntılar üreticinin duyurusunda.
Etkilenen sürümler1 yazılım
| Yazılım | Etkilenen | Düzeltildiği sürüm |
|---|---|---|
| vaadin framework | ≥ 8.16.0, < 8.32.2 | 8.32.2 |
| ≥ 8.18.0, < 8.32.2 | 8.32.2 |
Kaynaklar4 kaynak
Kayıt geçmişi
- Yayımlandı
İlgili açıklar
Türkçe metin, resmi kayıtlardaki bilgilerle yapay zekâ yardımıyla yazıldı ve yayından önce otomatik kontrollerden geçti. Bir değişikliği uygulamadan önce üreticinin duyurusuna mutlaka bakın.