{"id":755493,"date":"2026-01-29T09:14:10","date_gmt":"2026-01-29T09:14:10","guid":{"rendered":"https:\/\/www.europesays.com\/de\/755493\/"},"modified":"2026-01-29T09:14:10","modified_gmt":"2026-01-29T09:14:10","slug":"javascript-sandbox-vm2-kritische-luecke-erlaubt-ausbruch","status":"publish","type":"post","link":"https:\/\/www.europesays.com\/de\/755493\/","title":{"rendered":"JavaScript-Sandbox vm2: kritische L\u00fccke erlaubt Ausbruch"},"content":{"rendered":"<p>vm2 ist eine JavaScript-Sandbox f\u00fcr Node.js. Deren Entwicklung wurde 2023 eigentlich eingestellt. In der Software wurde eine weitere Sicherheitsl\u00fccke entdeckt, die den Ausbruch aus der gesicherten Umgebung und die Ausf\u00fchrung von beliebigem Code erm\u00f6glicht. Ein Update steht bereit.<\/p>\n<p>        Weiterlesen nach der Anzeige<\/p>\n<p>In der <a href=\"https:\/\/nvd.nist.gov\/vuln\/detail\/CVE-2026-22709\" rel=\"external noopener\" target=\"_blank\">Schwachstellenmeldung erkl\u00e4ren<\/a> die Autoren, dass die Filterung der Eingaben an die Callback-Funktionen von Promise.prototype.then und Promise.prototype.catch umgangen werden kann. Dadurch k\u00f6nnen Angreifer aus der Sandbox ausbrechen und eigenen Code starten (CVE-2026-22709, CVSS <strong>9.8<\/strong>, Risiko \u201e<strong>kritisch<\/strong>\u201c). W\u00e4hrend die Callback-Funktion von localPromise.prototype.then in \u201elib\/setup-sandbox.js\u201c eine Filterung vornimmt, fehlt diese in globalPromise.prototype.then, erkl\u00e4ren die Autoren weiter. Der <a href=\"https:\/\/github.com\/patriksimek\/vm2\/compare\/v3.10.1...v3.10.2\" rel=\"external noopener\" target=\"_blank\">Patch f\u00fcr die Datei<\/a> ist recht \u00fcbersichtlich und erg\u00e4nzt die Filterung.<\/p>\n<p>Die <a href=\"https:\/\/github.com\/patriksimek\/vm2\/releases\/tag\/v3.10.2\" rel=\"external noopener\" target=\"_blank\">Version 3.10.2 von vm2<\/a> korrigiert den Fehler. Ein <a href=\"https:\/\/cvereports.com\/reports\/CVE-2026-22709\" rel=\"external noopener\" target=\"_blank\">Proof-of-Concept-Exploit ist bereits verf\u00fcgbar<\/a>. B\u00f6sartige Akteure k\u00f6nnen die L\u00fccke daher schnell in ihr Standard-Repertoire aufnehmen. Seit wenigen Tagen ist zudem die noch aktuellere <a href=\"https:\/\/github.com\/patriksimek\/vm2\/releases\/tag\/v3.10.3\" rel=\"external noopener\" target=\"_blank\">Version 3.10.3<\/a> verf\u00fcgbar. Die Korrekturen darin sollen ebenfalls etwa Ausbr\u00fcchen aus der Sandbox vorbeugen. Entwickler sollten daher auf diese Version aktualisieren, sofern sie noch vm2 einsetzen.<\/p>\n<p>Beendetes Projekt wiederbelebt<\/p>\n<p>Der Initiator des vm2-Projekts, <a href=\"https:\/\/www.heise.de\/news\/JavaScript-Sandbox-vm2-Neue-kritische-Schwachstelle-kein-Update-mehr-9219087.html\" target=\"_blank\" rel=\"noopener\">Patrik Simek, hatte Mitte 2023 eigentlich das Ende<\/a> des Projekts verk\u00fcndet. Kurz zuvor wurde eine kritische Sicherheitsl\u00fccke gefunden, f\u00fcr die keine Fehlerkorrektur programmiert wurde. Simek hatte daher Entwicklern empfohlen, stattdessen auf das ebenfalls quelloffene isolated-vm zu wechseln.<\/p>\n<p>Bislang eher unbemerkt blieben neue Commits im Projekt von Ende Oktober 2025. Unter <a href=\"https:\/\/github.com\/patriksimek\/vm2\/commit\/96acb88d9bbf3006156bfb86c12fed4954224c7d#diff-b335630551682c19a781afebcf4d07bf978fb1f8ac04c6bf87428ed5106870f5\" rel=\"external noopener\" target=\"_blank\">dem Titel \u201eResurrection\u201c hat Simek<\/a> damit die Weiterentwicklung von vm2 mit Versionssprung auf 3.10 angesto\u00dfen. W\u00e4hrend Simek sich urspr\u00fcnglich deutlich zu den Gr\u00fcnden f\u00fcr das Aus ge\u00e4u\u00dfert hatte \u2013 die wachsende Komplexit\u00e4t von Node.js sei nicht mehr handhabbar \u2013, finden sich keine Hinweise f\u00fcr die Motivation, nach mehr als zwei Jahren doch wieder weiterzumachen.<\/p>\n<p>Wer bisher das Ende des Projekts nicht mitbekommen und daher eine veraltete, mit Sicherheitsl\u00fccken gespickte Version von vm2 im Einsatz hat, sollte z\u00fcgig auf die fehlerkorrigierte Fassung umsteigen. <\/p>\n<p>        Weiterlesen nach der Anzeige<\/p>\n<p>(<a class=\"redakteurskuerzel__link\" href=\"https:\/\/www.heise.de\/news\/mailto:dmk@heise.de\" title=\"Dirk Knop\" target=\"_blank\" rel=\"noopener\">dmk<\/a>)<\/p>\n<p>\n      Dieser Link ist leider nicht mehr g\u00fcltig.\n    <\/p>\n<p>Links zu verschenkten Artikeln werden ung\u00fcltig,<br \/>\n      wenn diese \u00e4lter als 7\u00a0Tage sind oder zu oft aufgerufen wurden.\n    <\/p>\n<p><strong>Sie ben\u00f6tigen ein heise+ Paket, um diesen Artikel zu lesen. Jetzt eine Woche unverbindlich testen \u2013 ohne Verpflichtung!<\/strong><\/p>\n","protected":false},"excerpt":{"rendered":"vm2 ist eine JavaScript-Sandbox f\u00fcr Node.js. Deren Entwicklung wurde 2023 eigentlich eingestellt. In der Software wurde eine weitere&hellip;\n","protected":false},"author":2,"featured_media":755494,"comment_status":"","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[135],"tags":[10308,29,30,196,39447,172402,190,189,1687,4970,194,191,1314,172403,193,192],"class_list":{"0":"post-755493","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-wissenschaft-technik","8":"tag-alert","9":"tag-deutschland","10":"tag-germany","11":"tag-it","12":"tag-javascript","13":"tag-sandbox","14":"tag-science","15":"tag-science-technology","16":"tag-security","17":"tag-sicherheitsluecken","18":"tag-technik","19":"tag-technology","20":"tag-updates","21":"tag-vm2","22":"tag-wissenschaft","23":"tag-wissenschaft-technik"},"share_on_mastodon":{"url":"https:\/\/pubeurope.com\/@de\/115977628168557082","error":""},"_links":{"self":[{"href":"https:\/\/www.europesays.com\/de\/wp-json\/wp\/v2\/posts\/755493","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.europesays.com\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.europesays.com\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.europesays.com\/de\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.europesays.com\/de\/wp-json\/wp\/v2\/comments?post=755493"}],"version-history":[{"count":0,"href":"https:\/\/www.europesays.com\/de\/wp-json\/wp\/v2\/posts\/755493\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.europesays.com\/de\/wp-json\/wp\/v2\/media\/755494"}],"wp:attachment":[{"href":"https:\/\/www.europesays.com\/de\/wp-json\/wp\/v2\/media?parent=755493"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.europesays.com\/de\/wp-json\/wp\/v2\/categories?post=755493"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.europesays.com\/de\/wp-json\/wp\/v2\/tags?post=755493"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}