just throw a normal AttributeError for no buffer attribute
diff --git a/Misc/NEWS b/Misc/NEWS
index 407681b..1ec5c53 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -15,6 +15,9 @@
 Library
 -------
 
+- Accessing io.StringIO.buffer now raises an AttributeError instead of
+  io.UnsupportedOperation.
+
 - Issue #6271: mmap tried to close invalid file handle (-1) when annonymous.
   (On Unix)
 
diff --git a/Modules/_io/stringio.c b/Modules/_io/stringio.c
index 57dacf9..84a15be 100644
--- a/Modules/_io/stringio.c
+++ b/Modules/_io/stringio.c
@@ -646,14 +646,6 @@
 }
 
 static PyObject *
-stringio_buffer(stringio *self, void *context)
-{
-    PyErr_SetString(IO_STATE->unsupported_operation,
-                    "buffer attribute is unsupported on type StringIO");
-    return NULL;
-}
-
-static PyObject *
 stringio_closed(stringio *self, void *context)
 {
     CHECK_INITIALIZED(self);
@@ -703,7 +695,6 @@
         Hopefully, a better solution, than adding these pseudo-attributes,
         will be found.
     */
-    {"buffer",         (getter)stringio_buffer,         NULL, NULL},
     {"line_buffering", (getter)stringio_line_buffering, NULL, NULL},
     {NULL}
 };