„`html
Zusammenfassung
Die Schwachstelle CVE-2026-76842 betrifft das Mercado Pago Node.js SDK und ermöglicht es Angreifern, über manipulierte Identifikatoren unbefugte Zugriffe auf API-Endpunkte durchzuführen. Durch fehlende URL-Encoding-Validierung können strukturelle URL-Zeichen in API-Anfragen missbraucht werden, um das Merchant-Access-Token für nicht autorisierte Operationen einzusetzen.
Betroffene Systeme
Das Mercado Pago Node.js SDK ist betroffen. Spezifisch vulnerable Clients sind:
- Payment (get, capture, cancel)
- PaymentRefund (create, total, list, get)
- AdvancedPayment (get, capture, cancel, update, updateReleaseDate)
- DisbursementRefund (create, createAll, listAll)
Alle Anwendungen, die dieses SDK nutzen und Benutzer-kontrollierte Identifikatoren an diese Methoden weitergeben, sind betroffen.
Technische Details
Die Verwundbarkeit liegt in der unsicheren Pfad-Konstruktion mittels Template-Literalen. Der Code in src/clients/payment/get/index.ts nutzt beispielsweise: RestClient.fetch(`/v1/payments/${id}`, ...)
Ohne Percent-Encoding können Spezialzeichen wie Punkte (..), Schrägstriche (/) und Fragezeichen (?) in der Identifikator-Variable erhalten bleiben. Der WHATWG URL Parser normalisiert diese Sequenzen:
- Dot-Dot-Sequenzen (..) führen zu Path-Traversal
- Zusätzliche Schrägstriche (/) umleiten zu anderen Endpunkten
- Fragezeichen (?) erlauben das Anhängen attacker-kontrollierter Query-Parameter
Während andere ~29 Clients bereits die sichere Funktion encodePathParam() aus src/utils/path.ts nutzen, blieben die genannten Clients ungepatcht.
Empfohlene Massnahmen
- Alle Identifikatoren müssen vor der Verwendung in URL-Pfaden mit der vorhandenen
encodePathParam()-Funktion kodiert werden - SDK auf eine gepatchte Version aktualisieren, sobald verfügbar
- Implementiere auf Applikationsebene Validierungen für Benutzer-Input
- Überprüfe, ob Identifikatoren tatsächlich dem aktuellen Merchant gehören, bevor API-Operationen durchgeführt werden
Bewertung
CVSS 8.2 (High) – Die hohe Bewertung ist gerechtfertigt, da die Schwachstelle einen Token-Missbrauch im Merchant-Scope ermöglicht und keine Authentifizierung erfordert, wenn die Anwendung die Eingabevalidierung nicht durchführt.
„`