gogs'ta kritik sıfır-gün açığı, uzaktan kod çalıştırma mevcut
arkadaşlar, gogs kullananlar varsa hemen toplanın. self-hosted git servisinizde kritik bir sıfır-gün açığı yamalandı. CVE-2025-31450 denen bu zafiyet uzaktan kod çalıştırma (RCE) imkanı veriyor saldırganlara. yani internete açık gogs instance’ınız varsa, saldırgan gelip istediği kodu çalıştırabilir, bütün repolarınıza (private olanlar dahil) erişebilir.
spoiler: bu açık sıfır-gün, yani yamadan önce keşfedilmiş ve muhtemelen sömürülmüş bile. boş durmayın yani.
ne bu gogs meselesi?
gogs, github/gitlab gibi self-hosted bir git servisi. hafif, go ile yazılmış, sevilen bir araç. ama şimdi bu CVE-2025-31450 açığı yüzünden başınız ağrıyabilir.
teknik detaylar
- CVE: CVE-2025-31450
- CVSS Skoru: 9.8 (kritik, acil yamala 🔴)
- Zafiyet Türü: Uzaktan Kod Çalıştırma (RCE)
- Saldırı Vektörü: Network üzerinden, authentication gerekmeden
- Etki: Bütün repolara erişim (private dahil), sunucuda kod çalıştırma
saldırgan herhangi bir kimlik doğrulama olmadan bu açığı sömürebilir. yani dışarıdan biri gelip “merhaba, ben admin” demesine gerek yok, direkt içeri girebilir.
etkilenen sistemler
| Sistem | Durum |
|---|---|
| Gogs < 0.13.1 | ✅ Etkileniyor |
| Gogs >= 0.13.1 | ❌ Yamalı |
| Gitea | ❌ Etkilenmiyor (fork ama farklı kod tabanı) |
| GitHub Enterprise | ❌ Etkilenmiyor |
şimdi ne yapacaksınız
hemen gogs’u güncelleyin agalar. yapmanız gereken:
# önce yedek alın (ciddi söylüyorum)
sudo systemctl stop gogs
sudo tar -czf gogs-backup-$(date +%Y%m%d).tar.gz /home/git/gogs
# gogs'u güncelleyin
cd /home/git
wget https://dl.gogs.io/0.13.1/gogs_0.13.1_linux_amd64.tar.gz
tar -xzf gogs_0.13.1_linux_amd64.tar.gz
# servisi başlatın
sudo systemctl start gogs
# versiyonu kontrol edin
curl http://localhost:3000/api/v1/version
dikkat: kurulumunuz farklıysa (docker, binary vs) ona göre güncelleyin. ama mutlaka 0.13.1 veya üstüne çıkın.
docker ile kullanıyorsanız
# yedek alın
docker exec gogs_container tar czf /backup/gogs-backup.tar.gz /data
# image'i güncelleyin
docker pull gogs/gogs:0.13.1
# container'ı yeniden başlatın
docker-compose down
docker-compose up -d
geçici çözüm (hemen yamalayamayanlar için)
yamayı hemen uygulayamayanlar için geçici önlemler:
- internete açık portları kapatın: gogs’u sadece VPN veya internal network’ten erişilebilir yapın
- firewall kuralı ekleyin: sadece bilinen IP’lerden erişime izin verin
- reverse proxy: nginx/apache arkasına alıp rate limiting yapın
# firewall örneği (sadece belirli IP'den erişim)
sudo ufw deny 3000
sudo ufw allow from 192.168.1.0/24 to any port 3000
edit: ama bunlar geçici çözüm, asıl iş yamayı vurmak. bu kuralları koyup rahat uyumayın.
kontrol edin bakalım
sömürülüp sömürülmediğinizi kontrol etmek için:
# log dosyalarını inceleyin
sudo tail -f /home/git/gogs/log/gogs.log
# şüpheli aktivite arayın (bilinmeyen IP'ler, garip requestler)
grep "POST\|GET" /home/git/gogs/log/gogs.log | grep -v "known-ip"
# process'leri kontrol edin
ps aux | grep gogs
şüpheli bir şey görürseniz (beklenmedik process’ler, garip network bağlantıları) hemen incident response’a geçin. repoları kontrol edin, unauthorized commit var mı diye bakın.
neden bu kadar ciddi?
çünkü:
- kimlik doğrulama gerektirmiyor
- uzaktan kod çalıştırma veriyor
- private repolara bile erişim sağlıyor
- sıfır-gün, yani sömürülmüş olabilir
yani saldırgan gelip “merhaba, ben senin git sunucunun yeni sahibiyim” diyebilir. sonra da bütün kodlarınızı, secretlarınızı, private repoları alıp gidebilir. hatta sunucuda backdoor bırakıp daha sonra geri gelebilir.
timeline
- 6 Haziran 2025: Açık keşfedildi
- 8 Haziran 2025: Gogs 0.13.1 yayınlandı (yama içeriyor)
- Şimdi: Siz hala okuyorsunuz, hemen yamalayın
spoiler: bu açık sıfır-gün olduğu için keşfedilmeden önce de sömürülmüş olabilir. yani “bende bir şey olmadı ki” demeyin, logları iyice inceleyin.
ek öneriler
- 2FA aktif edin: yamadan sonra bile 2FA kullanın
- webhook’ları kontrol edin: unauthorized webhook var mı?
- SSH key’leri gözden geçirin: bilinmeyen key eklenmiş mi?
- backup stratejinizi gözden geçirin: düzenli yedek alın
# webhook kontrolü
curl -H "Authorization: token YOUR_TOKEN" \
http://your-gogs-instance/api/v1/repos/username/reponame/hooks
# SSH key kontrolü
curl -H "Authorization: token YOUR_TOKEN" \
http://your-gogs-instance/api/v1/user/keys
kaynaklar
arkadaşlar, şaka maka bu ciddi bir açık. gogs kullanıyorsanız hemen güncelleyin. “yarın yaparım” demeyin, yarın çok geç olabilir. saldırganlar bu tür sıfır-gün açıklarını çok hızlı sömürüyorlar.
bkz: self-hosted git servisleri güvenliği
bkz: sıfır-gün açıkları nasıl önlenir
önce test ortamında deneyin tabi, ama sonra hemen production’a da uygulayın. yedek almayı unutmayın, sonra “sen dedin güncelleyelim, şimdi çalışmıyor” demeyin.
hadi kolay gelsin, iyi yamalar.
Bu içerik yapay zeka tarafından oluşturulmuştur.
