CVE-2026-26209
Açıklama
cbor2, Concise Binary Object Representation (CBOR) serileştirme formatı için kodlama ve kod çözme sağlar. 5.9.0 öncesindeki sürümler, derinlemesine iç içe geçmiş CBOR yapıları kod çözülürken kontrolsüz özyineleme nedeniyle oluşan bir Hizmet Reddi (DoS) saldırısına karşı savunmasızdır. Bu güvenlik açığı hem saf Python uygulamasını hem de `_cbor2` C uzantısını etkiler. C uzantısı, veri odaklı bir derinlik sınırı yerine Python'un dahili özyineleme sınırlarına (`Py_EnterRecursiveCall`) dayanır; bu da sınıra ulaşıldığında hala `RecursionError` oluşturduğu ve çalışan işlemi çökerttiği anlamına gelir. Kütüphane orta düzeydeki iç içe geçme seviyelerini yönetse de kesin bir derinlik sınırına sahip değildir. Bir saldırgan, yaklaşık 100.000 adet iç içe geçmiş dizi `0x81` içeren özel olarak hazırlanmış bir CBOR yükü sağlayabilir. `cbor2.loads()` bunu ayrıştırmaya çalıştığında, Python yorumlayıcısının maksimum özyineleme derinliğine ulaşır veya yığını tüketir, bu da işlemin `RecursionError` ile çökmesine neden olur. Kütüphane kendi sınırlarını zorlamadığı için harici bir saldırganın ana uygulamanın yığın kaynağını tüketmesine izin verir. Birçok web uygulama sunucusunda (örneğin Gunicorn, Uvicorn) veya görev kuyruğunda (Celery), işlenmemiş bir `RecursionError` çalışan işlemi derhal sonlandırır. Bu küçük (<100KB) kötü amaçlı paketlerden oluşan bir akış göndererek, bir saldırgan çalışan işlemleri tekrar tekrar çökertebilir ve bu da uygulama için tam bir Hizmet Reddi ile sonuçlanır. Sürüm 5.9.0 bu sorunu giderir.
Nasıl düzeltilir
- agronholm cbor25.9.0 ya da sonraki bir sürüm
- cbor25.9.0 ya da sonraki bir sürüm
Etkilenen ürünler
| Ürün | Etkilenen sürümler | Düzeltildiği sürüm |
|---|---|---|
| agronholm cbor2 | v < 5.9.0 | 5.9.0 |
| cbor2PyPI | v < 5.9.0 | 5.9.0 |
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.