Skip to main content
CVE Vulnerability Database
Vulnerability Database/CVE-2024-25110

CVE-2024-25110: Microsoft Azure Uamqp RCE Vulnerability

CVE-2024-25110 is a remote code execution vulnerability in Microsoft Azure Uamqp caused by a use-after-free issue during connection communication. This article covers the technical details, affected versions, and mitigation.

Published:

CVE-2024-25110 Overview

CVE-2024-25110 is a use-after-free vulnerability [CWE-416] in Microsoft's Azure UAMQP, a general-purpose C library implementing the Advanced Message Queuing Protocol (AMQP) 1.0. The flaw resides in the open_get_offered_capabilities function. A failed memory allocation during this call leaves a dangling pointer that subsequent code paths dereference.

If a client invokes the affected function during active connection communication, an attacker can trigger remote code execution against the AMQP client process. The Azure UAMQP library is widely embedded as a submodule in Azure IoT SDKs and other messaging clients.

Critical Impact

Successful exploitation enables remote code execution in the context of any process linking the vulnerable UAMQP library, with full confidentiality, integrity, and availability impact.

Affected Products

  • Microsoft Azure UAMQP (C library) prior to commit 30865c9c
  • Azure IoT C SDKs and downstream projects embedding UAMQP as a submodule
  • Applications statically or dynamically linking vulnerable UAMQP builds

Discovery Timeline

  • 2024-02-12 - CVE-2024-25110 published to the National Vulnerability Database (NVD)
  • 2024-11-22 - Last updated in NVD database

Technical Details for CVE-2024-25110

Vulnerability Analysis

The vulnerability is a use-after-free condition [CWE-416] in the open_get_offered_capabilities routine within the AMQP connection negotiation logic. UAMQP uses this function to retrieve capabilities advertised by the remote peer during the open performative exchange.

During this call, an internal memory allocation can fail. The error path does not correctly clear or invalidate references to the freed object. Subsequent operations on the same connection continue to operate on the dangling pointer, producing a classic use-after-free state.

An attacker controlling the peer or able to influence allocation behavior on the client can shape the freed memory region. Attacker-controlled data placed in the reclaimed allocation is then interpreted as valid object state, leading to arbitrary code execution [CWE-94] within the AMQP client process.

Root Cause

The root cause is improper handling of an allocation failure in the connection state machine. The code releases or invalidates a memory region without ensuring all references to that region are cleared before further use, violating standard ownership semantics in C.

Attack Vector

Exploitation occurs over the network during AMQP session establishment. No authentication or user interaction is required, but attack complexity is high because the attacker must trigger the allocation failure and win a race on heap layout. A malicious or compromised AMQP broker, or a man-in-the-middle on an unsecured channel, is the most plausible attack position. See the GitHub Security Advisory GHSA-c646-4whf-r67v for the upstream description.

Detection Methods for CVE-2024-25110

Indicators of Compromise

  • Unexpected crashes or memory corruption signals (SIGSEGV, SIGABRT) in processes linking azure-uamqp-c during AMQP open negotiation
  • AMQP sessions terminating abnormally immediately after the capabilities exchange phase
  • Child process creation or outbound network connections originating from IoT or messaging client processes that normally do not spawn subprocesses

Detection Strategies

  • Inventory all applications and container images that embed azure-uamqp-c and compare the bundled commit hash against the fixed commit 30865c9c
  • Inspect AMQP broker connection logs for clients repeatedly failing during capability negotiation, which can indicate exploitation attempts
  • Use software composition analysis (SCA) tooling to flag vulnerable UAMQP submodule versions in source repositories and build artifacts

Monitoring Recommendations

  • Monitor AMQP-capable hosts for anomalous process behavior, unexpected memory allocations, and unsigned code execution within messaging client processes
  • Alert on TLS downgrade or unauthenticated AMQP connections to brokers that should require mutual authentication
  • Centralize crash telemetry from IoT and edge devices to surface clusters of UAMQP-related faults across the fleet

How to Mitigate CVE-2024-25110

Immediate Actions Required

  • Update the azure-uamqp-c submodule to commit 30865c9c or later and rebuild all dependent binaries and container images
  • Identify every downstream SDK and application embedding UAMQP, including Azure IoT C SDK consumers, and roll out patched builds
  • Restrict AMQP client connections to trusted, authenticated brokers and enforce TLS with certificate validation to limit attacker positioning

Patch Information

Microsoft fixed the issue in commit 30865c9ccedaa32ddb036e87a8ebb52c3f18f695. The patch corrects pointer handling in open_get_offered_capabilities so that allocation failures no longer leave dangling references. Refer to the GitHub Security Advisory GHSA-c646-4whf-r67v for the full advisory.

Workarounds

  • No vendor-provided workarounds exist. The advisory states users must update the submodule
  • As a compensating control, restrict outbound AMQP traffic to known broker endpoints and enforce network segmentation around IoT and messaging clients
bash
# Update the azure-uamqp-c submodule to the fixed commit
cd path/to/your/project
git submodule update --init --recursive
cd deps/azure-uamqp-c
git fetch origin
git checkout 30865c9ccedaa32ddb036e87a8ebb52c3f18f695
cd -
git add deps/azure-uamqp-c
git commit -m "Bump azure-uamqp-c to fix CVE-2024-25110"
# Rebuild all artifacts that link UAMQP

Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

Default Legacy - Prefooter | Experience the World’s Most Advanced Cybersecurity Platform

Experience the Most Advanced Cybersecurity Platform

See how the world’s most intelligent, autonomous cybersecurity platform can protect your organization today and into the future.