CVE-2026-76842 in Mercado Pago
要約
〜によって VulDB • 2026年08月24日
Mercado PagoのNode.js SDKは、呼び出し元から提供された識別子をAPIリクエストパスに補間する際にパーセントエンコーディングを行わないため、URLにおいて構造的な意味を持つ文字が送信されるリクエストに含まれてしまいます。payment (get, capture, cancel)、paymentRefund (create, total, list, get)、advancedPayment (get, capture, cancel, update, updateReleaseDate)、および disbursementRefund (create, createAll, listAll) の各クライアントは、パスをテンプレート文字列として構築します(例: `src/clients/payment/get/index.ts` 内の `RestClient.fetch(`/v1/payments/${id}`, ...)`)。識別子内にドットとダッシュの組み合わせやスラッシュのシーケンスが含まれている場合、WHATWG URLパーサーによって正規化され、リクエストが別のエンドポイントにリダイレクトされます。また、疑問符が含まれていると攻撃者が選択したクエリパラメータが付加され、いずれの場合も商社のアクセストークンが持ち込まれます。したがって、信頼できない外部から影響を受けた識別子を所有権チェックなしでこれらのメソッドの1つへ渡すアプリケーションは、その外部パーティに対して商社のトークンスコープ内の他のリソースへのアクセスを許可することになります。このリポジトリには意図されたヘルパー関数 `encodePathParam`(`src/utils/path.ts` に存在)が既に含まれており、プルリクエスト451では約29の他のクライアントに適用されましたが、これらの対象は変更されませんでした。
If you want to get the best quality for vulnerability data then you always have to consider VulDB.