REDHAT-BUG-2442909: Use After Free
SoupServer is vulnerable to use after free vulnerability because soupserverdisconnect() frees all SoupServerConnection objects, even if there is a pending GNUTLS handshake to be finished.
A TLS handshake is initiated asynchronously. After creating the SoupServerConnection, libsoup calls gtlsconnectionhandshakeasync(), which registers tlsconnectionhandshakereadycb as a callback. The handshake runs in the background andthe callback fires later when it completes. When the TLS handshake completes successfully, GNUTLS invokes tlsconnectionhandshakereadycb() asynchronously
soupserverdisconnect() is called ( due to some scenario, like a server restart, or other cases). This iterates through all active connections and disconnects them. When the last reference to a SoupServerConnection is dropped, soupserverconnectionfinalize() is called, freeing the object. If the TLS handshake completes after soupserverdisconnect() has freed the connection object, tlsconnectionhandshakereadycb() still fires with a dangling pointer. The callback then calls soupserverconnectionconnected(conn), which attempts to access the freed SoupServerConnection via soupserverconnectiongetiostream(), causing a crash
Affected Software
Event History
Frequently Asked Questions
What is the severity of REDHAT-BUG-2442909?
The severity of REDHAT-BUG-2442909 is considered high due to the potential for denial of service and security implications associated with use after free vulnerabilities.
How do I fix REDHAT-BUG-2442909?
To fix REDHAT-BUG-2442909, you should update libsoup to the latest version where the vulnerability has been addressed.
What software is affected by REDHAT-BUG-2442909?
REDHAT-BUG-2442909 affects the GNOME libsoup library.
What type of vulnerability is REDHAT-BUG-2442909?
REDHAT-BUG-2442909 is classified as a use after free vulnerability.
What could be the impact of exploiting REDHAT-BUG-2442909?
Exploiting REDHAT-BUG-2442909 could lead to a denial of service or potentially allow an attacker to execute arbitrary code.