Güvenlik
Bozuk bağlantı, HTTP ve latent event verisiyle sunucu çökmesi
Bağlantı el sıkışması, HTTP istek ayrıştırıcısı ve latent event birleştirmede sınır kontrolleri eksikti. Özel hazırlanmış veri gelince sunucu çökebiliyordu ve sunucu portuna ulaşabilen herkes bunu tetikleyebiliyordu. 38435 veya üstüne geç.
Güvenlik
Tek bir oyuncu game event yağdırarak sunucuyu kilitleyebiliyordu
37262 öncesinde netGameEvent paketlerine çekirdekte bir hız sınırı yoktu. Tek bir oyuncu weaponDamageEvent gibi eventleri yağdırıp ana thread'i kilitleyebiliyor, txAdmin de sunucuyu yeniden başlatmak zorunda kalıyordu. Sorun 35636 ve 36727'de raporlandı. 37262 ile yeni 'netGameEvent' hız sınırını aşan oyuncu sunucudan atılıyor.
Güvenlik
Latent event birleştirmeye sınır getirildi
Oyuncudan sunucuya gelen büyük latent eventlerin birleştirilmesine kesin sınırlar ve 'latent ACK overflow' için teşhis kaydı eklendi. Eski sürümlerde bir oyuncu gereğinden fazla yarım event durumu tutturabiliyordu, bu da bellek ve CPU yiyordu.
Güvenlik
Oyuncu latent eventlerinde daha sıkı hız sınırı
Oyunculardan gelen latent (TriggerLatentServerEvent) trafiğinin hız sınırı, reassembly paket işleyicisinde sıkılaştırıldı. Eski sürümlerde bir oyuncu latent event trafiğini olması gerekenden fazla zorlayabiliyordu.
Güvenlik
Oyuncu başına bekleyen latent event sınırı
9635 öncesinde bir oyuncu sunucuda sınırsız sayıda yarım kalmış latent event açık tutabiliyordu. Artık varsayılan sınır 100. Sınırı sv_netEventReassemblyMaxPendingEvents ile ayarlayabilirsin, sv_netEventReassemblyUnlimitedPendingEvents ise sınırı kapatır.
Güvenlik
Oyuncular artık birden fazla oyuncu objesi oluşturamıyor
OneSync'te modlu bir istemci kendisi için birden fazla ağ oyuncu objesi (CNetObjPlayer) kaydedebiliyordu. Bu, desync ve çökme için bilinen bir suistimal yolu. 23984'ten beri sunucu fazlalarını reddediyor.
Güvenlik
Yeni block_net_game_event komutu
Sunucu sahipleri artık block_net_game_event ile oyunculardan gelen belirli net game event türlerini engelleyebiliyor, unblock_net_game_event ile de geri açabiliyor. Bir event türü suistimal ediliyorsa işe yarar. Komut 16541'de sadeleştirildi.
Güvenlik
sv_protectServerEntities: sunucu entity'lerini oyuncular silemesin
Varsayılanı kapalı olan bu yeni replicated convar, sunucu scriptlerinin oluşturduğu entity'leri oyuncuların silmesine karşı korur. Hileciler sunucunun spawnladığı araç, ped ya da propları siliyorsa 14317 veya üstüne geç ve sv_protectServerEntities true yap.
Güvenlik
Başkalarının entity'lerinde synchronized scene artık filtreleniyor
Sunucu artık bir oyuncunun sahibi olmadığı entity'ler üzerinde başlattığı network synchronized scene'leri kontrol ediyor. Bu, başka oyunculara zorla animasyon oynatmanın yaygın bir yolu. 13174 ayrıca bunu entity bazında yönetmek için SET/GET_ENTITY_REMOTE_SYNCED_SCENES_ALLOWED native'lerini ekliyor.
Güvenlik
State bag sıkı modu (sv_stateBagStrictMode)
setr sv_stateBagStrictMode true yaparsan oyuncular replicated state bag'leri hiç değiştiremez, onları yalnızca sunucu yazar. Scriptlerin istemciden yazılan state bag'e ihtiyaç duymuyorsa aç, çünkü hileciler bunları sık sık suistimal ediyor.
Güvenlik
State bag paket doğrulaması
Gelen state bag paketlerinin doğrulaması sıkılaştırıldı, bozuk istemci paketleri işlenmeden reddediliyor. Eski sürümler bozuk girdiyi daha rahat kabul ediyor.
Güvenlik
players.json artık oyuncu kimliklerini açık etmiyor (CVE-2024-46310)
Herkese açık /players.json eskiden her oyuncunun kimliklerini (license, Steam, Discord vb.) herkese gösteriyordu. CVE-2024-46310 bu sorunu takip ediyor ve v9601 ile öncesini sayıyor. 10188'den beri sv_exposePlayerIdentifiersInHttpEndpoint true yapmadıkça kimlikler gizli, sv_playersToken ile de endpoint'i kısıtlayabilirsin.
Güvenlik
/perf ve profileData.json endpoint'lerine kimlik doğrulama
Sunucunun performans ve profiler HTTP endpoint'leri kimlik bilgisi olmadan okunabiliyordu. 'TCP endpoint hardening' kapsamında /perf artık basic auth, profileData.json ise token istiyor. Eski sürümler bu iç verileri URL'yi bilen herkese açıyor.
Güvenlik
rcon_password salt okunur yapıldı
Kötüye kullanımı önlemek için rcon_password salt okunur bir convar yapıldı. Örneğin bir resource artık uzaktan konsol şifresini çalışırken değiştiremiyor. Hâlâ RCON kullanıyorsan 9813 veya üstünü kullan.
Güvenlik
Ağ bileşeni boyut hesabında integer overflow
Ortak ağ kodundaki bir boyut hesabı beklenmedik değerlerde taşabiliyordu, bu da bellek hatalarına yol açabilir. 10048'de düzeltildi.
Güvenlik
Array handler güncellemelerine (msgArrayUpdate) hız sınırı
Oyuncular array update paketlerini hiç hız sınırı olmadan gönderebiliyordu. 8151 bir sınır ekledi ve böylece bir flood yolu kapandı.
Ses
Mumble sunucusu ağ dayanıklılığı
Aşırı büyük ya da geçersiz giden ses mesajları eskiden bir assertion'a takılıyordu. Artık sessizce atılıyorlar ve gönderim kuyruğu düzgün boşaltılıyor. Ses sunucusunun kötü trafik altında takılma veya çökme ihtimali azalıyor.