Författare

Gustaf Lovén

SOC @ Asurgent

Read time

1 min

mohammad-rahmani-8qEB0fTe9Vw-unsplash

Bakgrund

Curl har supportat SOCKS5 sedan augusti 2002. SOCKS5 är ett proxy-protokoll. Det är ett enkelt protokoll för att etablera nätverkskommunikation via en dedikerad "mellanhand". Protokollet används t.ex. när man ställer in kommunikation som ska gå igenom Tor, men det används också för att få tillgång till internet från organisationer och företag.

SOCKS5 har två olika lägen för namnuppslag. Antingen löser klienten värdnamnet lokalt och skickar vidare till rätt destination, eller så skickar klienten hela värdnamnet till Proxy tjänsten och låter själva Proxy tjänsten slå upp värdnamnet.

I början av 2020 beslutade Daniel Stenberg att personligen åta sig att lösa en långvarig problematik i Curl, att omvandla funktionen som ansluter till en SOCKS5-proxy från ett blockande anrop till en icke-blockande device. Detta är särskilt märkbart när en applikation utför stora mängder parallella överföringar som alla går genom SOCKS5 protokollet.

Den 14 februari 2020 är detta problem fixat och förändringen släpps i versionen 7.69.0 och som en följd av detta var det också den första versionen som var sårbar för sårbarhet CVE-2023-38545.

 

Sårbarheten

Denna sårbarhet innebär att curl orsakar en överbelastningsattack i en minnesbuffert baserad på heap-minnet under SOCKS5-handskakning. När curl får en begäran att skicka värdnamnet för uppslagning till SOCKS5-tjänsten i stället för att curl själv ska göra det, kan maximala längden för värdnamnet vara 255 bytes. Om curl upptäcker att värdnamnet är längre än 255 bytes, ändrar curl om till lokal namnupplösning och skickar i stället bara den lösta adressen till proxytjänsten. På grund av en bugg kan dock den lokala variabeln "let the host resolve the name" få fel värde under en långsam SOCKS5-handskakning mot sin avsikt, kopiera värdnamnet som är för långt, (mer än 255 bytes) till målbuferten istället för att bara kopiera den lösta adressen dit.

 

Potentiell påverkan

Många produkter och applikationer använder sig av curl/libcurl, som supportar SOCKS5 som Proxy alternativ, för att skicka och ta emot data via protokoll som HTTP, FTP, SMTP, SOCKS5 mm.

Här är en lista på några produkter som använder sig av libcurl och som potentiellt använder sig av SOCKS5:

 

  • Webbläsare: Vissa webbläsare, som Mozilla Firefox, kan använda libcurl för specifika nätverksrelaterade uppgifter och kan konfigureras för att använda SOCKS5-proxytjänster.

 

  • FTP-klienter: FTP (File Transfer Protocol)-klienter, inklusive kommandoradsverktyg som curl, kan använda libcurl med SOCKS5 för att överföra filer via proxy.

 

  • Kommando verktyg: Olika kommandoradsverktyg för att göra nätverksbegäranden och nedladdningar, som wget, kan kompileras med libcurl för att stödja SOCKS5-proxyfunktionalitet.

 

  • E-postklienter: Vissa e-postklienter, som Mozilla Thunderbird, kan använda libcurl för säkra anslutningar, inklusive SOCKS5-proxyer när de är konfigurerade.

 

  • Nedladdningshanterare: Nedladdningshanterare som använder libcurl för att hantera filnedladdningar kan också stödja SOCKS5-proxykonfigurationer.

 

  • Säkerhetsprogram: Säkerhetsprodukter som antivirusprogram eller nätverksövervakningsverktyg kan använda libcurl för att komma åt onlineresurser eller uppdatera sina virusdefinitioner.

 

  • Anpassad programvara: Utvecklare integrerar ofta libcurl i anpassade applikationer som behöver göra nätverksrelaterade uppgifter, och de kan välja att stödja SOCKS5 som ett Proxy protokoll om det behövs.

Det är viktigt att notera att den specifika användningen av SOCKS5 kan variera från en produkt till en annan, och inte alla funktioner eller versioner av dessa applikationer stöder det.

 

Rekommendationer

  • Uppgradera din Curl version till 8.4.0
  • Applicera uppdatering för din lokala version
  • Använd ej ”CURLPROXY_SOCKS5_HOSTNAME” i Curl inställningen
  • Sätt inte din Proxy-miljövariabel till ”socks5h://”
  • Håll utkik efter uppdateringar för produkter som ni vet använder Curllib

Ta del av de senaste insikterna och nyheterna

Prenumerera på vårt nyhetsbrev för att ha koll på senaste nytt inom molnsfären. 

Prenumerera på vårt nyhetsbrev