CyberSecBulletin
CVE-2024-2398NVD status: Modified

curl: Missing Release of Resource after Effective Lifetime

CVE-2024-2398 is a high-severity missing release of resource after effective lifetime vulnerability in curl, with a CVSS 3.1 base score of 8.6 out of 10. It can be exploited remotely over the network by an unauthenticated attacker, without any action from a user. Affected curl versions: 8.6.0 and earlier; 8.5.0 and earlier; 8.4.0 and earlier, and others listed below. The record does not name a fixed version, so check the vendor advisory. There is no confirmed exploitation so far. EPSS estimates a 36.1% chance of exploitation within 30 days, which is in the top 1.5% of all scored CVEs.

Patch this week

EPSS places it among the vulnerabilities most likely to be exploited soon.

What to do

  1. Update SIMATIC S7-1500 CPU 1518-4 PN/DP MFP to V3.1.5 or a later version.
  2. Update SIMATIC S7-1500 CPU 1518F-4 PN/DP MFP to V3.1.5 or a later version.
  3. Update SINEMA Remote Connect Client to V3.2 SP2 or a later version.
  4. Read the advisory on curl.se for workarounds and exact fixed builds.
  5. Until you can update, restrict network access to the affected service so it is not reachable from untrusted networks.

Affected products and versions

VendorProductAffected versionsFixed in
Curlcurl8.6.0 and earlier; 8.5.0 and earlier; 8.4.0 and earlier; 8.3.0 and earlier; 8.2.1 and earlier; 8.2.0 and earlier; 8.1.2 and earlier; 8.1.1 and earlier; and 32 more rangesNot stated
SiemensSIMATIC S7-1500 CPU 1518-4 PN/DP MFPV3.1.0 up to, but not including, V3.1.5V3.1.5
SiemensSIMATIC S7-1500 CPU 1518F-4 PN/DP MFPV3.1.0 up to, but not including, V3.1.5V3.1.5
SiemensSINEMA Remote Connect Clientbefore V3.2 SP2V3.2 SP2
SiemensSIPLUS S7-1500 CPU 1518-4 PN/DP MFPV3.1.0 up to, but not including, V3.1.5V3.1.5
SiemensSINEC NMSbefore V3.0 SP1V3.0 SP1
ApplemacOSbefore 12.7.6; 13.0 up to, but not including, 13.6.8; 14.0 up to, but not including, 14.612.7.6, 13.6.8, 14.6
Fedora ProjectFedora39; 40Not stated
NetAppActive Iq Unified ManagerNot specified in the recordNot stated
NetAppOntap Select Deploy Administration UtilityNot specified in the recordNot stated
NetAppBrocade Fabric Operating SystemNot specified in the recordNot stated
NetAppBootstrap OSNot specified in the recordNot stated
NetAppH300s FirmwareNot specified in the recordNot stated
NetAppH410s FirmwareNot specified in the recordNot stated
NetAppH500s FirmwareNot specified in the recordNot stated
NetAppH610c FirmwareNot specified in the recordNot stated
NetAppH610s FirmwareNot specified in the recordNot stated
NetAppH615c FirmwareNot specified in the recordNot stated
NetAppH700s FirmwareNot specified in the recordNot stated

Version data comes from the organisation that assigned the CVE. Confirm against the vendor advisory before deciding you are unaffected.

How the severity score breaks down

Attack vector
NetworkCan be exploited remotely over a network, including the internet.
Attack complexity
LowNo special conditions are needed; the attack works reliably.
Privileges required
NoneNo account or login is needed.
User interaction
NoneNo action by a victim is required.
Scope
UnchangedImpact stays within the vulnerable component.
Confidentiality
HighAll data handled by the component can be read.
Integrity
LowLimited modification of data is possible.
Availability
LowPerformance or availability is reduced.

Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:L/A:L. Scored by CISA (ADP).

Official description

When an application tells libcurl it wants to allow HTTP/2 server push, and the amount of received headers for the push surpasses the maximum allowed limit (1000), libcurl aborts the server push. When aborting, libcurl inadvertently does not free all the previously allocated headers and instead leaks the memory. Further, this error condition fails silently and is therefore not easily detected by an application.

Source: the CVE record as published by its numbering authority, via NVD and CVE.org.

The underlying weakness: Missing Release of Resource after Effective Lifetime

The product does not release a resource after its effective lifetime has ended, i.e., after the resource is no longer needed.

How developers prevent this class of flaw

  • Use a language that does not allow this weakness to occur or provides constructs that make this weakness easier to avoid. For example, languages such as Java, Ruby, and Lisp perform automatic garbage collection that releases memory for objects that have been deallocated.
  • It is good practice to be responsible for freeing all resources you allocate and to be consistent with how and where you free resources in a function. If you allocate resources that you intend to free upon completion of the function, you must be sure to free the resources at all exit points for that function including error conditions.

More Missing Release of Resource after Effective Lifetime vulnerabilities (CWE-772)

Timeline

  1. CVE record published.
  2. CISA published its SSVC assessment (exploitation: none, automatable: yes, technical impact: partial).
  3. Record last changed materially (score, affected products, status or references).

References

Technical write-ups (may include proof of concept)

Other vulnerabilities in curl

All curl vulnerabilities

Recent Missing Release of Resource after Effective Lifetime vulnerabilities

Spotted an error? Tell us.