SecBoard
Zurück zur CVE-Übersicht

CVE-2024-2398

HIGH(8.6)

CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:L/A:L

Risk Signal Score32/100 — MITTEL
  • CVSS 8.6 — Hoch
  • EPSS 36%

Erwähnungen (letzte 60 Tage)

Artikel

EPSS-Score

36.1%

Exploit-Wahrscheinlichkeit (30 Tage)

CVSS Score

8.6

Technische Schwere

Beschreibung

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.

Erkennung & Indikatoren

Ausnutzung

In den geprüften Quellen nicht genannt

Behobene Versionen

  • curl 8.7.0
  • macOS Sonoma 14.6
  • macOS Ventura 13.6.8
  • macOS Monterey 12.7.6

Threat-Hunting-Queries

Detecting HTTP/2 server push with an excessive amount of headers that lead to memory leaks. This is a behavioral detection and might require fine-tuning to avoid false positives.

Sentinel/Defender KQL

DeviceNetworkEvents
| where InitiatingProcessFileName contains "curl" or FileName contains "curl"
| where RemotePort == 443 or RemotePort == 80
| where Protocol == "Tcp"
| where AdditionalFields contains "HTTP/2 PUSH_PROMISE" // Placeholder for HTTP/2 push detection
| summarize RequestCount = count() by DeviceId, InitiatingProcessFileName, RemoteIP
| where RequestCount > 1000 // Threshold for excessive headers, adjust as needed

Splunk SPL

(sourcetype=network OR sourcetype=process) (process="*curl*" OR dest_port=80 OR dest_port=443) (protocol="tcp") (http2_push_promise=*) | stats count by host, process, dest_ip | where count > 1000

Sigma

title: Curl HTTP/2 Push Header Memory Leak
id: 00000000-0000-0000-0000-000000000000
status: experimental
description: Detects potential memory leaks in curl due to excessive HTTP/2 push headers.
author: SecBoard
date: 2024/07/30
logsource:
  category: process_creation
  product: windows
detection:
  selection:
    Image|endswith: '\curl.exe'
    CommandLine|contains: 'http/2'
  filter:
    CommandLine|contains: 'no-server-push'
  condition: selection and not filter
falsepositives:
  - Legitimate use of HTTP/2 server push with many headers (unlikely to exceed 1000 without malicious intent)
level: medium

Elastic ES|QL

from network.connection
| where process.executable.name : "curl" or destination.port in (80, 443)
| where network.protocol : "tcp"
| where http.version : "2.0" and http.request.method : "PUSH_PROMISE" // Placeholder for HTTP/2 push detection
| stats count() by host.name, process.executable.name, destination.ip
| where count() > 1000

SecBoard-generated · behavioral · requires customization — Von SecBoard erzeugt und nicht in einer Zielumgebung validiert. Vor dem Einsatz an die eigene Protokollierung anpassen.

Betroffene Produkte

  • cpe:2.3:a:haxx:curl:*:*:*:*:*:*:*:*
  • cpe:2.3:o:apple:macos:*:*:*:*:*:*:*:*
  • cpe:2.3:o:apple:macos:*:*:*:*:*:*:*:*
  • cpe:2.3:o:apple:macos:*:*:*:*:*:*:*:*
  • cpe:2.3:o:fedoraproject:fedora:39:*:*:*:*:*:*:*
  • cpe:2.3:o:fedoraproject:fedora:40:*:*:*:*:*:*:*
  • cpe:2.3:a:netapp:active_iq_unified_manager:-:*:*:*:*:vmware_vsphere:*:*
  • cpe:2.3:a:netapp:ontap_select_deploy_administration_utility:-:*:*:*:*:*:*:*
  • cpe:2.3:o:netapp:brocade_fabric_operating_system:-:*:*:*:*:*:*:*
  • cpe:2.3:o:netapp:bootstrap_os:-:*:*:*:*:*:*:*
  • cpe:2.3:o:netapp:h300s_firmware:-:*:*:*:*:*:*:*
  • cpe:2.3:o:netapp:h410s_firmware:-:*:*:*:*:*:*:*
  • cpe:2.3:o:netapp:h500s_firmware:-:*:*:*:*:*:*:*
  • cpe:2.3:o:netapp:h610c_firmware:-:*:*:*:*:*:*:*
  • cpe:2.3:o:netapp:h610s_firmware:-:*:*:*:*:*:*:*
  • cpe:2.3:o:netapp:h615c_firmware:-:*:*:*:*:*:*:*
  • cpe:2.3:o:netapp:h700s_firmware:-:*:*:*:*:*:*:*

Referenzen