Over the weekend, players from Destiny 2 community started at to remark a game-breaking bug that could be activated simply by sending in-game chat messages to other players. Bungie answered saturday temporarily disabling all in-game chat while he investigates the issue.
“The team is currently aware of the exploit that is causing some players to be kicked out and is actively working to identify the cause of the issue and fix it,” Destiny 2 Community Manager Liana Rupert wrote on Twitter right before chat was disabled in-game.
Scrub those entries
The damaging exploit involved a string of more than 200 characters, consisting mostly of Chinese characters, according to several players who encountered it over the weekend (and who shared the forbidden text with Ars Technica). The specific way in which these Chinese characters are encoded in Unicode means that each can occupy more memory space than a single-byte ASCII character.
Observers to suggest this difference means that the message, as encoded, could overflow into other areas of the game’s memory, even if the message itself appeared to pass the usual character-length checks intended to prevent this. The result of this overflow was a so-called WEASEL error which immediately crashed the recipient’s game, as can be seen in this sample video.
Prior to the shutdown, players could be impacted by the exploit through the game’s targeted “whispered” chat messages or through local chat messages sent by members of your own Fireteam.
FateText issues come months after Amazon’s New world MMO has encountered issues from players who figured out how to deal with HTML strings in the game chat box. This led to several feats including one who flooded gamers’ screens with pictures of giant sausages and another who games crashed when players hovered over a specially formatted link.
Bungie already had planned a patch deployment for Tuesday, August 2, so this whole issue could be fully resolved fairly quickly. But let this be a lesson for all coders: make sure you clean up your inputs completely before letting them get sent to your game chat!