Skip to content
Heist/ feed
Back to feed
High

mppx-condition-gate: Free-access path grants on a self-declared wallet without proving control

Type: advisorySources: OSV

mppx-condition-gate provides conditional free-access wrappers for mppx payment methods. Prior to @insumermodel/mppx-condition-gate 3.0.0 and @insumermodel/mppx-token-gate 1.0.4, the packages read a wallet address from the client-supplied credential.source, checked whether that public address met configured on-chain conditions, and returned a successful free-access receipt without invoking the wrapped payment verifier or proving that the caller controlled the wallet. An unauthenticated attacker could name any qualifying wallet and obtain content that should require payment, and cached grants could be reused for the configured cache lifetime. The corrected packages prevent free-access authorization unless payer control has been established. These issues are fixed in @insumermodel/mppx-condition-gate 3.0.0 and @insumermodel/mppx-token-gate 1.0.4.

Products
Not specified
Affected versions
Not specified
Fixed versions
Not specified
CVEs
CVE-2026-104891
Confirmed fixed CVEs
Not specified
Updated in this feed
4 Nov 2026, 16:16 UTC · Revision 1

Source evidence

mppx-condition-gate: Free-access path grants on a self-declared wallet without proving control

core-osv · Original source

Published 5 Oct 2026, 15:55 UTC

mppx-condition-gate provides conditional free-access wrappers for mppx payment methods. Prior to @insumermodel/mppx-condition-gate 3.0.0 and @insumermodel/mppx-token-gate 1.0.4, the packages read a wallet address from the client-supplied credential.source, checked whether that public address met configured on-chain conditions, and returned a successful free-access receipt without invoking the wrapped payment verifier or proving that the caller controlled the wallet. An unauthenticated attacker could name any qualifying wallet and obtain content that should require payment, and cached grants could be reused for the configured cache lifetime. The corrected packages prevent free-access authorization unless payer control has been established. These issues are fixed in @insumermodel/mppx-condition-gate 3.0.0 and @insumermodel/mppx-token-gate 1.0.4.

osv:CVE-2026-104891
Complete source record
{
  "id": "a43abc9f22bea2e3429084f1cdde9834bce77ad3ef5f427da688f80e0768a1c8",
  "url": "https://osv.dev/vulnerability/CVE-2026-104891",
  "method": "structured",
  "payload": {
    "kind": "advisory",
    "title": "mppx-condition-gate: Free-access path grants on a self-declared wallet without proving control",
    "summary": "mppx-condition-gate provides conditional free-access wrappers for mppx payment methods. Prior to @insumermodel/mppx-condition-gate 3.0.0 and @insumermodel/mppx-token-gate 1.0.4, the packages read a wallet address from the client-supplied credential.source, checked whether that public address met configured on-chain conditions, and returned a successful free-access receipt without invoking the wrapped payment verifier or proving that the caller controlled the wallet. An unauthenticated attacker could name any qualifying wallet and obtain content that should require payment, and cached grants could be reused for the configured cache lifetime. The corrected packages prevent free-access authorization unless payer control has been established. These issues are fixed in @insumermodel/mppx-condition-gate 3.0.0 and @insumermodel/mppx-token-gate 1.0.4.",
    "evidence": "osv:CVE-2026-104891",
    "products": [],
    "severity": "high",
    "structured": {
      "id": "CVE-2026-104891",
      "aliases": [
        "CVE-2026-104891",
        "GHSA-jg6q-3qfh-r9f8"
      ],
      "metrics": [
        {
          "type": "CVSS_V3",
          "score": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N"
        }
      ],
      "affected": [
        {
          "ranges": [
            {
              "repo": "https://github.com/insumerapi/mppx-condition-gate",
              "type": "GIT",
              "events": [
                {
                  "introduced": "0"
                },
                {
                  "fixed": "b1d9935a57ba6d32da49eead1bfb459ad0cd55ab"
                },
                {
                  "fixed": "ec43a2fcd443a0fa102b6d4203abed2b785bd954"
                }
              ],
              "database_specific": {
                "extracted_events": [
                  {
                    "range": [
                      {
                        "introduced": "0"
                      },
                      {
                        "fixed": "b1d9935a57ba6d32da49eead1bfb459ad0cd55ab"
                      }
                    ],
                    "source": "AFFECTED_FIELD",
                    "strategy": "StringRangeExpression"
                  },
                  {
                    "range": [
                      {
                        "fixed": "b1d9935a57ba6d32da49eead1bfb459ad0cd55ab"
                      }
                    ],
                    "source": "REFERENCES_COMMIT"
                  },
                  {
                    "range": [
                      {
                        "fixed": "ec43a2fcd443a0fa102b6d4203abed2b785bd954"
                      }
                    ],
                    "source": "REFERENCES_COMMIT"
                  }
                ]
              }
            }
          ],
          "database_specific": {
            "source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-104891.json"
          }
        }
      ],
      "modified": "2026-10-28T02:30:36.824803081Z",
      "provider": "osv",
      "references": [
        "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/104xxx/CVE-2026-104891.json",
        "https://github.com/insumerapi/mppx-condition-gate/security/advisories/GHSA-jg6q-3qfh-r9f8",
        "https://nvd.nist.gov/vuln/detail/CVE-2026-104891",
        "https://github.com/insumerapi/mppx-condition-gate/commit/b1d9935a57ba6d32da49eead1bfb459ad0cd55ab",
        "https://github.com/insumerapi/mppx-condition-gate/commit/ec43a2fcd443a0fa102b6d4203abed2b785bd954"
      ],
      "provider_metadata": {
        "cwe_ids": [
          "CWE-290",
          "CWE-863"
        ],
        "cna_assigner": "GitHub_M",
        "unresolved_ranges": [
          {
            "extracted_events": [
              {
                "range": [
                  {
                    "fixed": "3.0.0"
                  },
                  {
                    "fixed": "1.0.4"
                  }
                ],
                "source": "AFFECTED_FIELD",
                "strategy": "StringRangeExpression"
              }
            ]
          }
        ],
        "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/104xxx/CVE-2026-104891.json"
      }
    },
    "related_cves": [
      {
        "value": "CVE-2026-104891",
        "evidence": "/id"
      }
    ],
    "security_relevant": true,
    "severity_evidence": "/severity/0/score"
  },
  "source_id": "core-osv",
  "document_id": 504237,
  "published_at": "2026-10-05T15:55:28.731+00:00"
}