Uploaded image for project: 'Minecraft: Java Edition'
  1. Minecraft: Java Edition
  2. MC-271

Buffer Overrun [?] Causes SMP Lock Up

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Incomplete
    • None
    • Minecraft 1.4.2, Minecraft 1.6.2
    • Plausible

      In every version of Minecraft, third party (hacked) clients come along and manage to instantly lock multiplayer (i.e. cause SMP to freeze/go unresponsive). I assume this is a result of some kind of buffer overrun defect.

      I have no proof that the behavior is actually caused by a buffer overrun, it's just what I call it when it happens.

      Although managed languages such as Java and C# do not actually have buffer overruns, the specific virtual machines (JVM/CLR/etc) which actually run the code may.

      Whatever it really is, something in a third party client is capable of generating a packet that can instantly choke the server, leaving it completely unresponsive, even to OS signals.

      Analysis of the log usually gives the SMP staff clues and patterns of behavior to help mitigate the problem after the fact. Players using these techniques tend to announce they are about to crash the server, then do so. Banning the player and their IP helps reduce further occurrences.

      The server does not typically generate a crash report for this situation. It just freezes, although the garbage collector appears to continue running.

      The following is a log segment of it occurring today. The staff did not notice the problem for forty minutes (note the time stamp). In this example, the player (name redacted because I'm sure they love publicity) performed the same attack less than 24 hours prior. Their player name and IP was banned based on this pattern.

      2012-10-24 05:06:16 [INFO] ##REDACTED##[/##REDACTED##:21404] logged in with entity id 1155260 at (-928.1505147866586, 45.0, -104.012543085556)
      2012-10-24 05:06:59 [INFO] ##REDACTED##[/##REDACTED##:21438] logged in with entity id 1155662 at (-916.5, 45.0, -111.6215497774692)
      2012-10-24 05:46:01 [INFO] Starting minecraft server version 1.4.1
      2012-10-24 05:46:01 [INFO] Loading properties
      2012-10-24 05:46:01 [INFO] Default game type: SURVIVAL
      2012-10-24 05:46:01 [INFO] Generating keypair
      2012-10-24 05:46:01 [INFO] Starting Minecraft server on *:25565
      2012-10-24 05:46:02 [INFO] Preparing level "swim2"
      2012-10-24 05:46:02 [INFO] Preparing start region for level 0
      2012-10-24 05:46:02 [INFO] Done (0.716s)! For help, type "help" or "?"
      2012-10-24 05:46:02 [INFO] Starting GS4 status listener
      2012-10-24 05:46:03 [INFO] Starting remote control listener
      2012-10-24 05:46:03 [INFO] Query running on 0.0.0.0:25565
      2012-10-24 05:46:03 [INFO] RCON running on 0.0.0.0:25575

            Unassigned Unassigned
            inertia Anthony Martin
            Votes:
            1 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved:
              CHK: