CVE-2026-52811
Açıklama
Gogs, açık kaynaklı ve kendi sunucunuzda barındırabileceğiniz bir Git servisidir. 0.14.3 sürümünden önce, (*Repository).UploadRepoFiles sembolik bağlantıları yalnızca yükleme hedefinin yaprağında kontrol eder (osx.IsSymlink(targetPath)). Benzer işlevler olan UpdateRepoFile, DeleteRepoFile ve GetDiffPreview, her bileşeni lstat ile kontrol eden hasSymlinkInPath fonksiyonunu kullanırken; UploadRepoFiles bu durumun tek istisnasıdır. Repo-yazma erişimine sahip bir saldırgan, dosya adı gerçek bir ters eğik çizgi (\) içeren (Linux'ta filepath.Base tarafından korunan ve ardından pathx.Clean tarafından / işaretine dönüştürülen) çok parçalı bir yükleme kullanarak, yazma işlemini daha önce kaydedilmiş bir dizin sembolik bağlantısı üzerinden yönlendirebilir. iox.CopyFile, hedef dosyayı os.Create (O_NOFOLLOW olmadan) ile açtığından, çekirdek üst sembolik bağlantıyı takip eder ve saldırgana ait baytları gogs UID'sinin yazabildiği herhangi bir yere yazar — örneğin ~git/.ssh/authorized_keys üzerinden SSH erişimi veya <repo>.git/hooks/post-receive üzerinden bir sonraki push işleminde uzaktan kod çalıştırma (RCE). Bu güvenlik açığı 0.14.3 sürümünde giderilmiştir.
Nasıl düzeltilir
- gogs.io/gogs0.14.3 ya da sonraki bir sürüm
Etkilenen ürünler
| Ürün | Etkilenen sürümler | Düzeltildiği sürüm |
|---|---|---|
| gogs.io/gogsGo | v < 0.14.3, Aralık belirtilmemiş | 0.14.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.