Windows auf veraltete libcurl-Bibliotheken in Programmen überprüfen

Sicherheit (Pexels, allgemeine Nutzung)[English]Ich hatte es schon mal im Blog: Microsoft liefert die cURL-Bibliothek häufiger mit veralteten Versionen, die Sicherheitslücken aufweisen, aus. Auch Software-Pakete kommen mit uralten libcurl-Dateien daher. Wie kann ich prüfen, ob da irgendwelche Altlasten auf meinen Systemen schlummern?


Anzeige

Admin-Passwörter schützen mit Windows LAPS. eBook jetzt herunterladen » (Anzeige)

Was sind cURL und libcurl?

cURL (steht für Client for URLs oder Curl URL Request Library) ist einerseits eine Programmbibliothek und gleichzeitig ein Kommandozeilen-Programm zum Übertragen von Dateien in Rechnernetzen. cURL steht unter der offenen MIT-Lizenz und wurde auf verschiedene Betriebssysteme portiert.

Der Kern (Engine) des Befehlszeilentool svon curl ist libcurl. libcurl ist in Tausenden von Tools, Diensten und Anwendungen, die Daten im Internet übertragen, als Bibliothek enthalten.

Habe ich alte libcurl-Versionen im System?

Robert G. hat mich bereits Anfang Juli 2025 per E-Mail mit dem Betreff "Salesforce und libcurl" und den Worten "falls mal wieder nicht los ist…" kontaktiert. Der Hintergrund der E-Mail war, dass ein Kollege Robert angesprochen und um Rat gefragt hatte. Bei diesem Kollegen hatte die Schwachstellen-Analyse von Nessus bei einem System Alarm geschlagen hatte. Bemängelt wurde wohl ein alter Salesforce ODBC-Treiber, der eine uralte libcurl-Dateien in folgendem Pfad verwendete:


Anzeige

C:\Program Files (x86)\Microsoft Office\root\Office16\ODBC Drivers\Salesforce\lib

Als er nachschaute, fand er im Ordner die libcurl.dll-Datei in einer veralteten Version vor. Robert erinnerte sich, dass es im Blog auch schon Beschwerden gab, dass Microsoft mit den Sicherheitsupdates auch eine uralte Version dieser Bibliothek ausgerollt habe. Es tauchte die Frage auf, wie man prüfen könne, ob noch weitere veraltete Fassung der Bibliothek auf dem System herum liegen. Der nachfolgende PowerShell-Befehl:

(Get-ChildItem -Path "C:\Program Files", "C:\Program Files (x86)" -Filter libcurl.dll -Recurse -ErrorAction SilentlyContinue) |  ForEach-Object { Get-Command ($_.fullname)} | Select-Object source,version

durchsucht die Windows-Programmordner nach der Datei libcurl und listet die gefundenen Treffer samt Dateiversion auf. Unter Windows 11 24H2 wurden Robert dann nachfolgende Dateien aufgelistet.

C:\Program Files\Adobe\Adobe Lightroom Classic\libcurl.dll                              8.11.1.0

C:\Program Files\Microsoft Office\root\Office16\ODBC Drivers\Salesforce\lib\libcurl.dll 8.7.0.0

C:\Program Files\Notepad++\updater\libcurl.dll                                          8.13.0.0

C:\Program Files (x86)\Synology\ActiveBackupforBusinessAgent\ui\ui\libcurl.dll          7.87.0.0

C:\Program Files (x86)\VMware\VMware Remote Console\libcurl.dll                         8.3.0.0

Auf Windows Server 2019 wurden Robert dagegen folgende Treffer bei einer Suche aufgelistet.

C:\Program Files\Fujitsu\ServerView Suite\Agents\PrimeCollect\Tools\libcurl.dll 7.72.0.0

C:\Program Files\Fujitsu\ServerView Suite\RAID Manager\bin\libcurl.dll          7.74.0.0

C:\Program Files\Notepad++\updater\libcurl.dll                                  8.13.0.0

C:\Program Files\PostgreSQL\15\bin\libcurl.dll                                  8.11.0.0

C:\Program Files\Veeam\Backup and Replication\Backup\VSS\libcurl.dll            0.0.0.0

C:\Program Files (x86)\Synology\ActiveBackupforBusinessAgent\ui\ui\libcurl.dll  7.87.0.0

C:\Program Files (x86)\Veeam\Backup Transport\GuestInteraction\VSS\libcurl.dll  0.0.0.0

C:\Program Files (x86)\Veeam\Backup Transport\x64\vddk_6_0\libcurl.dll          0.0.0.0

C:\Program Files (x86)\Veeam\Backup Transport\x64\vddk_6_7\libcurl.dll          7.64.1.0

C:\Program Files (x86)\Veeam\Backup Transport\x64\vddk_7_0\libcurl.dll          8.4.0.0

C:\Program Files (x86)\Veeam\Backup Transport\x64\vix\libcurl.dll               0.0.0.0

C:\Program Files (x86)\Veeam\Backup Transport\x86\vix\libcurl.dll               0.0.0.0

Die ohne Version (0.0.0.0) aufgelisteten Treffer wurden im Februar 2013 signiert , sind also uralt. Das einzige Programm, das eine aktuelle Version mitbringt, ist Notepad++, schrieb mir Robert. Vielleicht für den einen oder anderen Administrator hilfreich (danke an Robert für den Hinweis).

Ähnliche Artikel:
Windows: Microsoft liefert cURL-Bibliothek weiterhin mit Schwachstellen aus (Feb. 2023)
Windows und die cURL-Falle; gelöschte Curl-Instanz macht Windows-Update kaputt
Windows: cURL 8.4.0 Update kommt zum 14. November 2023-Patchday


Anzeige

Dieser Beitrag wurde unter Sicherheit, Software abgelegt und mit , verschlagwortet. Setze ein Lesezeichen auf den Permalink.

33 Antworten zu Windows auf veraltete libcurl-Bibliotheken in Programmen überprüfen

  1. Peter Vorstatt sagt:

    Im weiteren kann sich der erwähnte Kollege von Robert G. an wolfSSL Inc. wenden, wo kommerzieller Support (1) für cURL (2) angeboten wird, u. a. "Support & maintenance for releases up to 10 years old" ;-)

    Das nach " Der nachfolgende PowerShell-Befehl:" gezeigte Kommando erbringt m. E. keine vollständigen Informationen betr. vorliegender cURL-Version. Ganz unabhängig davon sind Auswertungsdefizite auch infolge der in (3) dargestellten Sachverhalte zu erwarten.

    (1) https://www.wolfssl.com/products/support-and-maintenance/
    (2) https://www.wolfssl.com/products/curl/
    (3) https://copilot.microsoft.com/shares/5AFDaB4BA4129dCbRiwJ3

  2. ks sagt:

    Bei mir ist LibreOffice 25.2.5.2 (und W24H2 26100.4770) neuer als Roberts und mein NPP:
    C:\\Program Files\\LibreOffice\\program\\libcurl.dll 8.14.1.0
    C:\\Program Files\\Notepad++\\updater\\libcurl.dll 8.13.0.0

    cURL -V
    curl 8.14.1 (Windows) libcurl/8.14.1 Schannel zlib/1.3.1 WinIDN

    Aktuelle cURL-Version ist 8.15.0.

  3. Tomas Jakobs sagt:

    Moin,

    Windows mit seinem fehlenden Paketmanagement in Kombination mit faulen Devs in Kombination mit Closed Source Software – das alles sind Zutaten für Tretminen, die unter der schicken, bunten, tollen Oberfläche lauern.

    Leider ist diese Methode bestenfalls unvollständig und wiegt in trügerischer Sicherheit, da es nur jene Software erfasst, die dynamisch gegen die mitgebrachten DLLs linkt.

    Alles was die libcurl statisch verlinkt hat, bleibt weiterhin unerkannt. Ist es Closed-Source gibt es außer Disassembler keine Chance, einen Versionsstand einzusehen. Hier als Beispiel nur ein kleines CLI Testprogramm von mir zum Download von Dokumenten aus einem DMS, wo ich aus Gründen libcurl statisch in die nur 60 KB (!) große .exe verlinkt habe:

    https://codeberg.org/tomas-jakobs/get-dms-doc

    Insgesamt sollte das in Windows enthaltene curl NICHT verwendet werden, da es von Microsoft nicht nur stiefmütterlich (gar nicht) gepflegt wird sondern regelrecht verkrüppelt wurde. Es fehlen zahlreiche Internetprotokolle, Funktionen wie HTTP/2, HTTP/3, Super-Cookie-Prevention etc.

    https://curl.se/windows/microsoft.html

  4. Stefan Kanthak sagt:

    Software-Frickler, die in ihrem für Windows verbrochenen Schrott libcurl[.dll] anstelle der (beispielsweise von WININET.dll oder WINHTTP.dll bereitgestellten) Schnittstellen des Win32-API missbrauchen, sind ahnungslose Volltrottel oder schlicht unfähige Faulpelze. PUNKT!

    JFTR: Gleiches gilt auch für Idioten, die OpenSSL anstelle des (alten) CryptoAPI bzw. des (neueren) [NB]Crypt verwenden.

  5. Peter Vorstatt sagt:

    >Software-Frickler, die … sind ahnungslose Volltrottel oder schlicht unfähige Faulpelze. <

    Komisch, wie können die sich dann bei weltbekannten Unternehmen der Informationstechnik halten? Hat der Herr schlechte Laune? Im übrigen ist mir nicht klar, was sich bessert, wenn die Entwickler alternativ – wie Sie schreiben – "Schnittstellen des Win32-API missbrauchen".

  6. A. Nonym sagt:

    @Born:

    Guter Beitrag, aber wie kann man eine veraltete Version updaten?

    • Froschkönig sagt:

      Hier hilft eigentlich nur Druck auf die Hersteller, welche die Dateien mitliefern, auszuüben. Man könnte jetzt versuchen, die Dateien selbst auszutauschen, das aber bei jedem Softwareupdate selbst wieder zu machen? Und wenn mit der augetauschen Datei was nicht funktioniert?

      Genau so eine Seuche sind die überall mitgelieferten veralteten Tomcat-Server (Trellix, Dell, HP, …) . Oder mit versteckten veralteten Chromium-Browser, z.B. in der Citrix Workspace App, die hinkt immer 2-3 Hauptversionen hinterher. Warum überhaupt einen eigenen Chromium mitliefern, wenn Edge schon da ist???

    • aus dem Rhein-Main Gebiet sagt:

      Soweit ich weiß, geht das über die Eingabeaufforderung als Administrator mittels

      regsvr32 [name der DLL Datei]
      Gegebenenfalls auch den kompletten Pfad zur DLL-Datei angeben.

      Downloadadresse für Windows: https://curl.se/windows

      Frage ist nur, ob dann das Programm mit einer aktuellen Version der libcurl.dll funktioniert.

      Achso, mittels

      regsvr32 [/u name der DLL Datei]

      kann man eine dll-Datei wieder deregistrieren.

      • Bolko sagt:

        1.
        regsvr32 braucht man für COM oder für ActiveX (etwa ein Video-Codec), weil diese in der Registry Werte eintragen müssen, um ansprechbar zu werden.

        libcurl.dll ist weder COM noch ActiveX, braucht also auch kein regsvr32.

        Regsvr32 würde bei mehreren libcurl.dll auch Probleme bereiten, weil immer nur eine dll mit gleichem Namen registriert werden kann.
        Angenommen, ein Programm installiert die modernste libcurl.dll und registriert sie mit regsvr32. Anschließend installiert man ein anderes Programm und dieses registriert seine total veraltete libcurl.dll. Dann müssten sämtliche Programm diese veraltete dll benutzen, denn das war die letzte und damit einzige registrierte und ansprcchbare Version.

        Dass die libcurl.dll kein COM ist sieht man anhand der exportierten Funktionen.
        COM exportiert nur 4 Funktionen (DllGetClassObject, DllCanUnloadNow, DllRegisterServer, DllUnregisterServer), aber die libcurl.dll exoportiert 96 ganz andere Funktionen.

        dumpbin.exe /exports libcurl.dll

        github. com/Delphier/dumpbin

        Es reicht im Normalfall also aus, die libcurl.dll einfach nur auszutauschen.

        2.
        Man muss darauf achten, ob das Programm eine 32-Bit oder eine 64-Bit-Version dieser libcurl.dll benutzt.

        Das kann man mit DumpBin testen:
        dumpbin.exe /Headers libcurl.dll

        Steht dort in den "File Header Values":
        a) "machine (x86)", dann ist es 32-Bit.
        b) "machine (x64)", dann ist es 64-Bit.

        3.
        Ob im MS-Office eine Spezialversion der libcurl.dll ähnlich wie die spezielle curl.exe von MS enthalten ist weiß ich nicht, nehme das aber an. Diese libcurl.dll sollte man also nicht selber austauschen.

        Die curl.exe im System32- und im SYSWOW64-Ordner hingegen sollte man nicht austauschen, weil dadurch das Windows-Update Probleme bekommen kann.

        4.
        Der Powershell-Befehl im Artikel findet nicht die "libcurl-x64.dll". Diese befindet sich zum Beispiel im Ordner von Prime95 und ist die nicht umbenannte 64-Bit-Version von der Webseite curl. se.

        5.
        Die älteste installierte Version von libcurl.dll ist von 2006 im Ordner vom aktuellen "XnView Classic 2.52.2" (von Juni 2025).

        • Henry sagt:

          Registrieren kann aber noch andere Probleme bereiten, da die Software als erstes neben dem ausgeführten Binary schaut, ob da eine gleichnamige DLL liegt. Tut sie das, wird diese angezogen statt der global registrierten.
          Da hilft wirklich nur DLLs tauschen.

          Ähnlich neben libcurl ist auch libssl unter Windows eine oft veraltete Komponente.

  7. red++ sagt:

    Na ja, CVE-2024-6197 scheint Momentan noch nicht ganz so wild zu sein, wie ich gerade gelesen habe…
    Obwohl die Schwachstelle theoretisch gravierend erscheint, ist eine Ausnutzung für Remote-Code-Ausführung (RCE) in realen Szenarien nahezu unmöglich.
    https://www.it-daily.net/it-sicherheit/cloud-security/cve-2024-6197-welches-risiko-birgt-die-neue-curl-und-libcurl-schwachstelle

  8. DWP sagt:

    Für die die keine großen Tekkis sind, kann dieses Tool bei der Suche helfen und aufzeigen wo sich die kritischen Datei(-Versionen) verstecken.

    https://www.der-windows-papst.de/2025/07/29/libcurl-bibliotheken-koennen-sicherheitsluecken-aufweisen

  9. Jonathan sagt:

    M. E. keine wirklich neue Erkenntnis. Selbst der MS Defender for Endpoint erkennt eine Reihe veralteter Bibliotheken mit Sicherheitslücken in Microsoft-Produkten, z. B. veraltete (EOL) Openssl-Versionen in Microsoft Office, Microsoft Photos, sowie in diversen Treibern.

    Betroffen sind aber auch Apps wie die AusweisApp2 oder der ElsterAuthenticator.

  10. Jonathan sagt:

    Toll finde ich auch, dass im Microsoft Store eine Version von Adobe Acrobat Reader DC aus Dezember 2024 angeboten wird – einschließlich der mindestens 19 seitdem gefixten Sicherheitslücken.

  11. Daniel Blum sagt:

    Und wie genau behebt man das jetzt?
    Wie lautet der Zauberbefehl um alle libcurl.dll auf den neuesten Stand zu bringen und halten die Apps die das nutzen aus wenn man da einfach händisch eine DLL austauscht?

  12. Martin sagt:

    Ich hatte bei der MyHarmony-Software von Logitech die Version 7.34.0.0 mit lediglich 243 KB. Die habe ich gerade gegen die aktuelle 8.15.0.0 ersetzt, die 3073 KB hat. Die Originalversion hatte ich vorher natürlich umbenannt und gesichert.

    Da das Programm 32-bit und im x86-Pfad installiert ist, nahm ich auf Verdacht die 32-bit Variante. Vielen Dank an Bolko, der beschrieben hat, wie man es testen könnte! Die Software funktioniert damit ohne Auffälligkeiten.

    Die aktuelle Hasleo Backup Suite (5.4.2.2) enthält die 7.80.0.0. Aber laut des Blogs »Der Windows Papst«, den DWP netterweise verlinkte, soll ja alles ab 7.68.0.0 relativ unkritisch sein, weshalb ich diese Version nicht selbst ersetze und stattdessen eventuell lieber die Entwickler darauf hinweise.

  13. Tomas Jakobs sagt:

    Was bislang hier keiner gesagt hat. Das Verheimlichen der komplett vergammelten libcurl Version aus 2013 von Veeam bezeichne ich als aktive Täuschung und Heimtücke!

    Dieser Dreck hat nichts in einer Infrastruktur zu suchen, schon gar nicht im Kontext einer Datensicherung und Sicherstellung eines reibungslosen Betriebes.

    • Peter Vorstatt sagt:

      Was labersch Du? S. Veeam KB ID 4718 und 3103. Veeam hat seine Hausaufgaben gemacht. Wenn auf Systemen eine libcurl von 2013 detektiert wird, ist das entweder eine Fata Morgana (Mängel/Missweisung der Auswertungslogik) oder der Veeam-Betreiber hat Updates versäumt bzw. benutzt EoL-Veeam Produkte für die keine Updates mehr angeboten werden.

  14. Bolko sagt:

    Eigentlich müsste man alle libcurl.dll und libcurl-x64.dll im Programme-Ordner löschen und die aktuellste Version in die Windows-Unterordner kopieren:

    64-Bit libcurl-x64.dll (und dieselbe Datei nochmal umbenannt zu libcurl.dll) nach:
    C:\Windows\System32

    32-Bit libcurl.dll nach:
    C:\Windows\SysWOW64

    Die Programme finden dann nicht ihre alte libcurl.dll im eigenen Ordner und suchen im Pfad nach irgend einer Version mit dem selben Namen.
    Fraglich ist nur, ob die 32-Bit-Programme auch kapieren, dass die 32-Bit-Version im SYSWOW64-Ordner liegt und nicht im System32-Ordner.
    Geht das automatisch, weil Windows das so regelt oder kommt es da zu Problemen?

    • Tomas Jakobs sagt:

      Nein eine pauschale Aussage ist nicht möglich und nochmals wie oben dargelegt, gegen eine statisch verlinkte libcurl hilft das vorgestellte Skript und alle die übrigen Versuche nicht.

  15. DWP sagt:

    Leider ist es selten möglich die libcurl.dll einfach so auszutauschen. Dagegen spricht die ABI-Kompatibilität und das kann eine Applikation dann zum Absturz bringen.
    Die libcurl.dll(s) sind dafür zu spezifisch.

    • Bolko sagt:

      Hast du Beispiele dafür (außer Microsoft)?

      Wie kann man das technisch feststellen, ohne es durch Programmfehler zu provozieren?
      Zum Beispiel mittels Vergleich der exportierten Funktionen (DumpBin /Exports)?

        • Günter Born sagt:

          Nur eine kurze Anmerkung: Es tut m.E. nicht nötig, hier irgendwelche CoPilot-Links zu posten. Entweder es gibt einen Original-Artikel von Microsoft oder Dritten, oder man lässt es sein. Wir müssen hier nicht für das MS CoPilot-Marketing laufen. Danke.

          • Peter Vorstatt sagt:

            Starke Argumentation; deutsche Hochschulen gehen mit dem Thema entspannter und liberaler um. Auszug aus einem Papier der bayerischen Hochschulen für angewandte Wissenschaften
            und Technischen Hochschulen: "Ein pauschales Verbot oder eine pauschale Zulassung von KI ist auf der Normenebene der Hochschulen rechtlich (derzeit) nicht möglich und angesichts der Notwendigkeit, fachspezifische KI-Kompetenzen zu fördern sowie prüfen zu können, auch nicht sinnvoll."

            • Günter Born sagt:

              es hat weniger mit liberal versus nicht liberal zu tun. Es wurde hier im Blog thematisiert, was AI-Anfragen für einen Fußabdruck hinterlassen. Bedenke bitte auch, dass AI-Prompts nicht deterministisch sind und bei späteren Aufrufen oder in anderen Umgebungen (Browser etc.) andere Ergebnisse zeigen können.

              Da muss es schon gewichtige Gründe geben, da einen Link auf eine AI-Ausgabe hier rein zu kippen, wo ich dann noch die Quellen prüfen muss.

              Bei einem Fall hätte ich ja nichts gesagt, aber es ist mir in letzter Zeit "a bisserl to much" mit den KI-Zitaten. Und für CoPilot muss der Blog nun wirklich keine Werbung laufen. Kommentare zur Sache, die andere Leser weiter bringen, immer gerne, aber mit fundierten Quellen und weniger CoPilot & Co. Danke für dein Verständmis.

  16. Bolko sagt:

    Wegen der eventuellen statischen Verlinkung der libcurl in eine exe habe ich mal mit dem Total Commander im Programme-Ordner nach *.exe gesucht (Befehle, Suchen, Suchen nach: *.exe, "Text suchen" anhaken und dann den Suchstring eingeben), die folgenden Text enthalten:
    curl_easy_init

    Das ist eine der exportierten Funktionen von libcurl.dll.
    Man kann auch nach einer der anderen exportierten Funktionen suchen, (curl_global_init, curl_easy_getinfo, etc) die in der Source-Datei libcurl.def drin stehen.
    Diese anderen Funktionen werden ebenfalls gefunden.

    Es gab leider Treffer:
    "burningstudio2025.exe" (Ashampoo Burning Studio 2025)
    "crashreporter.exe" (von Firefox)
    "crashreporter.exe" (von Thunderbird)
    "SenseCM.exe" ("Windows Defender Advanced Threat Protection" von Microsoft)

    Dort ist der String der Funktion in der exe enthalten, was auf eine statische Verlinkung der libcurl hindeutet.
    Wenn ich in dem Ordner und Unterordnern nach der libcurl.dll suche, dann gibt es keine Treffer, also kann die libcurl.dll auch nicht nachgeladen werden, was entweder auf eine statische Verlinkung hindeutet.

    Vielleicht benutzen diese Programme auch irgendwie die curl.exe aus dem Windows-Ordner, aber diese exportiert keine Funktionen, sondern man müsste die curl.exe über Parameter ansprechen, wofür ich bisher keine Hinweise sehe, denn der String "curl.exe" wird in der exe nicht gefunden.

    "Ashampoo Burning Studio 25" enthält die Datei "ashtech_libcurl.dll".
    Die haben also die libcurl.dll nur umbenannt und nicht statisch gelinkt.
    Dateiversion ist 7.60.0.0, also auch total veraltet.
    Das Powershell-Script aus dem Artikel hatte diese umbenannnte libcurl auch nicht gefunden.

    • Tomas Jakobs sagt:

      Du vergisst die ganzen Onefile, Single-File Assembly oder Self-Extract EXE Container Formate wie z.B. ein pyInstaller oder andere kommerzielle und Open Source Programme nutzen.

      Solange das beschissene Windows systemweit kein vernünftiges Paketmanagement hat und faule und ahnungslose oder unterbezahlte Devs Ihren Dreck einfach so daher rotzen, solange läufst Du immer Gefahr, auf vergammelten Libs oder Komponenten sitzen zu bleiben.

      Ich erinnere mich noch sehr gut an die Aussagen von Microsoft mit "managed Code" alles besser machen zu wollen… das war vor 25 Jahren….

Schreibe einen Kommentar zu Bolko Antworten abbrechen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Hinweis: Bitte beachtet die Regeln zum Kommentieren im Blog (Erstkommentare und Verlinktes landet in der Moderation, gebe ich alle paar Stunden frei, SEO-Posts/SPAM lösche ich rigoros. Kommentare abseits des Themas bitte unter Diskussion. Kommentare, die gegen die Regeln verstoßen, werden rigoros gelöscht.

Du findest den Blog gut, hast aber Werbung geblockt? Du kannst diesen Blog auch durch eine Spende unterstützen.