A heap-based buffer over-read exists in the function d_expression_1 in cp-demangle.c in GNU libiberty, as distributed in GNU Binutils 2.31.1. A crafted input can cause segmentation faults, leading to denial-of-service, as demonstrated by c++filt.
https://support.f5.com/csp/article/K38336243
https://sourceware.org/bugzilla/show_bug.cgi?id=24043