diff --git a/global-cli/index.js b/global-cli/index.js
index 3fc6315e77ea888019c39e2a853f7d202496ee8a..fdee7863693ca9984ca9fb94f19f06e389a1b63c 100644
--- a/global-cli/index.js
+++ b/global-cli/index.js
@@ -41,7 +41,6 @@ var spawn = require('cross-spawn');
 var chalk = require('chalk');
 var semver = require('semver');
 var argv = require('minimist')(process.argv.slice(2));
-var pathExists = require('path-exists');
 
 /**
  * Arguments:
@@ -73,7 +72,7 @@ function createApp(name, verbose, version) {
 
   checkAppName(appName);
 
-  if (!pathExists.sync(name)) {
+  if (!pathExistsSync(name)) {
     fs.mkdirSync(root);
   } else if (!isSafeToCreateProjectIn(root)) {
     console.log('The directory `' + name + '` contains file(s) that could conflict. Aborting.');
@@ -205,3 +204,16 @@ function isSafeToCreateProjectIn(root) {
       return validFiles.indexOf(file) >= 0;
     });
 }
+
+// This is an ES5 version of https://github.com/sindresorhus/path-exists.
+// The reason it exists is so that the CLI doesn't break before being able to
+// warn the user they're using an unsupported version of Node.
+// See https://github.com/facebookincubator/create-react-app/issues/570
+function pathExistsSync(fp) {
+  try {
+    fs.accessSync(fp);
+    return true;
+  } catch (err) {
+    return false;
+  }
+}
diff --git a/global-cli/package.json b/global-cli/package.json
index cd4008feff950d85d62f9a55a7809a3b9726bd61..08f5ac2f8eb919e06ac766b37168d06320003989 100644
--- a/global-cli/package.json
+++ b/global-cli/package.json
@@ -23,7 +23,6 @@
     "chalk": "^1.1.1",
     "cross-spawn": "^4.0.0",
     "minimist": "^1.2.0",
-    "path-exists": "^3.0.0",
     "semver": "^5.0.3"
   }
 }