Executive brief
Stomper is an open-source message broker implementing the STOMP protocol. An unauthenticated attacker can crash the server process by opening a connection, sending a CONNECT frame, and immediately closing the socket. The server attempts to send a response to the closed socket and receives an unhandled SIGPIPE signal, terminating the entire broker service and causing a denial of service.
Technical details
This is a signal handling vulnerability (CWE-390) in the StompStreamSocket::send_buf() function. The vulnerable code performs raw send() syscalls on potentially closed sockets without suppressing SIGPIPE or checking for EPIPE errors. When a client closes its TCP connection while the server is sending data (e.g., after a CONNECT frame), the kernel delivers SIGPIPE to the process, which has no handler installed and causes immediate termination. Any unauthenticated client can trigger this by connecting, sending a CONNECT frame, and closing the socket before reading the CONNECTED response. The fix is to use MSG_NOSIGNAL flag in the send() call and handle EPIPE errors gracefully to close the faulty connection rather than crashing the entire broker.
Affected products
- mdoi Stomper 5e2741e
Timeline
- 2026-08-26: disclosed: Published on NVD
- 2026-08-26: advisory