- Yama var
- Son 7 gün
- CWE-248
CVE-2026-111181
body-parser'da sıkıştırılmış istek gövdesinden sonra gelen fazla baytlar hizmet dışı bırakmaya yol açıyor
- Yayımlandı
- Güncellendi
- 22 Eki 2026
- Açık yaşı
- 6 gün
- Kaydı açan
- openjs
ÖzetTürkçe
body-parser, Node.js ve Express için bir gövde ayrıştırma ara katmanıdır. 1.20.9 öncesi sürümlerde ve 2.0.0 ile 2.4.0 öncesi 2.x sürümlerinde, tek bir istek varsayılan seçeneklerle çalışan herhangi bir uygulamayı çökertebilir. İstek Content-Encoding (örneğin gzip) başlığı taşıdığında body-parser gövdeyi bir açma (decompression) akışına aktarır ve gövdeyi okuduktan sonra bu akışta hata dinleyicisi bırakmaz. Geçerli bir sıkıştırılmış çerçeveyi takip eden fazla baytlardan oluşan bir yük, normal şekilde çözülür ve uygulama yanıt verir; ancak bu fazla baytlar zaten tamamlanmış çözücüye ulaşır, çözücü bir hata üretir ve bu hata yakalanmamış bir istisna olarak yeniden fırlatılarak süreç sonlandırılır. Gövde ayrıştırma yönlendirmeden önce çalıştığı için eşleşen bir rota gerekmez; gövde ayrıştıran her uç nokta etkilenir. Sorun body-parser 2.4.0 ve 1.20.9 sürümlerinde giderilmiştir; kullanıcıların bu sürümlerden birine veya daha yenisine yükseltmesi önerilir. Geçici çözüm olarak, kodlanmış istekler herhangi bir açma akışı oluşturulmadan reddedilsin diye istek gövdesi açmasını devre dışı bırakabilirsiniz (body-parser inflate seçeneğini false olarak ayarlayarak).
Kaynaktaki açıklama (İngilizce)
body-parser is body parsing middleware for Node.js and Express. In versions before 1.20.9 and in versions from 2.0.0 before 2.4.0, a single request can crash any application using body-parser with default options. When a request carries a Content-Encoding such as gzip, body-parser pipes it into a decompression stream and, after reading the body, leaves that stream with no error listener. A payload of one valid compressed frame followed by trailing bytes decodes and the application responds normally, but the trailing bytes then reach the already-finished decoder, which emits an error that is re-thrown as an uncaught exception and terminates the process. No matching route is required because body parsing runs before routing, so any endpoint that parses a body is affected. The issue is fixed in body-parser 2.4.0 and 1.20.9, and users should upgrade to one of those versions or later. As a workaround, disable request-body inflation (set the body-parser inflate option to false) so encoded requests are rejected before any decompression stream is created.
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 |
|---|---|---|
| body-parser | ≥ 2.0.0, < 2.4.0 | 2.4.0 |
| 2.4.0 Etkilenmiyor | – | |
| < 1.20.9 | 1.20.9 | |
| 1.20.9 Etkilenmiyor | – |
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.