Read the docs
TI-2024-39114 Aliases GHSA-hvm9-wc8j-mgrc

TShock Security Escalation Exploit

Priority LOW 38CWE-305Published · Updated

Key facts

Attack vector
—
Privileges required
—
User interaction
—
Attack complexity
—
Impact type
Security bypass
Confidentiality · integrity · availability
—
Fix status
Fixed

No CVSS vector from any source. Fix status from GitHub. Impact type from CWE-613.

Summary

### Impact An issue with the way OTAPI manages client connections results in stale UUIDs remaining on `RemoteClient` instances after a player disconnects. Because of this, if the following conditions are met a player may assume the login state of a previously connected player: 1. The server has UUID login enabled 2. An authenticated player disconnects 3. A subsequent player connects with a modified client that does not send the `ClientUUID#68` packet during connection 4. The server assigns the same `RemoteClient` object that belonged to the originally authenticated player to the newly connected player ### Patches TShock 5.2.1 hotfixes this issue. A more robust fix will be made to OTAPI itself. ### Workarounds Implement a RemoteClient reset event handler in a plugin like so: ```csharp public override void Initialize() { On.Terraria.RemoteClient.Reset += RemoteClient_Reset; } private static void RemoteClient_Reset(On.Terraria.RemoteClient.orig_Reset orig, RemoteClient client) { client.ClientUUID = null; orig(client); } ```

Why it matters now

Fix Fixed TShock (NuGet): 5.2.1

SSVC decision points

Not available: CISA has not published SSVC decision points for this record.

Affected products

VendorProductAffected versionsFixed inStatusSource
—TShock (NuGet)4.3.21 to before 5.2.15.2.1Patch availableGHSA-hvm9-wc8j-mgrc
  • TShock (NuGet) Vendor— Affected 4.3.21 to before 5.2.1 Fixed in 5.2.1 Patch available GHSA-hvm9-wc8j-mgrc

Remediation

  • Fix · GHSA-hvm9-wc8j-mgrc TShock (NuGet) Fixed in 5.2.1 Advisory →

Timeline

  1. 2026-10-03 Threatist record created from GHSA-hvm9-wc8j-mgrc

References

Sources

This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences