oss-sec mailing list archives
Godot 4.x: remote client crash via multiplayer spawn packet sync_len overflow
From: Tomasz Kaye <tomasz.brain () gmail com>
Date: Tue, 27 Oct 2026 17:49:01 +0100
A remote denial-of-service vulnerability in Godot 4.x multiplayer was publicly disclosed on 2026-10-27 [1]. Affected versions: Godot 4.0.0 through 4.7.2 and current master (vulnerable check introduced in commit 32a62af648, 2022-10-03). Runtime-confirmed on the official 4.7-stable Windows binary. Description: The spawn-packet bounds check in SceneReplicationInterface::on_spawn_receive (modules/multiplayer/scene_replication_interface.cpp:586) computes name_len + (sync_len * 4) in 32-bit unsigned arithmetic, with both values read from the packet (lines 582-584). A crafted sync_len of 0x40000000 wraps the product to 0 and passes the check; the sync-ids loop (lines 588-591) then reads past the packet buffer until the process faults. decode_uint32 performs no bounds check of its own (core/io/marshalls.h:167). Impact: One crafted packet from a peer holding multiplayer spawn authority — the game server in the standard client-server setup, any peer in a mesh that grants peers spawning authority — crashes joining clients running an affected engine build, about one second after connecting. Demonstrated on a stock 4.7-stable binary in 5/5 runs with a clean control case (sync_len 0x10000000, no wrap, rejected; client exits normally). The demonstrated effect is a crash via out-of-bounds read; no code execution or information disclosure is claimed. Reproduction: https://github.com/bitbutter/godot-security-pocs/tree/main/2026-10-spawn-sync-len-oob (malicious WebSocket server, victim project, captured crash and control output, fuzz-found trigger variants, SHA-256 manifest) Fix status: Unpatched as of 2026-10-27 (master, 4.7.2, 4.7.1, 4.7). Publicly reported as Godot issue #121640 on 2026-07-22 (ASan reproduction on 4.4.1, 4.7 reproduction supplied the same day; issue open, labeled needs testing); independently found and privately reported to security () godotengine org on 2026-10-07. PR #118043 (closed unmerged 2026-07-06) guards a different overflow in the same check and would not have stopped this reproduction. CVE status: Requested from MITRE's CNA-LR on 2026-10-27 (CAN-2026-2040954), filed after publication. This thread will be self-replied when the record publishes. [1] https://axeghost.offprint.app/a/3myukb53ww723-a-malicious-game-server-can-crash-the-godot-clients-that-join-it
Current thread:
- Godot 4.x: remote client crash via multiplayer spawn packet sync_len overflow Tomasz Kaye (Oct 27)
