diff --git a/Lib/inspect.py b/Lib/inspect.py
index 4c3e33d..f6e1b47 100644
--- a/Lib/inspect.py
+++ b/Lib/inspect.py
@@ -1912,6 +1912,10 @@
         pass
     else:
         if sig is not None:
+            if not isinstance(sig, Signature):
+                raise TypeError(
+                    'unexpected object {!r} in __signature__ '
+                    'attribute'.format(sig))
             return sig
 
     try:
diff --git a/Lib/test/test_inspect.py b/Lib/test/test_inspect.py
index 1ede3b5..da0572d 100644
--- a/Lib/test/test_inspect.py
+++ b/Lib/test/test_inspect.py
@@ -3048,6 +3048,13 @@
         self.assertEqual(lines[:-1], inspect.getsource(module).splitlines())
         self.assertEqual(err, b'')
 
+    def test_custom_getattr(self):
+        def foo():
+            pass
+        foo.__signature__ = 42
+        with self.assertRaises(TypeError):
+            inspect.signature(foo)
+
     @unittest.skipIf(ThreadPoolExecutor is None,
             'threads required to test __qualname__ for source files')
     def test_qualname_source(self):
diff --git a/Misc/NEWS b/Misc/NEWS
index 128937e..52c1e0e 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -105,6 +105,8 @@
 - Issue #21538: The plistlib module now supports loading of binary plist files
   when reference or offset size is not a power of two.
 
+- Issue #21801: Validate that __signature__ is None or an instance of Signature.
+
 Build
 -----
 
