Skip to main content

Prototype-Pollution in express-fileupload

Artikel von
Blog illustrations vul profile feature

24. August 2020

0 Min. Lesezeit

Willkommen beim Snyk Monthly Vulnerability Profile. In dieser Reihe blickt Snyk auf Schwachstellen zurück, die von unserem Security Research Team entdeckt oder gemeldet wurden. Wir wählen eine bemerkenswerte Schwachstelle aus dem vergangenen Monat aus und erzählen die Geschichte ihrer Entdeckung, Erforschung und Offenlegung. Wir stellen die Forschenden, Entwickler und Nutzer vor, die dabei helfen, Schwachstellen in der Open-Source-Community zu finden und zu beheben.

Diesen Monat geht es um eine Prototype-Pollution-Schwachstelle, die in express-fileupload entdeckt wurde.


Schwachstelle: Prototype-Pollution in express-fileupload

Zugewiesene CVEs: CVE-2020-7699

Snyk-Analyst: Sam Sanoop

Entdeckt von: einer unter dem Pseudonym po6ix auftretenden forschenden Person

Im beliebten Paket express-fileupload wurde kürzlich eine Prototype-Pollution-Schwachstelle entdeckt und als Issue im GitHub-Repository gemeldet.

Die Issues-Funktion bietet Entwicklern und Sicherheitsforschenden eine praktische Möglichkeit, Paketverantwortliche über entdeckte Fehler oder Sicherheitslücken zu informieren. Diese Informationen sind zwar öffentlich einsehbar, werden jedoch nicht umfassend an die Sicherheits- oder Entwickler-Communitys weitergegeben, die davon erfahren müssten.

Wie können wir also sicherstellen, dass schwerwiegende Sicherheitslücken, die als Issues im Repository gemeldet werden, breiter kommuniziert werden? Die Geschichte rund um die Prototype-Pollution-Schwachstelle in express-fileupload zeigt, wie das Research-Team von Snyk dazu beiträgt, dieses Problem anzugehen.

Die Details der Prototype-Pollution-Schwachstelle

Am 25. Juli 2020 meldete eine unter dem Pseudonym po6ix auftretende forschende Person ein Issue im GitHub-Repository des Pakets express-fileupload. Darin wird eine Prototype-Pollution-Schwachstelle beschrieben, die die Person im Paket entdeckt hatte. Außerdem wird gezeigt, wie sich die Schwachstelle für die Ausführung von Remote-Code nutzen lässt – über eine Funktion, die Dateipfadinformationen parst. Die Person veröffentlichte auf ihrer Website auch einen Blogbeitrag, der die Schwachstelle beschreibt und Proof-of-Concept-Demonstrationen (POCs) enthält.

Dunkler Code-Editor mit einer JavaScript-Funktion namens processNested, die verschachtelte Objektschlüssel rekursiv verarbeitet.

Das Security Research Team von Snyk durchsucht regelmäßig öffentliche GitHub-Repositories nach Issues, in denen potenzielle Sicherheitslücken beschrieben werden. Die Aufmerksamkeit des Teams wurde auf eine Reihe von Issues gelenkt, die po6ix in sehr kurzer Zeit gemeldet hatte. Dazu gehörte auch die Schwachstelle im Paket express-fileupload. Der Snyk-Sicherheitsanalyst Sam Sanoop kontaktierte po6ix, um weitere Einblicke in die Schwachstelle zu erhalten und Snyks Unterstützung bei der Zuweisung von CVEs für die verschiedenen von der forschenden Person entdeckten Schwachstellen anzubieten.

Nach einem Gespräch mit po6ix über die Schwachstellen nahm Sam die im Blogbeitrag aufgeführten Proof-of-Concepts und nutzte sie, um die Angriffe nachzustellen. So konnte Snyk die Tragweite und Ausnutzbarkeit der Schwachstelle bestätigen.

Nachdem Sam die Details der Schwachstelle bestätigt hatte, errechnete er dafür einen CVSS-Score von 7,5 – unter anderem aufgrund der Möglichkeit, die Angriffe aus der Ferne auszuführen. Laut dem Blogbeitrag von po6ix hatte das Paket express-fileupload Ende Juli 2020 fast 8 Millionen Downloads. Die Kombination aus der Schwere der Schwachstelle und der Beliebtheit des anfälligen Pakets machte diese Entdeckung besonders besorgniserregend.

Sam wies der Schwachstelle CVE-2020-7699 zu und erstellte einen ausführlichen Bericht, den er der Snyk Vulnerability Database hinzufügte. Auch in der Snyk Vulnerability DB wird po6ix als ursprüngliche entdeckende Person angemessen gewürdigt.

Codeausschnitt mit einer Merge-Funktion, die Eigenschaften eines Quellobjekts in ein Zielobjekt kopiert.

In der Zwischenzeit implementierte der Paketverantwortliche in Version 1.1.8 des Pakets eine Behebung der Sicherheitslücke. Das Problem wurde jedoch nicht vollständig behoben, und ein weiterer GitHub-Nutzer eröffnete ein Folge-Issue. Darin wies die Person darauf hin, dass sich mithilfe von Elementen desselben Angriffs weiterhin ein Denial-of-Service-Angriff auf das Paket ausführen ließ. Am 6. August 2020 veröffentlichte der Paketverantwortliche Version 1.1.10, mit der die Schwachstelle nachweislich behoben wird.

Diese Geschichte ist nur ein Beispiel dafür, wie das Research-Team von Snyk mit der Entwickler- und Sicherheits-Community zusammenarbeitet. Unser Ziel ist nicht nur, dafür zu sorgen, dass Schwachstellen in Paketen behoben werden. Wir möchten auch eine offene Kommunikation über Schwachstelleninformationen fördern, damit alle ihre Software einfacher absichern können.

Unsere früheren MVP-Beiträge verpasst? Hier finden Sie sie:

Weiterlesen

blog feature snyk container custom base recommendations
Blog

Evo Agentic AppSec: Sicherheit, die mit der KI-Entwicklung Schritt hält

KI-gestützte Entwicklung überholt herkömmliche Security-Workflows. Snyk Agentic AppSec setzt Security-Agenten ein, die Schwachstellen kontinuierlich finden, beheben und überprüfen – während Menschen die Maßstäbe festlegen.

Blog

Frontier-Modelle fanden die Schwachstellen. Nur der Angreifer fand die Angriffsketten.

Die statische Analyse fand die Schwachstellen, doch erst Live-Angriffstests bewiesen, wie sie sich zu Angriffen verketten lassen. Ein Vergleich von Evo COS, Claude Security und Claude Code Security.

feature insights context
Blog

Autonome Angriffe sind bereits Realität. Die Verteidigung muss Schritt halten.

Autonome Angreifer verkürzen das Zeitfenster für die Verteidigung. Erfahren Sie, wie kontinuierliches Erkennen, Beheben, Validieren und Verhindern Sicherheitsteams helfen kann, Schritt zu halten.