diff --git a/WORKSPACE b/WORKSPACE
index d465b37..d4c1733 100644
--- a/WORKSPACE
+++ b/WORKSPACE
@@ -488,14 +488,14 @@
 
 maven_jar(
   name = 'sshd',
-  artifact = 'org.apache.sshd:sshd-core:1.2.0',
-  sha1 = '4bc24a8228ba83dac832680366cf219da71dae8e',
+  artifact = 'org.apache.sshd:sshd-core:1.4.0',
+  sha1 = 'c8f3d7457fc9979d1b9ec319f0229b89793c8e56',
 )
 
 maven_jar(
   name = 'mina_core',
-  artifact = 'org.apache.mina:mina-core:2.0.10',
-  sha1 = 'a1cb1136b104219d6238de886bf5a3ea4554eb58',
+  artifact = 'org.apache.mina:mina-core:2.0.16',
+  sha1 = 'f720f17643eaa7b0fec07c1d7f6272972c02bba4',
 )
 
 maven_jar(
diff --git a/gerrit-pgm/src/main/java/com/google/gerrit/pgm/init/InitSshd.java b/gerrit-pgm/src/main/java/com/google/gerrit/pgm/init/InitSshd.java
index cb4439a..4cdf3aa 100644
--- a/gerrit-pgm/src/main/java/com/google/gerrit/pgm/init/InitSshd.java
+++ b/gerrit-pgm/src/main/java/com/google/gerrit/pgm/init/InitSshd.java
@@ -27,7 +27,7 @@
 import com.google.inject.Inject;
 import com.google.inject.Singleton;
 
-import org.apache.sshd.common.util.SecurityUtils;
+import org.apache.sshd.common.util.security.SecurityUtils;
 import org.apache.sshd.server.keyprovider.SimpleGeneratorHostKeyProvider;
 
 import java.io.IOException;
diff --git a/gerrit-sshd/src/main/java/com/google/gerrit/sshd/HostKeyProvider.java b/gerrit-sshd/src/main/java/com/google/gerrit/sshd/HostKeyProvider.java
index 8190836..09fa42c 100644
--- a/gerrit-sshd/src/main/java/com/google/gerrit/sshd/HostKeyProvider.java
+++ b/gerrit-sshd/src/main/java/com/google/gerrit/sshd/HostKeyProvider.java
@@ -19,9 +19,9 @@
 import com.google.inject.Provider;
 import com.google.inject.ProvisionException;
 
-import org.apache.sshd.common.keyprovider.AbstractFileKeyPairProvider;
+import org.apache.sshd.common.keyprovider.FileKeyPairProvider;
 import org.apache.sshd.common.keyprovider.KeyPairProvider;
-import org.apache.sshd.common.util.SecurityUtils;
+import org.apache.sshd.common.util.security.SecurityUtils;
 import org.apache.sshd.server.keyprovider.SimpleGeneratorHostKeyProvider;
 
 import java.io.File;
@@ -73,7 +73,7 @@
       throw new ProvisionException("Bouncy Castle Crypto not installed;"
           + " needed to read server host keys: " + stdKeys + "");
     }
-    AbstractFileKeyPairProvider kp = SecurityUtils.createFileKeyPairProvider();
+    FileKeyPairProvider kp = new FileKeyPairProvider();
     kp.setFiles(stdKeys);
     return kp;
   }
diff --git a/gerrit-sshd/src/main/java/com/google/gerrit/sshd/SshDaemon.java b/gerrit-sshd/src/main/java/com/google/gerrit/sshd/SshDaemon.java
index d0f54e6..bd121ee 100644
--- a/gerrit-sshd/src/main/java/com/google/gerrit/sshd/SshDaemon.java
+++ b/gerrit-sshd/src/main/java/com/google/gerrit/sshd/SshDaemon.java
@@ -65,10 +65,10 @@
 import org.apache.sshd.common.random.SingletonRandomFactory;
 import org.apache.sshd.common.session.ConnectionService;
 import org.apache.sshd.common.session.Session;
-import org.apache.sshd.common.util.SecurityUtils;
 import org.apache.sshd.common.util.buffer.Buffer;
 import org.apache.sshd.common.util.buffer.ByteArrayBuffer;
 import org.apache.sshd.common.util.net.SshdSocketAddress;
+import org.apache.sshd.common.util.security.SecurityUtils;
 import org.apache.sshd.server.Command;
 import org.apache.sshd.server.CommandFactory;
 import org.apache.sshd.server.ServerBuilder;
@@ -693,12 +693,12 @@
   private void initForwarding() {
     setTcpipForwardingFilter(new ForwardingFilter() {
       @Override
-      public boolean canForwardAgent(Session session) {
+      public boolean canForwardAgent(Session session, String requestType) {
           return false;
       }
 
       @Override
-      public boolean canForwardX11(Session session) {
+      public boolean canForwardX11(Session session, String requestType) {
           return false;
       }
 
@@ -723,7 +723,7 @@
         return new FileSystem() {
           @Override
           public void close() throws IOException {
-          }
+	  }
 
           @Override
           public Iterable<FileStore> getFileStores() {
diff --git a/lib/mina/BUCK b/lib/mina/BUCK
index f22a710..60e9655 100644
--- a/lib/mina/BUCK
+++ b/lib/mina/BUCK
@@ -8,9 +8,9 @@
 
 maven_jar(
   name = 'sshd',
-  id = 'org.apache.sshd:sshd-core:1.2.0',
-  sha1 = '4bc24a8228ba83dac832680366cf219da71dae8e',
-  src_sha1 = '490e3f03d7628ecf1cbb8317563fdbf06e68e29f',
+  id = 'org.apache.sshd:sshd-core:1.4.0',
+  sha1 = 'c8f3d7457fc9979d1b9ec319f0229b89793c8e56',
+  src_sha1 = '7dbe0edbd2362b58778bbed77407f2e0ded08fcd',
   license = 'Apache2.0',
   deps = [':core'],
   exclude = EXCLUDE,
@@ -18,9 +18,9 @@
 
 maven_jar(
   name = 'core',
-  id = 'org.apache.mina:mina-core:2.0.10',
-  sha1 = 'a1cb1136b104219d6238de886bf5a3ea4554eb58',
-  src_sha1 = 'b70ff94ba379b4e825caca1af4ec83193fac4b10',
+  id = 'org.apache.mina:mina-core:2.0.16',
+  sha1 = 'f720f17643eaa7b0fec07c1d7f6272972c02bba4',
+  src_sha1 = '660fb813ca1c8d8a936f894324091400a5ac128a',
   license = 'Apache2.0',
   exclude = EXCLUDE,
 )
