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

View File

@ -39,7 +39,7 @@ auto main(int argc, char** argv) -> int {
namespace ballistica {
// 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 int kEngineApiVersion = 9;