diff --git a/Lib/tarfile.py b/Lib/tarfile.py
index 8684493..9ca8494 100644
--- a/Lib/tarfile.py
+++ b/Lib/tarfile.py
@@ -359,7 +359,7 @@
         }[mode]
         if hasattr(os, "O_BINARY"):
             mode |= os.O_BINARY
-        self.fd = os.open(name, mode)
+        self.fd = os.open(name, mode, 0o666)
 
     def close(self):
         os.close(self.fd)
diff --git a/Lib/test/test_tarfile.py b/Lib/test/test_tarfile.py
index ff04ef8..43527ef 100644
--- a/Lib/test/test_tarfile.py
+++ b/Lib/test/test_tarfile.py
@@ -846,6 +846,24 @@
         self.assertTrue(data.count(b"\0") == tarfile.RECORDSIZE,
                          "incorrect zero padding")
 
+    def test_file_mode(self):
+        # Test for issue #8464: Create files with correct
+        # permissions.
+        if sys.platform == "win32" or not hasattr(os, "umask"):
+            return
+
+        if os.path.exists(tmpname):
+            os.remove(tmpname)
+
+        original_umask = os.umask(0o022)
+        try:
+            tar = tarfile.open(tmpname, self.mode)
+            tar.close()
+            mode = os.stat(tmpname).st_mode & 0o777
+            self.assertEqual(mode, 0o644, "wrong file permissions")
+        finally:
+            os.umask(original_umask)
+
 
 class GNUWriteTest(unittest.TestCase):
     # This testcase checks for correct creation of GNU Longname
diff --git a/Misc/NEWS b/Misc/NEWS
index b3be6e9..8c50723 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -339,6 +339,9 @@
 Library
 -------
 
+- Issue #8464: tarfile no longer creates files with execute permissions set
+  when mode="w|" is used.
+
 - Issue #7834: Fix connect() of Bluetooth L2CAP sockets with recent versions
   of the Linux kernel.  Patch by Yaniv Aknin.
 
