Biblioteka libcurl może nieprawidłowo korzystać z funkcji callback do odczytu danych (`CURLOPT_READFUNCTION`) podczas żądania POST, jeśli ten sam uchwyt był wcześniej używany do żądania PUT z tym callbackiem. Może to prowadzić do wysłania nieprawidłowych danych lub do błędu use-after-free, co czyni tę podatność krytyczną.
▸ Pokaż oryginał (EN)
When doing HTTP(S) transfers, libcurl might erroneously use the read callback (`CURLOPT_READFUNCTION`) to ask for data to send, even when the `CURLOPT_POSTFIELDS` option has been set, if the same handle previously was used to issue a `PUT` request which used that callback. This flaw may surprise the application and cause it to misbehave and either send off the wrong data or use memory after free or similar in the subsequent `POST` request. The problem exists in the logic for a reused handle when it is changed from a PUT to a POST.
Problem występuje w logice ponownego użycia uchwytu libcurl (handle reuse), gdy sesja jest przełączana z metody PUT na POST. Jeśli wcześniejsze żądanie PUT korzystało z callbacku `CURLOPT_READFUNCTION`, libcurl może błędnie wywołać ten callback również przy kolejnym żądaniu POST, nawet gdy ustawiono opcję `CURLOPT_POSTFIELDS`. Skutkuje to tym, że biblioteka odczytuje dane ze złego źródła — aplikacja może nieświadomie wysłać błędną treść lub odwołać się do już zwolnionego obszaru pamięci (use-after-free).
Atakujący lub nieoczekiwane zachowanie aplikacji może prowadzić do ujawnienia poufnych danych (np. zawartości pamięci procesu) lub do niestabilności aplikacji wynikającej z use-after-free, co potencjalnie umożliwia wykonanie dowolnego kodu.
Należy zastosować patche dostępne u producenta zgodnie z referencjami. Zaleca się aktualizację libcurl do wersji wolnej od tej podatności oraz unikanie ponownego użycia uchwytów curl przy zmianie metody HTTP z PUT na POST do czasu wdrożenia poprawki.
Haxx curl (wersje wskazane w referencjach producenta), NetApp Clustered Data ONTAP, NetApp H300S Firmware, NetApp H300S, NetApp H500S Firmware
Podatność została zgłoszona przez platformę HackerOne (raport #1704017). Problem dotyczy wyłącznie scenariusza reużycia uchwytu libcurl z przełączeniem metody PUT na POST z aktywnym callbackiem `CURLOPT_READFUNCTION`.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:HApple macOS
OSApple< 12.6.3Debian
OSDebian10.011.0Haxx Curl
APPHaxx< 7.86.0Netapp Clustered Data Ontap
APPNetappwszystkie wersjeNetapp H300s
HWNetappwszystkie wersjeNetapp H300s Firmware
OSNetappwszystkie wersjeNetapp H410s
HWNetappwszystkie wersjeNetapp H410s Firmware
OSNetappwszystkie wersjeNetapp H500s
HWNetappwszystkie wersjeNetapp H500s Firmware
OSNetappwszystkie wersjeNetapp H700s
HWNetappwszystkie wersjeNetapp H700s Firmware
OSNetappwszystkie wersjeSplunk Universal Forwarder
APPSplunk9.1.08.2.0 – 8.2.12 (bez)9.0.0 – 9.0.6 (bez)
Powiązane podatności
Pominięcie uwierzytelniania w Screen Sharing na macOS
GNU Inetutils telnetd: ominięcie uwierzytelnienia przez zmienną USER
Type confusion w V8 (Google Chrome) — zdalne uszkodzenie sterty
Apple iOS/iPadOS/macOS — out-of-bounds write przy przetwarzaniu obrazu
Sudo: eskalacja uprawnień do root poprzez opcję --chroot (CVE-2025-32463)