)]}'
{
  "commit": "5adb68b3e6894a642e0f86712fcad2cd3e19c4e9",
  "tree": "9574d50338940540a96955179dc0dc5566304b9c",
  "parents": [
    "9beb694f9766a2c69fe6c89cfa6cf653a32b5a27"
  ],
  "author": {
    "name": "Nicola Murino",
    "email": "nicola.murino@gmail.com",
    "time": "Sun May 24 19:06:18 2026 +0200"
  },
  "committer": {
    "name": "Nicola Murino",
    "email": "nicola.murino@gmail.com",
    "time": "Wed May 27 09:40:09 2026 -0700"
  },
  "message": "ssh: cap total userauth attempts per server connection\n\nserverAuthenticate only bounded real failures via MaxAuthTries.\nPartialSuccessError responses and the publickey isQuery short-circuit\nboth kept the loop running without incrementing authFailures, so a\nclient could keep the server processing SSH_MSG_USERAUTH_REQUEST\nmessages indefinitely on a single connection.\n\nAdd an unconditional cap, maxAuthServerAttempts \u003d 128, on the total\nnumber of userauth requests handled per connection. The counter is\nincremented at the top of the loop before method dispatch, so every\nmethod and every isQuery / partial-success path counts. When the cap\nis exceeded the server sends SSH_MSG_DISCONNECT with reason 2 (\"too\nmany authentication attempts\"), mirroring the MaxAuthTries handling.\nThe bound is well below OpenSSH\u0027s hard cap of 1024 but above any\nrealistic multi-step auth flow.\n\nChange-Id: I56779fc55cd00ddfd32ec938f8de3a49be0145dc\nReviewed-on: https://go-review.googlesource.com/c/crypto/+/781903\nReviewed-by: Junyang Shao \u003cshaojunyang@google.com\u003e\nReviewed-by: David Chase \u003cdrchase@google.com\u003e\nLUCI-TryBot-Result: golang-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cgolang-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\nReviewed-by: Filippo Valsorda \u003cfilippo@golang.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "0192a6750378d58badb1795b458c77f57c57dd42",
      "old_mode": 33188,
      "old_path": "ssh/server.go",
      "new_id": "9292f0b2c5ccb44caddf7be067aeaf7eb17deed9",
      "new_mode": 33188,
      "new_path": "ssh/server.go"
    },
    {
      "type": "modify",
      "old_id": "502a25b29f08fb0d23b41012a902db35fd651a9d",
      "old_mode": 33188,
      "old_path": "ssh/server_test.go",
      "new_id": "01e262b775ff0fc6363ba798b6159197e7d6c945",
      "new_mode": 33188,
      "new_path": "ssh/server_test.go"
    }
  ]
}
