CVE-2021-21271
Açıklama
Tendermint Core, herhangi bir programlama dilinde yazılmış bir durum geçiş makinesini alan ve bunu birçok makinede güvenli bir şekilde çoğaltan açık kaynaklı bir Bizans Hata Toleranslı (BFT) ara katman yazılımıdır. Tendermint Core v0.34.0, kötü niyetli davranış kanıtlarının işlenmesi için yeni bir yöntem getirmiştir. Bunun bir parçası olarak, Evidence yapılarına yeni bir Timestamp alanı eklenmiştir. Bu zaman damgası, bir blok oluşturulduğunda ve önerildiğinde kullanılan algoritmanın aynısı kullanılarak hesaplanacaktır. (Bu algoritma, bu belirli bloğun son commit işleminin zaman damgasına dayanır.) Tendermint Core v0.34.0-v0.34.2 sürümlerinde, çift imzalama gözlemlendiğinde DuplicateVoteEvidence oluşturmaktan konsensüs reaktörü sorumludur. Ancak, konsensüs reaktörü tarafından oluşturulurken mevcut blok hala "yoldadır" ve henüz ağ konsensüsü aracılığıyla kesinleşmemiştir. Bu durum, ağdaki farklı düğümlerin DuplicateVoteEvidence'a zaman damgası atarken farklı "son commit"ler gözlemleyebileceği anlamına gelir. Buna bağlı olarak, farklı düğümler aynı yükseklikte ancak farklı zaman damgalarına sahip DuplicateVoteEvidence nesneleri oluşturabilir. Ardından, tek bir DuplicateVoteEvidence nesnesi (tek bir zaman damgası ile) sonunda blokta kesinleşecektir, ancak bu durum farklı bir zaman damgasına sahip olan tüm DuplicateVoteEvidence'ların geçersiz sayılmasına neden olur. Geçersiz DuplicateVoteEvidence oluşturan herhangi bir düğüm, geçersiz kanıtlar önermeye devam edecektir; eşleri bunu görebilir ve bu düğümle bağlantıyı kesmeyi seçebilir. Bu hata, Tendermint Core v0.34.0-v0.34.2 sürümlerinde çift imzalamaların hizmet reddi (DoS) vektörleri olduğu anlamına gelmektedir. Tendermint Core v0.34.3, bu hatayı düzelten bir güvenlik sürümüdür. v0.34.3 itibarıyla, DuplicateVoteEvidence artık konsensüs reaktörü tarafından oluşturulmamaktadır; bunun yerine konsensüs reaktörü Vote'ların kendisini, artık DuplicateVoteEvidence oluşturmaktan sorumlu olan EvidencePool'a aktarmaktadır. EvidencePool, ağ genelinde tutarlı olması gereken zaman damgası bilgilerine sahiptir, bu da bu reaktörde oluşturulan DuplicateVoteEvidence'ların tutarlı zaman damgalarına sahip olması gerektiği anlamına gelir. Bu sürüm, konsensüs ve kanıt reaktörleri arasındaki API'yi değiştirmektedir.
Nasıl düzeltilir
- github.com/tendermint/tendermint0.34.3 ya da sonraki bir sürüm
Etkilenen ürünler
| Ürün | Etkilenen sürümler | Düzeltildiği sürüm |
|---|---|---|
| tendermint tendermint | 0.34.0 ≤ v ≤ 0.34.2 | — |
| github.com/tendermint/tendermintGo | 0.34.0 ≤ v < 0.34.3 | 0.34.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.