diff --git a/core/network.cpp b/core/network.cpp
index be7d9c6..3360e62 100644
--- a/core/network.cpp
+++ b/core/network.cpp
@@ -25,9 +25,8 @@
 
 #include "network.hpp"
 
-#include <boost/algorithm/string/classification.hpp>
-#include <boost/algorithm/string/split.hpp>
 #include <boost/utility/value_init.hpp>
+#include <algorithm>
 
 namespace nfd {
 
@@ -61,24 +60,28 @@
 bool
 Network::isValidCidr(const std::string& cidr)
 {
-  std::vector<std::string> splitCidr;
-  boost::split(splitCidr, cidr, boost::is_any_of("/"));
-  if (splitCidr.size() != 2) {
+  auto pos = cidr.find('/');
+  if (pos == std::string::npos) {
     return false;
   }
 
   boost::system::error_code invalidIp;
-  boost::asio::ip::address_v4::from_string(splitCidr[0], invalidIp);
+  boost::asio::ip::address_v4::from_string(cidr.substr(0, pos), invalidIp);
   if (invalidIp) {
     return false;
   }
 
-  auto prefixLenStr = splitCidr[1];
-  if (prefixLenStr.length() <= 0 ||
-      !std::all_of(prefixLenStr.begin(), prefixLenStr.end(), ::isdigit)) {
+  auto prefixLenStr = cidr.substr(pos + 1);
+  if (!std::all_of(prefixLenStr.begin(), prefixLenStr.end(), ::isdigit)) {
     return false;
   }
-  int prefixLen = boost::lexical_cast<int>(prefixLenStr);
+  int prefixLen = -1;
+  try {
+    prefixLen = boost::lexical_cast<int>(prefixLenStr);
+  }
+  catch (const boost::bad_lexical_cast&) {
+    return false;
+  }
   if (prefixLen < 0 || prefixLen > 32) {
     return false;
   }
diff --git a/tests/core/network.t.cpp b/tests/core/network.t.cpp
index 7f9bcd9..76555a8 100644
--- a/tests/core/network.t.cpp
+++ b/tests/core/network.t.cpp
@@ -160,7 +160,7 @@
   BOOST_CHECK_EQUAL(Network::isValidCidr("192.0.0.0/24.42"), false);
   BOOST_CHECK_EQUAL(Network::isValidCidr("192.0.0.0/foo"), false);
   BOOST_CHECK_EQUAL(Network::isValidCidr("192.0.0.0/33"), false);
-  //BOOST_CHECK_EQUAL(Network::isValidCidr("192.0.0.0/999999999999999"), false); // #3858
+  BOOST_CHECK_EQUAL(Network::isValidCidr("192.0.0.0/999999999999999"), false);
   BOOST_CHECK_EQUAL(Network::isValidCidr("192.0.0.0/"), false);
   BOOST_CHECK_EQUAL(Network::isValidCidr("192.0.0.0"), false);
   BOOST_CHECK_EQUAL(Network::isValidCidr("foo/4"), false);
