Skip to content
Heist/ feed
Back to feed
Medium

mppx: Gas Draining with access list

Type: advisorySources: OSV

mppx is a TypeScript interface for machine payments protocol. Prior to 0.8.2, the fee-payer cosigning path in src/tempo/internal/fee-payer.ts copied a client-supplied access_list from a 0x78 FeePayerEnvelope without validating its length or contents. Because EIP-2930 access-list entries consume intrinsic gas even when the listed addresses are never used, a client could add fabricated address-only entries and cause the server fee_payer wallet to pay unnecessary transaction fees. The demonstrated 180-entry list remained within the 500,000 gas policy cap, 16 KB header limit, and RPC simulation budget while increasing the fee by approximately 9.4 times. This issue is fixed in version 0.8.2.

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

Source evidence

mppx: Gas Draining with access list

core-osv · Original source

Published 22 Sept 2026, 19:09 UTC

mppx is a TypeScript interface for machine payments protocol. Prior to 0.8.2, the fee-payer cosigning path in src/tempo/internal/fee-payer.ts copied a client-supplied access_list from a 0x78 FeePayerEnvelope without validating its length or contents. Because EIP-2930 access-list entries consume intrinsic gas even when the listed addresses are never used, a client could add fabricated address-only entries and cause the server fee_payer wallet to pay unnecessary transaction fees. The demonstrated 180-entry list remained within the 500,000 gas policy cap, 16 KB header limit, and RPC simulation budget while increasing the fee by approximately 9.4 times. This issue is fixed in version 0.8.2.

osv:CVE-2026-63628
Complete source record
{
  "id": "63d89a3e405f305820a8aa40238d545fbdd6330f8ba6b77456901f6fc2c4ccae",
  "url": "https://osv.dev/vulnerability/CVE-2026-63628",
  "method": "structured",
  "payload": {
    "kind": "advisory",
    "title": "mppx: Gas Draining with access list",
    "summary": "mppx is a TypeScript interface for machine payments protocol. Prior to 0.8.2, the fee-payer cosigning path in src/tempo/internal/fee-payer.ts copied a client-supplied access_list from a 0x78 FeePayerEnvelope without validating its length or contents. Because EIP-2930 access-list entries consume intrinsic gas even when the listed addresses are never used, a client could add fabricated address-only entries and cause the server fee_payer wallet to pay unnecessary transaction fees. The demonstrated 180-entry list remained within the 500,000 gas policy cap, 16 KB header limit, and RPC simulation budget while increasing the fee by approximately 9.4 times. This issue is fixed in version 0.8.2.",
    "evidence": "osv:CVE-2026-63628",
    "products": [],
    "severity": "medium",
    "structured": {
      "id": "CVE-2026-63628",
      "aliases": [
        "CVE-2026-63628",
        "GHSA-vc9j-9wph-qghj"
      ],
      "metrics": [
        {
          "type": "CVSS_V4",
          "score": "CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N"
        }
      ],
      "affected": [
        {
          "ranges": [
            {
              "repo": "https://github.com/wevm/mppx",
              "type": "GIT",
              "events": [
                {
                  "introduced": "0"
                },
                {
                  "fixed": "831dd0a72aa35e5f7876b65ca4b4f8a645c9dc89"
                },
                {
                  "fixed": "24ddcca719ae282977d8747309ed1275ea282b25"
                }
              ],
              "database_specific": {
                "extracted_events": [
                  {
                    "range": [
                      {
                        "introduced": "0"
                      },
                      {
                        "fixed": "0.8.2"
                      }
                    ],
                    "source": "AFFECTED_FIELD",
                    "strategy": "StringRangeExpression"
                  },
                  {
                    "range": [
                      {
                        "fixed": "24ddcca719ae282977d8747309ed1275ea282b25"
                      }
                    ],
                    "source": "REFERENCES_COMMIT"
                  },
                  {
                    "range": [
                      {
                        "fixed": "831dd0a72aa35e5f7876b65ca4b4f8a645c9dc89"
                      }
                    ],
                    "source": "REFERENCES_TAG",
                    "original_tag": "mppx@0.8.2"
                  }
                ]
              }
            }
          ],
          "versions": [
            "mppx@0.8.1",
            "mppx@0.8.0",
            "mppx@0.7.0",
            "mppx@0.6.31",
            "mppx@0.6.30",
            "mppx@0.6.29",
            "mppx@0.6.28",
            "mppx@0.6.27",
            "mppx@0.6.26",
            "mppx@0.6.25",
            "mppx@0.6.24",
            "mppx@0.6.23",
            "mppx@0.6.22",
            "mppx@0.6.21",
            "mppx@0.6.20",
            "mppx@0.6.19",
            "mppx@0.6.18",
            "mppx@0.6.17",
            "mppx@0.6.16",
            "mppx@0.6.15",
            "mppx@0.6.14",
            "mppx@0.6.13",
            "mppx@0.6.12",
            "mppx@0.6.11",
            "mppx@0.6.10",
            "mppx@0.6.9",
            "mppx@0.6.8",
            "mppx@0.6.7",
            "mppx@0.6.6",
            "mppx@0.6.5",
            "mppx@0.6.3",
            "mppx@0.6.2",
            "mppx@0.6.1",
            "mppx@0.6.0",
            "mppx@0.5.17",
            "mppx@0.5.16",
            "mppx@0.5.14",
            "mppx@0.5.13",
            "mppx@0.5.12",
            "mppx@0.5.10",
            "mppx@0.5.11",
            "mppx@0.5.9",
            "mppx@0.5.8",
            "mppx@0.5.7",
            "mppx@0.5.6",
            "mppx@0.5.5",
            "mppx@0.5.4",
            "mppx@0.5.3",
            "mppx@0.5.1",
            "mppx@0.5.0",
            "mppx@0.4.12",
            "mppx@0.4.11",
            "mppx@0.4.10",
            "mppx@0.4.9",
            "mppx@0.4.8",
            "mppx@0.4.7",
            "mppx@0.4.6",
            "mppx@0.4.5",
            "mppx@0.4.4",
            "mppx@0.4.3",
            "mppx@0.4.2",
            "mppx@0.4.1",
            "mppx@0.4.0",
            "mppx@0.3.16",
            "mppx@0.3.15",
            "mppx@0.3.14",
            "mppx@0.3.13",
            "mppx@0.3.12",
            "mppx@0.3.11",
            "mppx@0.3.9",
            "mppx@0.3.8",
            "mppx@0.3.7",
            "mppx@0.3.6",
            "mppx@0.3.5",
            "mppx@0.3.4",
            "mppx@0.3.3",
            "mppx@0.3.2",
            "mppx@0.3.1",
            "mppx@0.2.6",
            "mppx@0.2.5",
            "mppx@0.2.4",
            "mppx@0.2.3",
            "mppx@0.2.2",
            "mppx@0.2.1",
            "mppx@0.2.0",
            "mppx@0.1.1",
            "mppx@0.1.0",
            "mpay@0.2.4",
            "mpay@0.2.3",
            "mpay@0.2.2",
            "mpay@0.2.1",
            "mpay@0.2.0",
            "mpay@0.1.0"
          ],
          "database_specific": {
            "source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-63628.json"
          }
        }
      ],
      "modified": "2026-10-28T02:30:36.872295265Z",
      "provider": "osv",
      "references": [
        "https://github.com/wevm/mppx/releases/tag/mppx@0.8.2",
        "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/63xxx/CVE-2026-63628.json",
        "https://github.com/wevm/mppx/security/advisories/GHSA-vc9j-9wph-qghj",
        "https://nvd.nist.gov/vuln/detail/CVE-2026-63628",
        "https://github.com/wevm/mppx/commit/24ddcca719ae282977d8747309ed1275ea282b25",
        "https://github.com/wevm/mppx/pull/602"
      ],
      "provider_metadata": {
        "cwe_ids": [
          "CWE-20"
        ],
        "cna_assigner": "GitHub_M",
        "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/63xxx/CVE-2026-63628.json"
      }
    },
    "related_cves": [
      {
        "value": "CVE-2026-63628",
        "evidence": "/id"
      }
    ],
    "security_relevant": true,
    "severity_evidence": "/severity/0/score"
  },
  "source_id": "core-osv",
  "document_id": 504289,
  "published_at": "2026-09-22T19:09:38.414+00:00"
}