diff --git a/lib/.eslintrc.yaml b/lib/.eslintrc.yaml
index fcb9ea7febac52..8378cec15fb2ef 100644
--- a/lib/.eslintrc.yaml
+++ b/lib/.eslintrc.yaml
@@ -17,7 +17,6 @@ rules:
       message: "Use an error exported by the internal/errors module."
   # Custom rules in tools/eslint-rules
   node-core/require-globals: error
-  node-core/no-let-in-for-declaration: error
   node-core/lowercase-name-for-primitive: error
   node-core/non-ascii-character: error
 globals:
diff --git a/test/parallel/test-eslint-no-let-in-for-declaration.js b/test/parallel/test-eslint-no-let-in-for-declaration.js
deleted file mode 100644
index 3afabf72f54dcb..00000000000000
--- a/test/parallel/test-eslint-no-let-in-for-declaration.js
+++ /dev/null
@@ -1,45 +0,0 @@
-'use strict';
-
-const common = require('../common');
-if (!common.hasCrypto)
-  common.skip('missing crypto');
-
-common.skipIfEslintMissing();
-
-const RuleTester = require('../../tools/node_modules/eslint').RuleTester;
-const rule = require('../../tools/eslint-rules/no-let-in-for-declaration');
-
-const ruleTester = new RuleTester({ parserOptions: { ecmaVersion: 6 } });
-
-const message = 'Use of `let` as the loop variable in a for-loop is ' +
-                'not recommended. Please use `var` instead.';
-
-ruleTester.run('no-let-in-for-declaration', rule, {
-  valid: [
-    'let foo;',
-    'for (var foo = 1;;);',
-    'for (foo = 1;;);',
-    'for (;;);',
-    'for (const foo of bar);',
-    'for (var foo of bar);',
-    'for (const foo in bar);',
-    'for (var foo in bar);'
-  ],
-  invalid: [
-    {
-      code: 'for (let foo = 1;;);',
-      output: 'for (var foo = 1;;);',
-      errors: [{ message }]
-    },
-    {
-      code: 'for (let foo in bar);',
-      output: 'for (var foo in bar);',
-      errors: [{ message }]
-    },
-    {
-      code: 'for (let foo of bar);',
-      output: 'for (var foo of bar);',
-      errors: [{ message }]
-    }
-  ]
-});
diff --git a/test/root.status b/test/root.status
index b0f72f9edafe5b..25400990b68af8 100644
--- a/test/root.status
+++ b/test/root.status
@@ -37,7 +37,6 @@ parallel/test-eslint-duplicate-requires: SLOW
 parallel/test-eslint-eslint-check: SLOW
 parallel/test-eslint-inspector-check: SLOW
 parallel/test-eslint-lowercase-name-for-primitive: SLOW
-parallel/test-eslint-no-let-in-for-declaration: SLOW
 parallel/test-eslint-no-unescaped-regexp-dot: SLOW
 parallel/test-eslint-number-isnan: SLOW
 parallel/test-eslint-prefer-assert-iferror: SLOW
diff --git a/tools/eslint-rules/no-let-in-for-declaration.js b/tools/eslint-rules/no-let-in-for-declaration.js
deleted file mode 100644
index 1ae49a48dee8a2..00000000000000
--- a/tools/eslint-rules/no-let-in-for-declaration.js
+++ /dev/null
@@ -1,38 +0,0 @@
-/**
- * @fileoverview Prohibit the use of `let` as the loop variable
- *               in the initialization of for, and the left-hand
- *               iterator in forIn and forOf loops.
- *
- * @author Jessica Quynh Tran
- */
-
-'use strict';
-
-//------------------------------------------------------------------------------
-// Rule Definition
-//------------------------------------------------------------------------------
-const message = 'Use of `let` as the loop variable in a for-loop is ' +
-                'not recommended. Please use `var` instead.';
-const forSelector = 'ForStatement[init.kind="let"]';
-const forInOfSelector = 'ForOfStatement[left.kind="let"],' +
-                        'ForInStatement[left.kind="let"]';
-
-module.exports = {
-  create(context) {
-    const sourceCode = context.getSourceCode();
-
-    function report(node) {
-      context.report({
-        node,
-        message,
-        fix: (fixer) =>
-          fixer.replaceText(sourceCode.getFirstToken(node), 'var')
-      });
-    }
-
-    return {
-      [forSelector]: (node) => report(node.init),
-      [forInOfSelector]: (node) => report(node.left),
-    };
-  }
-};