CVE-2025-12105 Overview
A use-after-free vulnerability has been identified in the libsoup library, a critical HTTP client/server library widely used by GNOME desktop applications and WebKit-based browsers. The flaw exists in the asynchronous message queue handling mechanism for HTTP/2 communications. When network operations are aborted at specific timing intervals, an internal message queue item may be freed twice due to missing state synchronization, leading to memory corruption and potential application crashes.
Critical Impact
Remote attackers can exploit this vulnerability to cause denial-of-service conditions by triggering specific HTTP/2 read and cancel sequences, crashing affected applications without requiring authentication or user interaction.
Affected Products
- libsoup (HTTP client/server library)
- GNOME applications using libsoup
- WebKit-based applications and browsers
Discovery Timeline
- October 23, 2025 - CVE-2025-12105 published to NVD
- April 15, 2026 - Last updated in NVD database
Technical Details for CVE-2025-12105
Vulnerability Analysis
This vulnerability (CWE-416: Use After Free) occurs within the asynchronous message queue handling code of libsoup during HTTP/2 communications. The library fails to properly synchronize state when network operations are aborted, creating a race condition where an internal message queue item can be freed multiple times.
The flaw is particularly dangerous because it can be triggered remotely over the network without any privileges or user interaction. An attacker positioned on the network can craft malicious HTTP/2 traffic to exploit the timing window between read operations and cancellation events. When the double-free condition is triggered, it corrupts memory structures, causing the affected application to crash.
The impact is limited to availability—the vulnerability does not allow attackers to read sensitive data or execute arbitrary code. However, for applications that rely on libsoup for critical functionality (such as web browsers or update mechanisms), a denial-of-service condition can significantly impact users.
Root Cause
The root cause is missing state synchronization in the asynchronous message queue handler. When an HTTP/2 network operation is cancelled while a read operation is in progress, the code path that handles the cancellation and the code path that handles the read completion can both attempt to free the same message queue item. This occurs because there is no mutex or atomic flag to track whether the item has already been freed, resulting in a classic double-free vulnerability.
Attack Vector
The attack vector is network-based and does not require authentication or user interaction. An attacker can exploit this vulnerability by:
- Establishing an HTTP/2 connection with a vulnerable application
- Initiating multiple concurrent requests to create message queue pressure
- Timing the abort of specific requests during the read phase
- Triggering the race condition where state synchronization is missing
The attacker needs to precisely time the cancellation to hit the vulnerable window between the read operation starting and the message queue item being properly marked as processed.
The fix implemented in GNOME Merge Request #481 addresses this by adding proper state synchronization to prevent the double-free condition. Technical details of the vulnerability and the remediation approach can be found in the Red Hat Bug Report #2405992.
Detection Methods for CVE-2025-12105
Indicators of Compromise
- Unexpected crashes of applications using libsoup during HTTP/2 communications
- Core dumps showing memory corruption in libsoup message queue functions
- Repeated application restarts logged in system journals following network activity
- Unusual patterns of HTTP/2 connection resets and cancellations in network logs
Detection Strategies
- Monitor for segmentation faults and crashes in applications linked against libsoup
- Implement application-level crash monitoring for GNOME applications and WebKit-based browsers
- Analyze core dumps for stack traces indicating double-free conditions in soup_* functions
- Deploy network intrusion detection rules to identify anomalous HTTP/2 cancel sequences
Monitoring Recommendations
- Enable crash reporting and telemetry for libsoup-dependent applications
- Configure system logging to capture application crashes with full backtrace information
- Monitor for abnormal HTTP/2 RST_STREAM frame patterns in network traffic
- Track libsoup library versions across your environment to identify unpatched systems
How to Mitigate CVE-2025-12105
Immediate Actions Required
- Update libsoup to the latest patched version available for your distribution
- Apply Red Hat security updates RHSA-2025:23139 or RHSA-2025:23437 if using RHEL-based systems
- Restart all applications using libsoup after updating the library
- Prioritize patching systems running internet-facing applications that use HTTP/2
Patch Information
Red Hat has released security advisories addressing this vulnerability:
The upstream fix is available in GNOME Merge Request #481. For detailed CVE information from Red Hat, see Red Hat CVE Details CVE-2025-12105.
Workarounds
- Disable HTTP/2 in affected applications where configuration options are available
- Implement network-level filtering to block suspicious HTTP/2 traffic patterns
- Use a reverse proxy that handles HTTP/2 termination before passing requests to vulnerable applications
- Consider temporarily downgrading to HTTP/1.1 for critical applications until patching is complete
# Example: Check installed libsoup version on RHEL/Fedora systems
rpm -qa | grep libsoup
# Example: Update libsoup on RHEL/CentOS systems
sudo dnf update libsoup
# Example: Update libsoup on Debian/Ubuntu systems
sudo apt update && sudo apt upgrade libsoup2.4-1 libsoup-3.0-0
Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

