Yeni bir araştırmaya göre, GitHub'de 'doğrulanmış' commit'ler aynı dosyaları, yazarı ve tarihi içeren yeni bir commit ile değiştirilebilir ve geçerli bir imza ile 'Doğrulanmış' olarak işaretlenebilir.
Bu, birçok sistemin 'doğrulanmış' commit hash'ini kalıcı ve benzersiz bir ad olarak kabul ettiği için önemlidir. Bir commit'in hash'i, commit'in içindeki her şeyi, imzanın ham baytlarını da içeren bir başlık üzerinden hesaplanır.
Çalışma, üç farklı saldırı yöntemini ortaya koyuyor: ECDSA anahtarları için s imzasını klasik bir elliptik-eğri cebir parçası ile değiştirmek, RSA ve EdDSA anahtarları için imzanın 'unhashed' bölümüne ek bir alan eklemek ve S/MIME (X.509) anahtarları için imzanın DER yapısını değiştirmek.
Bu saldırılar, bir commit'in hash'ini değiştirmeden aynı dosyaları, yazarı ve tarihi içeren yeni bir commit oluşturulmasına olanak tanır.
Araştırmacı, bu sorunun çözümü için imzaların normalize edilmesini öneriyor. Bu, bir commit'in hash'ini benzersiz bir ad olarak kabul etmeden önce, imzanın doğruluğunu ve standardizasyonunu kontrol etmeyi içerir.