Description
The Mercado Pago Node.js SDK interpolates caller-supplied identifiers into API request paths without percent-encoding them, so characters that are structural in a URL survive into the outgoing request. The payment (get, capture, cancel), paymentRefund (create, total, list, get), advancedPayment (get, capture, cancel, update, updateReleaseDate) and disbursementRefund (create, createAll, listAll) clients build their path as a template literal, for example RestClient.fetch(`/v1/payments/${id}`, ...) in src/clients/payment/get/index.ts. A dot-dot or slash sequence in the identifier is normalised by the WHATWG URL parser and redirects the request to a different endpoint, and a question mark appends attacker-chosen query parameters, in both cases carrying the merchant's own access token. An application that forwards an identifier influenced by an untrusted party into one of these methods without an ownership check therefore allows that party to reach other resources within the merchant's token scope. The repository already contains the intended helper, encodePathParam in src/utils/path.ts, which pull request 451 applied to roughly 29 other clients while leaving these unchanged.
Published: 2026-08-24
Score: 8.8 High
EPSS: < 1% Very Low
KEV: No
Impact: Unauthorized Resource Access via Path Injection
Action: Immediate Patch
AI Analysis

Impact

The SDK builds API request paths by directly interpolating caller‑supplied identifiers into literal strings. When an attacker supplies a value containing directory traversal or query string sequences, the WHATWG URL parser normalizes those characters and redirects the request to an unintended endpoint. The request still carries the merchant’s access token, which allows the attacker to query, modify, or otherwise interact with resources that the merchant should not expose. This effectively bypasses authorization controls and can expose sensitive payment data or permit unauthorized execution of payment operations.

Affected Systems

Mercado Pago Node.js SDK version 3.4.0 and earlier. The vulnerability exists in payment, paymentRefund, advancedPayment, and disbursementRefund client modules that construct paths such as `/v1/payments/${id}` without encoding identifiers. The repository contains the helper function encodePathParam added in a later pull request, but these unchanged clients remain vulnerable in the specified release.

Risk and Exploitability

The CVSS score of 8.8 marks it as high severity, while the EPSS score is currently unavailable. Although not listed in the CISA KEV catalog, the flaw allows attackers to reach any API endpoint in the merchant’s token scope simply by forging an identifier passed to the SDK. The attack vector is local to the application code: an attacker must control the identifier that is passed to the SDK method. The absence of built‑in validation or encoding makes exploitation straightforward for any application that forwards untrusted identifiers to these SDK calls, and the impact is limited only by the scope of the merchant’s access token.

Generated by OpenCVE AI on August 24, 2026 at 17:47 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade the Mercado Pago Node.js SDK to the latest version (e.g., 3.4.1 or later) where the encodePathParam helper is applied to all path‑building clients, eliminating the path injection issue.
  • If an upgrade is not immediately possible, encode any caller‑supplied identifiers with encodePathParam (or encodeURIComponent) before passing them to the SDK’s payment, paymentRefund, advancedPayment, or disbursementRefund methods.
  • Ensure the application performs an ownership check or authorization validation on the identifier value before forwarding it to the SDK, preventing untrusted input from reaching protected endpoints.

Generated by OpenCVE AI on August 24, 2026 at 17:47 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Mon, 24 Aug 2026 21:30:00 +0000

Type Values Removed Values Added
First Time appeared Mercadopago
Mercadopago mercadopago
Vendors & Products Mercadopago
Mercadopago mercadopago

Mon, 24 Aug 2026 18:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'yes', 'Exploitation': 'none', 'Technical Impact': 'partial'}, 'version': '2.0.3'}


Mon, 24 Aug 2026 13:30:00 +0000

Type Values Removed Values Added
Description The Mercado Pago Node.js SDK interpolates caller-supplied identifiers into API request paths without percent-encoding them, so characters that are structural in a URL survive into the outgoing request. The payment (get, capture, cancel), paymentRefund (create, total, list, get), advancedPayment (get, capture, cancel, update, updateReleaseDate) and disbursementRefund (create, createAll, listAll) clients build their path as a template literal, for example RestClient.fetch(`/v1/payments/${id}`, ...) in src/clients/payment/get/index.ts. A dot-dot or slash sequence in the identifier is normalised by the WHATWG URL parser and redirects the request to a different endpoint, and a question mark appends attacker-chosen query parameters, in both cases carrying the merchant's own access token. An application that forwards an identifier influenced by an untrusted party into one of these methods without an ownership check therefore allows that party to reach other resources within the merchant's token scope. The repository already contains the intended helper, encodePathParam in src/utils/path.ts, which pull request 451 applied to roughly 29 other clients while leaving these unchanged.
Title Mercado Pago Node.js SDK through 3.4.0 Path Injection via Unencoded Identifiers in Payment Clients
Weaknesses CWE-22
References
Metrics cvssV3_1

{'score': 8.2, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:L/A:N'}

cvssV4_0

{'score': 8.8, 'vector': 'CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:L/VA:N/SC:N/SI:N/SA:N'}


Subscriptions

Mercadopago Mercadopago
cve-icon MITRE

Status: PUBLISHED

Assigner: VulnCheck

Published:

Updated: 2026-08-29T11:47:52.494Z

Reserved: 2026-08-19T20:34:19.724Z

Link: CVE-2026-76842

cve-icon Vulnrichment

Updated: 2026-08-24T17:24:29.473Z

cve-icon NVD

Status : Received

Published: 2026-08-24T14:17:01.930

Modified: 2026-08-24T18:17:22.517

Link: CVE-2026-76842

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-08-24T21:10:54Z

Weaknesses
  • CWE-22

    Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal')