Fidye yazılımı çetesi Clop, önceki site sunucusunun Grav CMS'deki yamalanmamış bir açık üzerinden ele geçirildiğini ve tahrif edildiğini doğrulamasının ardından veri sızıntısı sitesini yeni bir Tor adresine taşıdı. BleepingComputer, açığın kimlik doğrulaması olmadan siteye erişim gerektiren, daha önce belgelenmemiş bir yol geçişi açığı olduğunu tespit etti.
Saldırı, eylül ayının başlarında, gasp grubu ShinyHunters'ın siteye küçük bir metin dosyası yüklemesiyle gerçekleşti; grup daha sonra dosyanın içeriğini Pokémon'daki Umbreon karakterinin logosunu ve grubun sızıntı sitesine bir bağlantıyı içeren tam bir tahrifat sayfasıyla değiştirdi. Grup daha sonra Clop'un Tor hizmeti için kullanılan kaynak kodunu, Grav eklentilerini, sunucu günlüklerini ve özel anahtarları çaldığını belirtti ve dosyaları yayımlamamak karşılığında fidye talep etti.
Clop'un sunucusunda ne oldu?
Clop, sunucudaki Grav kurulumunun tamamen güncel olmadığını kabul etti, ancak sunucularda önemli operasyonel veya mali verilerin bulunduğunu reddetti. Sunucuda yalnızca site içeriğinin bulunduğunu söyledi ve ShinyHunters ile herhangi bir ilişki veya devam eden müzakere olduğunu da reddetti. Rapora göre ShinyHunters daha sonra Clop'un adını sitesinden kaldırdı; grup bunun için ek bir açıklama sunmadı.
Sunucu Grav 1.7.43 çalıştırıyordu. ShinyHunters tarafından sunulan ayrıntılara göre Grav'daki dosya yükleme işleme yöntemi, __unique_form_id__ parametresine güvenli olmayan bir değer geçirilerek istismar edildi. Bu değer, dosya yolları için güvenli bir bileşen olduğu doğrulanmadan tmp/forms/<session_id>/<unique_id> biçiminde geçici bir yol oluşturmak için kullanılıyordu.
../../../shhq gibi yol geçiş dizileri girilerek Grav'ın yüklenen dosya için ayrılan dizinin dışında bir yol oluşturması zorlanabiliyor ve böylece yüklenen dosyanın sistem kurulumu içinde başka bir konuma yazılması sağlanabiliyordu.
Açığın doğrulanması ve düzeltmenin yayımlanması
Grav, BleepingComputer'ın paylaştığı teknik ayrıntıları inceledi ve sistem geliştiricileri saldırganın açığa ilişkin tanımının doğru olduğunu doğruladı. Açık CVE-2026-42608 kimliğiyle kaydedildi. Bu yol geçişi açığı ilk olarak Grav 2.0'da, deneysel 2.0.0-beta.2 sürümünde düzeltildi ve güvenlik danışma bildirimi 27 Nisan'da yayımlandı.
Düzeltme, yalnızca [A-Za-z0-9,_-]{1,64} izin verilenler listesiyle eşleşen tanımlayıcıları kabul eden sanitizeId() işlevini ekledi. Grav, açığın Form eklentisinde değil sistem çekirdeğinde bulunduğunu açıkladı; bu nedenle, vakada belirtilen 7.3.0 sürümü de dahil olmak üzere eklentinin sürümü, sitenin risk altında olup olmadığını değiştirmiyor.
Uygulamada ne değişiyor?
Mevcut Grav 2.x sürümleri aylardır korunuyor olsa da düzeltme, hâlâ çok sayıda site tarafından kullanılan 1.7 dalına aktarılmamıştı. İstismar ayrıntılarının geliştiricilerle paylaşılmasının ardından Grav, 1.7 dalı için 1.7.53.4 sürümünü yayımladı ve bu dalın kullanıcılarını sürüme yükseltmeye çağırdı.
Olay, içerik yönetim sisteminin daha eski bir dalına güvenmenin, işlevle ilişkili eklenti güncel olsa bile temel bileşende bilinen bir açığı bırakabileceğini gösteriyor. Sızıntı sitesinin yeni bir adrese taşınması Clop açısından saldırının operasyonel etkisini gideriyor, ancak ShinyHunters'ın çaldığını iddia ettiği dosyaların gerçekten hassas veriler içerip içermediğini tek başına kanıtlamıyor; Clop bunu reddetti ve kaynak, iddiayı kesinleştirecek bağımsız bir kanıt sunmadı.