added protection against game-query-packet spam attack

This commit is contained in:
Eric 2024-11-08 08:55:38 -08:00
parent 9fa5b8da84
commit bfb458110c
No known key found for this signature in database
GPG Key ID: 89C93F0F8D6D5A98
5 changed files with 51 additions and 48 deletions

88
.efrocachemap generated
View File

@ -4099,50 +4099,50 @@
"build/assets/windows/Win32/ucrtbased.dll": "2def5335207d41b21b9823f6805997f1", "build/assets/windows/Win32/ucrtbased.dll": "2def5335207d41b21b9823f6805997f1",
"build/assets/windows/Win32/vc_redist.x86.exe": "b08a55e2e77623fe657bea24f223a3ae", "build/assets/windows/Win32/vc_redist.x86.exe": "b08a55e2e77623fe657bea24f223a3ae",
"build/assets/windows/Win32/vcruntime140d.dll": "865b2af4d1e26a1a8073c89acb06e599", "build/assets/windows/Win32/vcruntime140d.dll": "865b2af4d1e26a1a8073c89acb06e599",
"build/prefab/full/linux_arm64_gui/debug/ballisticakit": "c7f929ea72e941731448dd9eb1ff103c", "build/prefab/full/linux_arm64_gui/debug/ballisticakit": "a6841d15af7004dd8d2d386a842b4709",
"build/prefab/full/linux_arm64_gui/release/ballisticakit": "69b54059d300e5af4649fc150daa745f", "build/prefab/full/linux_arm64_gui/release/ballisticakit": "20c661b438cde04f39290c2be62ea75e",
"build/prefab/full/linux_arm64_server/debug/dist/ballisticakit_headless": "77a9cb940c68bf2f066b4816e98189ba", "build/prefab/full/linux_arm64_server/debug/dist/ballisticakit_headless": "183103bc7744a6be137f143462bca148",
"build/prefab/full/linux_arm64_server/release/dist/ballisticakit_headless": "bc25c1ad96452b43ec0726bb44cbaa7d", "build/prefab/full/linux_arm64_server/release/dist/ballisticakit_headless": "3a8b771b086d7f32bd0f77728eb8c887",
"build/prefab/full/linux_x86_64_gui/debug/ballisticakit": "c46135bff8bd128b9767d54a0fc1e3ef", "build/prefab/full/linux_x86_64_gui/debug/ballisticakit": "a678e196b105a83509177ecb9a9a6d5a",
"build/prefab/full/linux_x86_64_gui/release/ballisticakit": "f94f4c535a18c949325ce78c8436fc36", "build/prefab/full/linux_x86_64_gui/release/ballisticakit": "37e331129561ac101082fce08ffbc486",
"build/prefab/full/linux_x86_64_server/debug/dist/ballisticakit_headless": "478b0ff5ea9a318c57e30afa0bff309c", "build/prefab/full/linux_x86_64_server/debug/dist/ballisticakit_headless": "0751de47e88db5d9ce64f58f8bb45762",
"build/prefab/full/linux_x86_64_server/release/dist/ballisticakit_headless": "bbc3c1084f79c764c7b795e0dd47791e", "build/prefab/full/linux_x86_64_server/release/dist/ballisticakit_headless": "92514f06443aa7dac0ad3d8988622976",
"build/prefab/full/mac_arm64_gui/debug/ballisticakit": "d80a116f33ea624fc255922e11b0e691", "build/prefab/full/mac_arm64_gui/debug/ballisticakit": "a7ca029db29d4b8327ed503db48d85f2",
"build/prefab/full/mac_arm64_gui/release/ballisticakit": "3edb93486fb92a57c8922cb069b56204", "build/prefab/full/mac_arm64_gui/release/ballisticakit": "36c37c66319acfd4b7743e62b7cb1e77",
"build/prefab/full/mac_arm64_server/debug/dist/ballisticakit_headless": "58b5347eaf3b22c3a289496561d91b82", "build/prefab/full/mac_arm64_server/debug/dist/ballisticakit_headless": "1604c4533a5ac25e8eecaa142dcc2f6e",
"build/prefab/full/mac_arm64_server/release/dist/ballisticakit_headless": "515e4b481a8d836dd66c2c26d5a33683", "build/prefab/full/mac_arm64_server/release/dist/ballisticakit_headless": "702f21a77364207bd5d16db422eb86f7",
"build/prefab/full/mac_x86_64_gui/debug/ballisticakit": "760c4f2a06552388a6b2471153407c95", "build/prefab/full/mac_x86_64_gui/debug/ballisticakit": "1b43680783be88f487d7970b8aced715",
"build/prefab/full/mac_x86_64_gui/release/ballisticakit": "37fc4b306fdf241bf8f20b62b6522c07", "build/prefab/full/mac_x86_64_gui/release/ballisticakit": "4a731236b62ff6c55256a466a85f6ce9",
"build/prefab/full/mac_x86_64_server/debug/dist/ballisticakit_headless": "7c6b02573764c31069d57b9830a49788", "build/prefab/full/mac_x86_64_server/debug/dist/ballisticakit_headless": "e10dcd80e905db982cb27a25a95855c0",
"build/prefab/full/mac_x86_64_server/release/dist/ballisticakit_headless": "0a0fd92dabdd46ae8bd7cbe5eda1691a", "build/prefab/full/mac_x86_64_server/release/dist/ballisticakit_headless": "cf665bb5ff3b616c309890834f38cf50",
"build/prefab/full/windows_x86_gui/debug/BallisticaKit.exe": "2d5182a35948e4ab1f34c0db7abd04a8", "build/prefab/full/windows_x86_gui/debug/BallisticaKit.exe": "7b8324461441b1e0357ee2b5964772f7",
"build/prefab/full/windows_x86_gui/release/BallisticaKit.exe": "88e3d75df70c5840b7574e8f4cb120f0", "build/prefab/full/windows_x86_gui/release/BallisticaKit.exe": "7442618d1ffd96cc4d68bdc30e62ad20",
"build/prefab/full/windows_x86_server/debug/dist/BallisticaKitHeadless.exe": "2e3b8abb31a64ac55ee0f299e44b9fc2", "build/prefab/full/windows_x86_server/debug/dist/BallisticaKitHeadless.exe": "f1dc5326c6e36828a390d04e6c01ba8d",
"build/prefab/full/windows_x86_server/release/dist/BallisticaKitHeadless.exe": "863ef09ad556227ca507d367db8808a8", "build/prefab/full/windows_x86_server/release/dist/BallisticaKitHeadless.exe": "14071d8daeafb1ccbc11076ef6ac5774",
"build/prefab/lib/linux_arm64_gui/debug/libballisticaplus.a": "ffa1f56e340a4c8ff4d801eca23da2e2", "build/prefab/lib/linux_arm64_gui/debug/libballisticaplus.a": "45b1203c8f48993bb49cb5ede270cbbf",
"build/prefab/lib/linux_arm64_gui/release/libballisticaplus.a": "6dfd5c8a2af1118f3d756a279f95cda1", "build/prefab/lib/linux_arm64_gui/release/libballisticaplus.a": "462796ac70e26fe008fc0930753e8036",
"build/prefab/lib/linux_arm64_server/debug/libballisticaplus.a": "ffa1f56e340a4c8ff4d801eca23da2e2", "build/prefab/lib/linux_arm64_server/debug/libballisticaplus.a": "45b1203c8f48993bb49cb5ede270cbbf",
"build/prefab/lib/linux_arm64_server/release/libballisticaplus.a": "6dfd5c8a2af1118f3d756a279f95cda1", "build/prefab/lib/linux_arm64_server/release/libballisticaplus.a": "462796ac70e26fe008fc0930753e8036",
"build/prefab/lib/linux_x86_64_gui/debug/libballisticaplus.a": "bb35138babeb07c358adc834f4ed8c2e", "build/prefab/lib/linux_x86_64_gui/debug/libballisticaplus.a": "5be54ca87f60ffd6430108322a3b2751",
"build/prefab/lib/linux_x86_64_gui/release/libballisticaplus.a": "973f0df433d467431d0aaf4fc7534446", "build/prefab/lib/linux_x86_64_gui/release/libballisticaplus.a": "7f6452f6dea8fe19e32de7a7b1dc1fff",
"build/prefab/lib/linux_x86_64_server/debug/libballisticaplus.a": "bb35138babeb07c358adc834f4ed8c2e", "build/prefab/lib/linux_x86_64_server/debug/libballisticaplus.a": "5be54ca87f60ffd6430108322a3b2751",
"build/prefab/lib/linux_x86_64_server/release/libballisticaplus.a": "973f0df433d467431d0aaf4fc7534446", "build/prefab/lib/linux_x86_64_server/release/libballisticaplus.a": "7f6452f6dea8fe19e32de7a7b1dc1fff",
"build/prefab/lib/mac_arm64_gui/debug/libballisticaplus.a": "09d1ebc7496cae1ecc011dc771e2f452", "build/prefab/lib/mac_arm64_gui/debug/libballisticaplus.a": "b028662de3f7a0343598bdc09b12cde8",
"build/prefab/lib/mac_arm64_gui/release/libballisticaplus.a": "c18995f1322e4ec94cbeff05559521a7", "build/prefab/lib/mac_arm64_gui/release/libballisticaplus.a": "601828216b02db67da60ae8f0f75964e",
"build/prefab/lib/mac_arm64_server/debug/libballisticaplus.a": "09d1ebc7496cae1ecc011dc771e2f452", "build/prefab/lib/mac_arm64_server/debug/libballisticaplus.a": "b028662de3f7a0343598bdc09b12cde8",
"build/prefab/lib/mac_arm64_server/release/libballisticaplus.a": "c18995f1322e4ec94cbeff05559521a7", "build/prefab/lib/mac_arm64_server/release/libballisticaplus.a": "601828216b02db67da60ae8f0f75964e",
"build/prefab/lib/mac_x86_64_gui/debug/libballisticaplus.a": "2152d332baa5a62c93f9e4e5bf9385bf", "build/prefab/lib/mac_x86_64_gui/debug/libballisticaplus.a": "9da47d5c11e1ef092a181c59ff4b9e6c",
"build/prefab/lib/mac_x86_64_gui/release/libballisticaplus.a": "d371f717382406b209143c33b843aaa4", "build/prefab/lib/mac_x86_64_gui/release/libballisticaplus.a": "bb665a4035cd8ec9352d20c59c72031c",
"build/prefab/lib/mac_x86_64_server/debug/libballisticaplus.a": "6fbb391cb33b40f51a3d5d9f275cc9b8", "build/prefab/lib/mac_x86_64_server/debug/libballisticaplus.a": "9a326b4ecd0db9be46adf95955f8da6f",
"build/prefab/lib/mac_x86_64_server/release/libballisticaplus.a": "d371f717382406b209143c33b843aaa4", "build/prefab/lib/mac_x86_64_server/release/libballisticaplus.a": "bb665a4035cd8ec9352d20c59c72031c",
"build/prefab/lib/windows/Debug_Win32/BallisticaKitGenericPlus.lib": "3b1d54bd110f234116682501398ec585", "build/prefab/lib/windows/Debug_Win32/BallisticaKitGenericPlus.lib": "0ece1fdeab74de4be599504a591d949f",
"build/prefab/lib/windows/Debug_Win32/BallisticaKitGenericPlus.pdb": "bfa1cf5952ab524912de7142d11c528e", "build/prefab/lib/windows/Debug_Win32/BallisticaKitGenericPlus.pdb": "079c882f0c6baa10f2ef7f42b087f617",
"build/prefab/lib/windows/Debug_Win32/BallisticaKitHeadlessPlus.lib": "6bb5e44746dc0e90da484c1f2a641eb3", "build/prefab/lib/windows/Debug_Win32/BallisticaKitHeadlessPlus.lib": "abcf724404c5b00035caaf079fc050e6",
"build/prefab/lib/windows/Debug_Win32/BallisticaKitHeadlessPlus.pdb": "5dd796d8e611242b7bae209702465710", "build/prefab/lib/windows/Debug_Win32/BallisticaKitHeadlessPlus.pdb": "452d56bc2ac76417a381e264ad125308",
"build/prefab/lib/windows/Release_Win32/BallisticaKitGenericPlus.lib": "6d6b34cfb5c5a3e73115a4795b033e85", "build/prefab/lib/windows/Release_Win32/BallisticaKitGenericPlus.lib": "8b6394f42bcc5f399b0cd4c01a5fbd38",
"build/prefab/lib/windows/Release_Win32/BallisticaKitGenericPlus.pdb": "ec77777ec5b80017b0846c084cc29cbd", "build/prefab/lib/windows/Release_Win32/BallisticaKitGenericPlus.pdb": "d1575db9537f7d238be33f78b024e02e",
"build/prefab/lib/windows/Release_Win32/BallisticaKitHeadlessPlus.lib": "675df177441a2317bb1f8ee61478566b", "build/prefab/lib/windows/Release_Win32/BallisticaKitHeadlessPlus.lib": "b542956867ac391f152b9f891449a655",
"build/prefab/lib/windows/Release_Win32/BallisticaKitHeadlessPlus.pdb": "1f28de0b14414abe131d1694c38f9f89", "build/prefab/lib/windows/Release_Win32/BallisticaKitHeadlessPlus.pdb": "ebf8090869fbc6f443a8eef83b1efebd",
"src/assets/ba_data/python/babase/_mgen/__init__.py": "f885fed7f2ed98ff2ba271f9dbe3391c", "src/assets/ba_data/python/babase/_mgen/__init__.py": "f885fed7f2ed98ff2ba271f9dbe3391c",
"src/assets/ba_data/python/babase/_mgen/enums.py": "794d258d59fd17a61752843a9a0551ad", "src/assets/ba_data/python/babase/_mgen/enums.py": "794d258d59fd17a61752843a9a0551ad",
"src/ballistica/base/mgen/pyembed/binding_base.inc": "3a583e7e03bd4907b21adc3bf5729d15", "src/ballistica/base/mgen/pyembed/binding_base.inc": "3a583e7e03bd4907b21adc3bf5729d15",

View File

@ -1,4 +1,4 @@
### 1.7.37 (build 22082, api 9, 2024-11-07) ### 1.7.37 (build 22086, api 9, 2024-11-08)
- Bumping api version to 9. As you'll see below, there's some UI changes that - Bumping api version to 9. As you'll see below, there's some UI changes that
will require a bit of work for any UI mods to adapt to. If your mods don't will require a bit of work for any UI mods to adapt to. If your mods don't
touch UI stuff at all you can simply bump your api version and call it a day. touch UI stuff at all you can simply bump your api version and call it a day.
@ -145,6 +145,8 @@
- (build 22072) Added a 'Use insecure connections' option in settings -> - (build 22072) Added a 'Use insecure connections' option in settings ->
advanced. This may make it possible to play from places such as Iran where ssl advanced. This may make it possible to play from places such as Iran where ssl
connections are being blocked. Do not enable this if you don't need to. connections are being blocked. Do not enable this if you don't need to.
- (build 22085) Added protection against an attack consisting of spamming
invalid game-query packets.
### 1.7.36 (build 21944, api 8, 2024-07-26) ### 1.7.36 (build 21944, api 8, 2024-07-26)
- Wired up Tokens, BombSquad's new purchasable currency. The first thing these - Wired up Tokens, BombSquad's new purchasable currency. The first thing these

View File

@ -53,7 +53,7 @@ if TYPE_CHECKING:
# Build number and version of the ballistica binary we expect to be # Build number and version of the ballistica binary we expect to be
# using. # using.
TARGET_BALLISTICA_BUILD = 22082 TARGET_BALLISTICA_BUILD = 22086
TARGET_BALLISTICA_VERSION = '1.7.37' TARGET_BALLISTICA_VERSION = '1.7.37'

View File

@ -1506,7 +1506,8 @@ void ClassicAppMode::HandleGameQuery(const char* buffer, size_t size,
g_base->network_writer->PushSendToCall(msg_buffer, SockAddr(*from)); g_base->network_writer->PushSendToCall(msg_buffer, SockAddr(*from));
} else { } else {
g_core->Log(LogName::kBaNetworking, LogLevel::kError, // Log invalid packets only once to avoid weaponized log spam.
BA_LOG_ONCE(LogName::kBaNetworking, LogLevel::kError,
"Got invalid game-query packet of len " + std::to_string(size) "Got invalid game-query packet of len " + std::to_string(size)
+ "; expected 5."); + "; expected 5.");
} }

View File

@ -39,7 +39,7 @@ auto main(int argc, char** argv) -> int {
namespace ballistica { namespace ballistica {
// These are set automatically via script; don't modify them here. // These are set automatically via script; don't modify them here.
const int kEngineBuildNumber = 22082; const int kEngineBuildNumber = 22086;
const char* kEngineVersion = "1.7.37"; const char* kEngineVersion = "1.7.37";
const int kEngineApiVersion = 9; const int kEngineApiVersion = 9;