Skip to main content

Das Fastify-Node.js-Framework verbessert die JSON-Sicherheit dank eines Sicherheitsberichts

Artikel von
Node How even quick async functions can block the Event Loop starve tumb

10. März 2020

0 Min. Lesezeit

Am 9. April meldete Francesco Soncina – auf der Bug-Bounty-Plattform HackerOne auch als phra bekannt – der Node.js Security Working Group eine serverseitige JavaScript-Code-Injection-Schwachstelle. Als betroffenes Ziel dieser Sicherheitslücke wurde zunächst Fastify identifiziert, ein Webanwendungs-Framework für Node.js.

Matteo Collina, einer der Maintainer des Open-Source-Projekts Fastify, wurde eingeladen, den Bericht zeitnah zu bewerten und den Proof-of-Concept-Exploit-Code zu prüfen. Bei dem Proof-of-Concept-Angriff kam eine JavaScript-Code-Injection zum Einsatz, die eine Reverse Shell startete. Diese war in das vom Framework eingelesene JSON-Schema eingebettet.

Letztendlich wurde dieser Sicherheitsbericht als relativ harmlos eingestuft, da er Fastify selbst nicht betrifft. Der Grund dafür war, dass das JSON-Schema vom Nutzer als Konfigurationselement der Anwendung bereitgestellt wird und daher als vertrauenswürdige Eingabe gilt.

Dennoch ist es interessant und zugleich wichtig, die Bedeutung solcher Sicherheitsberichte hervorzuheben – unabhängig davon, ob daraus eine bestätigte Sicherheitslücke mit CVE wird oder nicht.

In diesem Fall dreht sich die Sicherheitsdiskussion im Bericht insbesondere um eine anhaltende Debatte zwischen dem Fastify-Maintainer und dem Sicherheitsforscher, der die Schwachstelle offengelegt hat. Die Zusammenarbeit und Entschlossenheit von Collina und Soncina sind bemerkenswert. Ihr gemeinsames Ziel ist es, alle möglichen Sicherheits-Sinks in der JSON-Rendering-Logik aufzudecken, damit sie möglichst widerstandsfähig gegen Sicherheitsprobleme ist, die auftreten könnten.

Besonders interessant ist, dass dieser Sicherheitsbericht Folgendes bewirkte:

  1. Ein robusteres und sichereres JSON-Parsing in fast-json-stringify, umgesetzt durch diesen Pull Request auf GitHub und die anschließende offizielle Veröffentlichung in Version 1.15.3.

  2. Ein Sicherheitshinweis in der Dokumentation, der die Bedenken und Risikobereiche klar benennt, damit Nutzer der Bibliothek gut darüber informiert sind, wie sie mit Daten umgehen sollten. Er wurde mit diesem Pull Request eingeführt.

Als ich diesen Bericht fertigstellte und für die Offenlegung vorbereitete, wurde mir klar, dass wir mehr tun sollten, um den Wert von Sicherheitsmeldungen anzuerkennen. Obwohl das gemeldete Problem weder Fastify noch fast-json-stringify, direkt beeinträchtigte, löste es eine wichtige Diskussion aus. Vor allem schärfte es bei den Maintainern das Bewusstsein für Sicherheitsbedenken in ihrem Code.

Abschließende Anmerkungen

Wenn Sie Sicherheitsforscher oder Maintainer eines Moduls sind, möchte ich Ihnen zum Abschluss diesen Hinweis aus dem ursprünglichen Bericht mitgeben. Und noch einmal: Vielen Dank für Ihre Arbeit und Ihren Einsatz, mit denen Sie dazu beitragen, das Node.js-, JavaScript- und Open-Source-Ökosystem zu schützen.

Screenshot eines GitHub-Kommentars von lirantal, in dem diskutiert wird, ob die Sicherheitsberichte zu fast-json-stringify und Fastify Schwachstellen oder Fragen der Projektrichtlinien betreffen.

Weiterlesen

Live Stream

Remediation-Agenten verständlich erklärt: Warum Beheben besser ist als Finden

Erfahren Sie, wie der Remediation Agent von Snyk Sicherheitsinformationen, Analysen zur Ausnutzbarkeit und Validierung nutzt, um Schwachstellen in zusammenführbare Pull Requests zu verwandeln.

feature insights context
Blog

Der keyv-npm-Angriff: Preinstall-Malware, vertrauenswürdige Provenance und IDE-Hooks

keyv 6.0.0 und zehn weitere npm-Releases enthielten Malware, die bei der Installation ausgeführt wird. Erfahren Sie, welche Versionen betroffen sind, welche Hashes gelten, wie Sie die Malware erkennen und in welcher Reihenfolge Sie sicher reagieren.

feature ai ide dark
Blog

Ein erster Einblick in Evo Agentic AppSec: Agentic Remediation und Schutz vor schädlichem Code

Entdecken Sie die ersten Agentic-AppSec-Funktionen von Snyk: einen autonomen Remediation Agent, der Sicherheitslücken behebt, und Malicious Code Defense, das riskante Pakete blockiert, bevor sie ausgeliefert werden.