CVE-2026-82750 (GCVE-0-2026-82750)

Vulnerability from cvelistv5 – Published: 2026-09-06 16:08 – Updated: 2026-09-08 18:25
VLAI
Title
Unbounded EIP-7702 authorization list in mpp Tempo fee-payer sponsorship inflates gas cost and sponsors account delegation
Summary
Improper Validation of Specified Quantity in Input in ZenHive mpp allows an unauthenticated remote client to inflate the fee-payer's gas cost per sponsored payment by a large multiplier and to have the sponsor pay for EIP-7702 account delegations of the client's choosing. When the server sponsors Tempo payments, MPP.Methods.Tempo.FeePayerPolicy.measure/3 in lib/mpp/methods/tempo/fee_payer_policy.ex bounds the gas fields, the fee budget, the validity window and the access list of the client-signed 0x76 envelope, but never reads its aa_authorization_list field. Every signed delegation in that list is charged as intrinsic gas before the payment call runs, so a client attaching delegations from throwaway authority keys makes the sponsor pay for them within the default gas_limit ceiling. At the reporter's default of seven entries the sponsored cost rises from about 46,575 gas to about 1,884,087 gas. Because each entry is applied as a persistent set-code delegation, a client can also upgrade its own accounts to delegated code at the sponsor's expense. This issue affects mpp: from 0.2.0 before 0.16.1.
SSVC
Exploitation: none Automatable: no Technical Impact: partial
CISA Coordinator · CISA-ADP (v2.0.3)
Decision recorded 2026-09-08 18:25 UTC
CWE
  • CWE-1284 - Improper Validation of Specified Quantity in Input
Assigner
Impacted products
Vendor Product Version CPE status
ZenHive mpp Affected: 0.2.0 , < 0.16.1 (semver)
    cpe:2.3:a:ZenHive:mpp:*:*:*:*:*:*:*:*
Create a notification for this product.
ZenHive mpp Affected: d29d54e507918db00a5b65d90136b73166c017d7 , < 0482572b47e1ffe1537ab80ab613d47b92833c2d (git)
    cpe:2.3:a:ZenHive:mpp:*:*:*:*:*:*:*:*
Create a notification for this product.
Show details on NVD website

{
  "containers": {
    "adp": [
      {
        "metrics": [
          {
            "other": {
              "content": {
                "id": "CVE-2026-82750",
                "options": [
                  {
                    "Exploitation": "none"
                  },
                  {
                    "Automatable": "no"
                  },
                  {
                    "Technical Impact": "partial"
                  }
                ],
                "role": "CISA Coordinator",
                "timestamp": "2026-09-08T18:25:27.116993Z",
                "version": "2.0.3"
              },
              "type": "ssvc"
            }
          }
        ],
        "providerMetadata": {
          "dateUpdated": "2026-09-08T18:25:42.388Z",
          "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
          "shortName": "CISA-ADP"
        },
        "title": "CISA ADP Vulnrichment"
      }
    ],
    "cna": {
      "affected": [
        {
          "collectionURL": "https://repo.hex.pm",
          "cpes": [
            "cpe:2.3:a:ZenHive:mpp:*:*:*:*:*:*:*:*"
          ],
          "defaultStatus": "unaffected",
          "modules": [
            "\u0027Elixir.MPP.Methods.Tempo.FeePayerPolicy\u0027",
            "\u0027Elixir.MPP.Methods.Tempo\u0027"
          ],
          "packageName": "mpp",
          "packageURL": "pkg:hex/mpp",
          "product": "mpp",
          "programFiles": [
            "lib/mpp/methods/tempo/fee_payer_policy.ex",
            "lib/mpp/methods/tempo.ex"
          ],
          "programRoutines": [
            {
              "name": "\u0027Elixir.MPP.Methods.Tempo.FeePayerPolicy\u0027:measure/3"
            },
            {
              "name": "\u0027Elixir.MPP.Methods.Tempo.FeePayerPolicy\u0027:validate/3"
            },
            {
              "name": "\u0027Elixir.MPP.Methods.Tempo\u0027:verify/2"
            }
          ],
          "repo": "https://github.com/ZenHive/mpp",
          "vendor": "ZenHive",
          "versions": [
            {
              "lessThan": "0.16.1",
              "status": "affected",
              "version": "0.2.0",
              "versionType": "semver"
            }
          ]
        },
        {
          "collectionURL": "https://github.com",
          "cpes": [
            "cpe:2.3:a:ZenHive:mpp:*:*:*:*:*:*:*:*"
          ],
          "defaultStatus": "unaffected",
          "modules": [
            "\u0027Elixir.MPP.Methods.Tempo.FeePayerPolicy\u0027",
            "\u0027Elixir.MPP.Methods.Tempo\u0027"
          ],
          "packageName": "zenhive/mpp",
          "packageURL": "pkg:github/zenhive/mpp",
          "product": "mpp",
          "programFiles": [
            "lib/mpp/methods/tempo/fee_payer_policy.ex",
            "lib/mpp/methods/tempo.ex"
          ],
          "programRoutines": [
            {
              "name": "\u0027Elixir.MPP.Methods.Tempo.FeePayerPolicy\u0027:measure/3"
            },
            {
              "name": "\u0027Elixir.MPP.Methods.Tempo.FeePayerPolicy\u0027:validate/3"
            },
            {
              "name": "\u0027Elixir.MPP.Methods.Tempo\u0027:verify/2"
            }
          ],
          "repo": "https://github.com/ZenHive/mpp",
          "vendor": "ZenHive",
          "versions": [
            {
              "lessThan": "0482572b47e1ffe1537ab80ab613d47b92833c2d",
              "status": "affected",
              "version": "d29d54e507918db00a5b65d90136b73166c017d7",
              "versionType": "git"
            }
          ]
        }
      ],
      "configurations": [
        {
          "lang": "en",
          "supportingMedia": [
            {
              "base64": false,
              "type": "text/html",
              "value": "\u003cp\u003eOnly deployments that enable Tempo server-side fee sponsorship are affected, through \u003ccode\u003e\"fee_payer\" =\u0026gt; true\u003c/code\u003e in \u003ccode\u003emethod_config\u003c/code\u003e with either local co-signing (\u003ccode\u003efee_payer_private_key\u003c/code\u003e) or hosted sponsorship (\u003ccode\u003efee_payer_url\u003c/code\u003e). Sponsorship is disabled by default.\u003c/p\u003e"
            },
            {
              "base64": false,
              "type": "text/markdown",
              "value": "Only deployments that enable Tempo server-side fee sponsorship are affected, through `\"fee_payer\" =\u003e true` in `method_config` with either local co-signing (`fee_payer_private_key`) or hosted sponsorship (`fee_payer_url`). Sponsorship is disabled by default."
            }
          ],
          "value": "Only deployments that enable Tempo server-side fee sponsorship are affected, through \"fee_payer\" =\u003e true in method_config with either local co-signing (fee_payer_private_key) or hosted sponsorship (fee_payer_url). Sponsorship is disabled by default."
        }
      ],
      "cpeApplicability": [
        {
          "nodes": [
            {
              "cpeMatch": [
                {
                  "criteria": "cpe:2.3:a:ZenHive:mpp:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "0.16.1",
                  "versionStartIncluding": "0.2.0",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ],
          "operator": "AND"
        }
      ],
      "credits": [
        {
          "lang": "en",
          "type": "finder",
          "value": "Kian Kai Ang"
        },
        {
          "lang": "en",
          "type": "reporter",
          "value": "Kian Kai Ang"
        },
        {
          "lang": "en",
          "type": "remediation developer",
          "value": "E.FU"
        },
        {
          "lang": "en",
          "type": "coordinator",
          "value": "Jonatan M\u00e4nnchen / EEF"
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "supportingMedia": [
            {
              "base64": false,
              "type": "text/html",
              "value": "\u003cp\u003eImproper Validation of Specified Quantity in Input in ZenHive mpp allows an unauthenticated remote client to inflate the fee-payer\u0027s gas cost per sponsored payment by a large multiplier and to have the sponsor pay for EIP-7702 account delegations of the client\u0027s choosing.\u003c/p\u003e\n\u003cp\u003eWhen the server sponsors Tempo payments, \u003ccode\u003eMPP.Methods.Tempo.FeePayerPolicy.measure/3\u003c/code\u003e in \u003ccode\u003elib/mpp/methods/tempo/fee_payer_policy.ex\u003c/code\u003e bounds the gas fields, the fee budget, the validity window and the access list of the client-signed \u003ccode\u003e0x76\u003c/code\u003e envelope, but never reads its \u003ccode\u003eaa_authorization_list\u003c/code\u003e field. Every signed delegation in that list is charged as intrinsic gas before the payment call runs, so a client attaching delegations from throwaway authority keys makes the sponsor pay for them within the default \u003ccode\u003egas_limit\u003c/code\u003e ceiling. At the reporter\u0027s default of seven entries the sponsored cost rises from about 46,575 gas to about 1,884,087 gas. Because each entry is applied as a persistent set-code delegation, a client can also upgrade its own accounts to delegated code at the sponsor\u0027s expense.\u003c/p\u003e\n\u003cp\u003eThis issue affects mpp: from 0.2.0 before 0.16.1.\u003c/p\u003e"
            },
            {
              "base64": false,
              "type": "text/markdown",
              "value": "Improper Validation of Specified Quantity in Input in ZenHive mpp allows an unauthenticated remote client to inflate the fee-payer\u0027s gas cost per sponsored payment by a large multiplier and to have the sponsor pay for EIP-7702 account delegations of the client\u0027s choosing.\n\nWhen the server sponsors Tempo payments, `MPP.Methods.Tempo.FeePayerPolicy.measure/3` in `lib/mpp/methods/tempo/fee_payer_policy.ex` bounds the gas fields, the fee budget, the validity window and the access list of the client-signed `0x76` envelope, but never reads its `aa_authorization_list` field. Every signed delegation in that list is charged as intrinsic gas before the payment call runs, so a client attaching delegations from throwaway authority keys makes the sponsor pay for them within the default `gas_limit` ceiling. At the reporter\u0027s default of seven entries the sponsored cost rises from about 46,575 gas to about 1,884,087 gas. Because each entry is applied as a persistent set-code delegation, a client can also upgrade its own accounts to delegated code at the sponsor\u0027s expense.\n\nThis issue affects mpp: from 0.2.0 before 0.16.1."
            }
          ],
          "value": "Improper Validation of Specified Quantity in Input in ZenHive mpp allows an unauthenticated remote client to inflate the fee-payer\u0027s gas cost per sponsored payment by a large multiplier and to have the sponsor pay for EIP-7702 account delegations of the client\u0027s choosing.\n\nWhen the server sponsors Tempo payments, MPP.Methods.Tempo.FeePayerPolicy.measure/3 in lib/mpp/methods/tempo/fee_payer_policy.ex bounds the gas fields, the fee budget, the validity window and the access list of the client-signed 0x76 envelope, but never reads its aa_authorization_list field. Every signed delegation in that list is charged as intrinsic gas before the payment call runs, so a client attaching delegations from throwaway authority keys makes the sponsor pay for them within the default gas_limit ceiling. At the reporter\u0027s default of seven entries the sponsored cost rises from about 46,575 gas to about 1,884,087 gas. Because each entry is applied as a persistent set-code delegation, a client can also upgrade its own accounts to delegated code at the sponsor\u0027s expense.\n\nThis issue affects mpp: from 0.2.0 before 0.16.1."
        }
      ],
      "impacts": [
        {
          "capecId": "CAPEC-130",
          "descriptions": [
            {
              "lang": "en",
              "value": "CAPEC-130 Excessive Allocation"
            }
          ]
        }
      ],
      "metrics": [
        {
          "cvssV4_0": {
            "Automatable": "NOT_DEFINED",
            "Recovery": "NOT_DEFINED",
            "Safety": "NOT_DEFINED",
            "attackComplexity": "LOW",
            "attackRequirements": "PRESENT",
            "attackVector": "NETWORK",
            "baseScore": 8.3,
            "baseSeverity": "HIGH",
            "privilegesRequired": "NONE",
            "providerUrgency": "NOT_DEFINED",
            "subAvailabilityImpact": "NONE",
            "subConfidentialityImpact": "NONE",
            "subIntegrityImpact": "NONE",
            "userInteraction": "NONE",
            "valueDensity": "NOT_DEFINED",
            "vectorString": "CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:H/VA:L/SC:N/SI:N/SA:N",
            "version": "4.0",
            "vulnAvailabilityImpact": "LOW",
            "vulnConfidentialityImpact": "NONE",
            "vulnIntegrityImpact": "HIGH",
            "vulnerabilityResponseEffort": "NOT_DEFINED"
          },
          "format": "CVSS",
          "scenarios": [
            {
              "lang": "en",
              "value": "GENERAL"
            }
          ]
        }
      ],
      "problemTypes": [
        {
          "descriptions": [
            {
              "cweId": "CWE-1284",
              "description": "CWE-1284 Improper Validation of Specified Quantity in Input",
              "lang": "en",
              "type": "CWE"
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-09-06T16:08:41.089Z",
        "orgId": "6b3ad84c-e1a6-4bf7-a703-f496b71e49db",
        "shortName": "EEF"
      },
      "references": [
        {
          "tags": [
            "vendor-advisory",
            "related"
          ],
          "url": "https://github.com/ZenHive/mpp/security/advisories/GHSA-5qrp-r24c-w6jr"
        },
        {
          "tags": [
            "related"
          ],
          "url": "https://cna.erlef.org/cves/CVE-2026-82750.html"
        },
        {
          "tags": [
            "related"
          ],
          "url": "https://osv.dev/vulnerability/EEF-CVE-2026-82750"
        },
        {
          "tags": [
            "patch"
          ],
          "url": "https://github.com/ZenHive/mpp/commit/0482572b47e1ffe1537ab80ab613d47b92833c2d"
        }
      ],
      "source": {
        "discovery": "EXTERNAL"
      },
      "title": "Unbounded EIP-7702 authorization list in mpp Tempo fee-payer sponsorship inflates gas cost and sponsors account delegation",
      "workarounds": [
        {
          "lang": "en",
          "supportingMedia": [
            {
              "base64": false,
              "type": "text/html",
              "value": "\u003cp\u003eDisable Tempo fee sponsorship by leaving \u003ccode\u003e\"fee_payer\"\u003c/code\u003e at its default of \u003ccode\u003efalse\u003c/code\u003e and setting no \u003ccode\u003efee_payer_url\u003c/code\u003e, so the client pays its own gas. Where sponsorship must stay enabled, lower the \u003ccode\u003emax_gas\u003c/code\u003e override in \u003ccode\u003efee_payer_policy\u003c/code\u003e to just above what a legitimate sponsored payment needs (a TIP-20 transfer is roughly 50,000 gas), so an envelope padded with delegations either fails the policy or runs out of gas at a bounded cost. This bounds the inflation without closing it.\u003c/p\u003e"
            },
            {
              "base64": false,
              "type": "text/markdown",
              "value": "Disable Tempo fee sponsorship by leaving `\"fee_payer\"` at its default of `false` and setting no `fee_payer_url`, so the client pays its own gas. Where sponsorship must stay enabled, lower the `max_gas` override in `fee_payer_policy` to just above what a legitimate sponsored payment needs (a TIP-20 transfer is roughly 50,000 gas), so an envelope padded with delegations either fails the policy or runs out of gas at a bounded cost. This bounds the inflation without closing it."
            }
          ],
          "value": "Disable Tempo fee sponsorship by leaving \"fee_payer\" at its default of false and setting no fee_payer_url, so the client pays its own gas. Where sponsorship must stay enabled, lower the max_gas override in fee_payer_policy to just above what a legitimate sponsored payment needs (a TIP-20 transfer is roughly 50,000 gas), so an envelope padded with delegations either fails the policy or runs out of gas at a bounded cost. This bounds the inflation without closing it."
        }
      ]
    }
  },
  "cveMetadata": {
    "assignerOrgId": "6b3ad84c-e1a6-4bf7-a703-f496b71e49db",
    "assignerShortName": "EEF",
    "cveId": "CVE-2026-82750",
    "datePublished": "2026-09-06T16:08:41.089Z",
    "dateReserved": "2026-08-31T01:00:09.774Z",
    "dateUpdated": "2026-09-08T18:25:42.388Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2",
  "vulnerability-lookup:meta": {
    "epss": {
      "cve": "CVE-2026-82750",
      "date": "2026-09-29",
      "epss": "0.00524",
      "percentile": "0.42163"
    },
    "nvd": {
      "cve": {
        "affected": [
          {
            "affectedData": [
              {
                "collectionURL": "https://repo.hex.pm",
                "cpes": [
                  "cpe:2.3:a:ZenHive:mpp:*:*:*:*:*:*:*:*"
                ],
                "defaultStatus": "unaffected",
                "modules": [
                  "\u0027Elixir.MPP.Methods.Tempo.FeePayerPolicy\u0027",
                  "\u0027Elixir.MPP.Methods.Tempo\u0027"
                ],
                "packageName": "mpp",
                "packageURL": "pkg:hex/mpp",
                "product": "mpp",
                "programFiles": [
                  "lib/mpp/methods/tempo/fee_payer_policy.ex",
                  "lib/mpp/methods/tempo.ex"
                ],
                "programRoutines": [
                  {
                    "name": "\u0027Elixir.MPP.Methods.Tempo.FeePayerPolicy\u0027:measure/3"
                  },
                  {
                    "name": "\u0027Elixir.MPP.Methods.Tempo.FeePayerPolicy\u0027:validate/3"
                  },
                  {
                    "name": "\u0027Elixir.MPP.Methods.Tempo\u0027:verify/2"
                  }
                ],
                "repo": "https://github.com/ZenHive/mpp",
                "vendor": "ZenHive",
                "versions": [
                  {
                    "lessThan": "0.16.1",
                    "status": "affected",
                    "version": "0.2.0",
                    "versionType": "semver"
                  }
                ]
              },
              {
                "collectionURL": "https://github.com",
                "cpes": [
                  "cpe:2.3:a:ZenHive:mpp:*:*:*:*:*:*:*:*"
                ],
                "defaultStatus": "unaffected",
                "modules": [
                  "\u0027Elixir.MPP.Methods.Tempo.FeePayerPolicy\u0027",
                  "\u0027Elixir.MPP.Methods.Tempo\u0027"
                ],
                "packageName": "zenhive/mpp",
                "packageURL": "pkg:github/zenhive/mpp",
                "product": "mpp",
                "programFiles": [
                  "lib/mpp/methods/tempo/fee_payer_policy.ex",
                  "lib/mpp/methods/tempo.ex"
                ],
                "programRoutines": [
                  {
                    "name": "\u0027Elixir.MPP.Methods.Tempo.FeePayerPolicy\u0027:measure/3"
                  },
                  {
                    "name": "\u0027Elixir.MPP.Methods.Tempo.FeePayerPolicy\u0027:validate/3"
                  },
                  {
                    "name": "\u0027Elixir.MPP.Methods.Tempo\u0027:verify/2"
                  }
                ],
                "repo": "https://github.com/ZenHive/mpp",
                "vendor": "ZenHive",
                "versions": [
                  {
                    "lessThan": "0482572b47e1ffe1537ab80ab613d47b92833c2d",
                    "status": "affected",
                    "version": "d29d54e507918db00a5b65d90136b73166c017d7",
                    "versionType": "git"
                  }
                ]
              }
            ],
            "source": "6b3ad84c-e1a6-4bf7-a703-f496b71e49db"
          }
        ],
        "cveTags": [],
        "descriptions": [
          {
            "lang": "en",
            "value": "Improper Validation of Specified Quantity in Input in ZenHive mpp allows an unauthenticated remote client to inflate the fee-payer\u0027s gas cost per sponsored payment by a large multiplier and to have the sponsor pay for EIP-7702 account delegations of the client\u0027s choosing.\n\nWhen the server sponsors Tempo payments, MPP.Methods.Tempo.FeePayerPolicy.measure/3 in lib/mpp/methods/tempo/fee_payer_policy.ex bounds the gas fields, the fee budget, the validity window and the access list of the client-signed 0x76 envelope, but never reads its aa_authorization_list field. Every signed delegation in that list is charged as intrinsic gas before the payment call runs, so a client attaching delegations from throwaway authority keys makes the sponsor pay for them within the default gas_limit ceiling. At the reporter\u0027s default of seven entries the sponsored cost rises from about 46,575 gas to about 1,884,087 gas. Because each entry is applied as a persistent set-code delegation, a client can also upgrade its own accounts to delegated code at the sponsor\u0027s expense.\n\nThis issue affects mpp: from 0.2.0 before 0.16.1."
          }
        ],
        "id": "CVE-2026-82750",
        "lastModified": "2026-09-08T19:20:01.200",
        "metrics": {
          "cvssMetricV40": [
            {
              "cvssData": {
                "Automatable": "NOT_DEFINED",
                "Recovery": "NOT_DEFINED",
                "Safety": "NOT_DEFINED",
                "attackComplexity": "LOW",
                "attackRequirements": "PRESENT",
                "attackVector": "NETWORK",
                "availabilityRequirement": "NOT_DEFINED",
                "baseScore": 8.3,
                "baseSeverity": "HIGH",
                "confidentialityRequirement": "NOT_DEFINED",
                "exploitMaturity": "NOT_DEFINED",
                "integrityRequirement": "NOT_DEFINED",
                "modifiedAttackComplexity": "NOT_DEFINED",
                "modifiedAttackRequirements": "NOT_DEFINED",
                "modifiedAttackVector": "NOT_DEFINED",
                "modifiedPrivilegesRequired": "NOT_DEFINED",
                "modifiedSubAvailabilityImpact": "NOT_DEFINED",
                "modifiedSubConfidentialityImpact": "NOT_DEFINED",
                "modifiedSubIntegrityImpact": "NOT_DEFINED",
                "modifiedUserInteraction": "NOT_DEFINED",
                "modifiedVulnAvailabilityImpact": "NOT_DEFINED",
                "modifiedVulnConfidentialityImpact": "NOT_DEFINED",
                "modifiedVulnIntegrityImpact": "NOT_DEFINED",
                "privilegesRequired": "NONE",
                "providerUrgency": "NOT_DEFINED",
                "subAvailabilityImpact": "NONE",
                "subConfidentialityImpact": "NONE",
                "subIntegrityImpact": "NONE",
                "userInteraction": "NONE",
                "valueDensity": "NOT_DEFINED",
                "vectorString": "CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:H/VA:L/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X",
                "version": "4.0",
                "vulnAvailabilityImpact": "LOW",
                "vulnConfidentialityImpact": "NONE",
                "vulnIntegrityImpact": "HIGH",
                "vulnerabilityResponseEffort": "NOT_DEFINED"
              },
              "source": "6b3ad84c-e1a6-4bf7-a703-f496b71e49db",
              "type": "Secondary"
            }
          ],
          "ssvcV203": [
            {
              "source": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
              "ssvcData": {
                "id": "CVE-2026-82750",
                "options": [
                  {
                    "exploitation": "none"
                  },
                  {
                    "automatable": "no"
                  },
                  {
                    "technicalImpact": "partial"
                  }
                ],
                "role": "CISA Coordinator",
                "timestamp": "2026-09-08T18:25:27.116993Z",
                "version": "2.0.3"
              }
            }
          ]
        },
        "published": "2026-09-06T17:17:55.867",
        "references": [
          {
            "source": "6b3ad84c-e1a6-4bf7-a703-f496b71e49db",
            "url": "https://cna.erlef.org/cves/CVE-2026-82750.html"
          },
          {
            "source": "6b3ad84c-e1a6-4bf7-a703-f496b71e49db",
            "url": "https://github.com/ZenHive/mpp/commit/0482572b47e1ffe1537ab80ab613d47b92833c2d"
          },
          {
            "source": "6b3ad84c-e1a6-4bf7-a703-f496b71e49db",
            "url": "https://github.com/ZenHive/mpp/security/advisories/GHSA-5qrp-r24c-w6jr"
          },
          {
            "source": "6b3ad84c-e1a6-4bf7-a703-f496b71e49db",
            "url": "https://osv.dev/vulnerability/EEF-CVE-2026-82750"
          }
        ],
        "sourceIdentifier": "6b3ad84c-e1a6-4bf7-a703-f496b71e49db",
        "vulnStatus": "Deferred",
        "weaknesses": [
          {
            "description": [
              {
                "lang": "en",
                "value": "CWE-1284"
              }
            ],
            "source": "6b3ad84c-e1a6-4bf7-a703-f496b71e49db",
            "type": "Secondary"
          }
        ]
      }
    },
    "vulnrichment": {
      "containers": {
        "adp": [
          {
            "metrics": [
              {
                "other": {
                  "content": {
                    "id": "CVE-2026-82750",
                    "options": [
                      {
                        "Exploitation": "none"
                      },
                      {
                        "Automatable": "no"
                      },
                      {
                        "Technical Impact": "partial"
                      }
                    ],
                    "role": "CISA Coordinator",
                    "timestamp": "2026-09-08T18:25:27.116993Z",
                    "version": "2.0.3"
                  },
                  "type": "ssvc"
                }
              }
            ],
            "providerMetadata": {
              "dateUpdated": "2026-09-08T18:25:34.241Z",
              "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
              "shortName": "CISA-ADP"
            },
            "title": "CISA ADP Vulnrichment"
          }
        ],
        "cna": {
          "affected": [
            {
              "collectionURL": "https://repo.hex.pm",
              "cpes": [
                "cpe:2.3:a:ZenHive:mpp:*:*:*:*:*:*:*:*"
              ],
              "defaultStatus": "unaffected",
              "modules": [
                "\u0027Elixir.MPP.Methods.Tempo.FeePayerPolicy\u0027",
                "\u0027Elixir.MPP.Methods.Tempo\u0027"
              ],
              "packageName": "mpp",
              "packageURL": "pkg:hex/mpp",
              "product": "mpp",
              "programFiles": [
                "lib/mpp/methods/tempo/fee_payer_policy.ex",
                "lib/mpp/methods/tempo.ex"
              ],
              "programRoutines": [
                {
                  "name": "\u0027Elixir.MPP.Methods.Tempo.FeePayerPolicy\u0027:measure/3"
                },
                {
                  "name": "\u0027Elixir.MPP.Methods.Tempo.FeePayerPolicy\u0027:validate/3"
                },
                {
                  "name": "\u0027Elixir.MPP.Methods.Tempo\u0027:verify/2"
                }
              ],
              "repo": "https://github.com/ZenHive/mpp",
              "vendor": "ZenHive",
              "versions": [
                {
                  "lessThan": "0.16.1",
                  "status": "affected",
                  "version": "0.2.0",
                  "versionType": "semver"
                }
              ]
            },
            {
              "collectionURL": "https://github.com",
              "cpes": [
                "cpe:2.3:a:ZenHive:mpp:*:*:*:*:*:*:*:*"
              ],
              "defaultStatus": "unaffected",
              "modules": [
                "\u0027Elixir.MPP.Methods.Tempo.FeePayerPolicy\u0027",
                "\u0027Elixir.MPP.Methods.Tempo\u0027"
              ],
              "packageName": "zenhive/mpp",
              "packageURL": "pkg:github/zenhive/mpp",
              "product": "mpp",
              "programFiles": [
                "lib/mpp/methods/tempo/fee_payer_policy.ex",
                "lib/mpp/methods/tempo.ex"
              ],
              "programRoutines": [
                {
                  "name": "\u0027Elixir.MPP.Methods.Tempo.FeePayerPolicy\u0027:measure/3"
                },
                {
                  "name": "\u0027Elixir.MPP.Methods.Tempo.FeePayerPolicy\u0027:validate/3"
                },
                {
                  "name": "\u0027Elixir.MPP.Methods.Tempo\u0027:verify/2"
                }
              ],
              "repo": "https://github.com/ZenHive/mpp",
              "vendor": "ZenHive",
              "versions": [
                {
                  "lessThan": "0482572b47e1ffe1537ab80ab613d47b92833c2d",
                  "status": "affected",
                  "version": "d29d54e507918db00a5b65d90136b73166c017d7",
                  "versionType": "git"
                }
              ]
            }
          ],
          "configurations": [
            {
              "lang": "en",
              "supportingMedia": [
                {
                  "base64": false,
                  "type": "text/html",
                  "value": "\u003cp\u003eOnly deployments that enable Tempo server-side fee sponsorship are affected, through \u003ccode\u003e\"fee_payer\" =\u0026gt; true\u003c/code\u003e in \u003ccode\u003emethod_config\u003c/code\u003e with either local co-signing (\u003ccode\u003efee_payer_private_key\u003c/code\u003e) or hosted sponsorship (\u003ccode\u003efee_payer_url\u003c/code\u003e). Sponsorship is disabled by default.\u003c/p\u003e"
                },
                {
                  "base64": false,
                  "type": "text/markdown",
                  "value": "Only deployments that enable Tempo server-side fee sponsorship are affected, through `\"fee_payer\" =\u003e true` in `method_config` with either local co-signing (`fee_payer_private_key`) or hosted sponsorship (`fee_payer_url`). Sponsorship is disabled by default."
                }
              ],
              "value": "Only deployments that enable Tempo server-side fee sponsorship are affected, through \"fee_payer\" =\u003e true in method_config with either local co-signing (fee_payer_private_key) or hosted sponsorship (fee_payer_url). Sponsorship is disabled by default."
            }
          ],
          "cpeApplicability": [
            {
              "nodes": [
                {
                  "cpeMatch": [
                    {
                      "criteria": "cpe:2.3:a:ZenHive:mpp:*:*:*:*:*:*:*:*",
                      "versionEndExcluding": "0.16.1",
                      "versionStartIncluding": "0.2.0",
                      "vulnerable": true
                    }
                  ],
                  "negate": false,
                  "operator": "OR"
                }
              ],
              "operator": "AND"
            }
          ],
          "credits": [
            {
              "lang": "en",
              "type": "finder",
              "value": "Kian Kai Ang"
            },
            {
              "lang": "en",
              "type": "reporter",
              "value": "Kian Kai Ang"
            },
            {
              "lang": "en",
              "type": "remediation developer",
              "value": "E.FU"
            },
            {
              "lang": "en",
              "type": "coordinator",
              "value": "Jonatan M\u00e4nnchen / EEF"
            }
          ],
          "descriptions": [
            {
              "lang": "en",
              "supportingMedia": [
                {
                  "base64": false,
                  "type": "text/html",
                  "value": "\u003cp\u003eImproper Validation of Specified Quantity in Input in ZenHive mpp allows an unauthenticated remote client to inflate the fee-payer\u0027s gas cost per sponsored payment by a large multiplier and to have the sponsor pay for EIP-7702 account delegations of the client\u0027s choosing.\u003c/p\u003e\n\u003cp\u003eWhen the server sponsors Tempo payments, \u003ccode\u003eMPP.Methods.Tempo.FeePayerPolicy.measure/3\u003c/code\u003e in \u003ccode\u003elib/mpp/methods/tempo/fee_payer_policy.ex\u003c/code\u003e bounds the gas fields, the fee budget, the validity window and the access list of the client-signed \u003ccode\u003e0x76\u003c/code\u003e envelope, but never reads its \u003ccode\u003eaa_authorization_list\u003c/code\u003e field. Every signed delegation in that list is charged as intrinsic gas before the payment call runs, so a client attaching delegations from throwaway authority keys makes the sponsor pay for them within the default \u003ccode\u003egas_limit\u003c/code\u003e ceiling. At the reporter\u0027s default of seven entries the sponsored cost rises from about 46,575 gas to about 1,884,087 gas. Because each entry is applied as a persistent set-code delegation, a client can also upgrade its own accounts to delegated code at the sponsor\u0027s expense.\u003c/p\u003e\n\u003cp\u003eThis issue affects mpp: from 0.2.0 before 0.16.1.\u003c/p\u003e"
                },
                {
                  "base64": false,
                  "type": "text/markdown",
                  "value": "Improper Validation of Specified Quantity in Input in ZenHive mpp allows an unauthenticated remote client to inflate the fee-payer\u0027s gas cost per sponsored payment by a large multiplier and to have the sponsor pay for EIP-7702 account delegations of the client\u0027s choosing.\n\nWhen the server sponsors Tempo payments, `MPP.Methods.Tempo.FeePayerPolicy.measure/3` in `lib/mpp/methods/tempo/fee_payer_policy.ex` bounds the gas fields, the fee budget, the validity window and the access list of the client-signed `0x76` envelope, but never reads its `aa_authorization_list` field. Every signed delegation in that list is charged as intrinsic gas before the payment call runs, so a client attaching delegations from throwaway authority keys makes the sponsor pay for them within the default `gas_limit` ceiling. At the reporter\u0027s default of seven entries the sponsored cost rises from about 46,575 gas to about 1,884,087 gas. Because each entry is applied as a persistent set-code delegation, a client can also upgrade its own accounts to delegated code at the sponsor\u0027s expense.\n\nThis issue affects mpp: from 0.2.0 before 0.16.1."
                }
              ],
              "value": "Improper Validation of Specified Quantity in Input in ZenHive mpp allows an unauthenticated remote client to inflate the fee-payer\u0027s gas cost per sponsored payment by a large multiplier and to have the sponsor pay for EIP-7702 account delegations of the client\u0027s choosing.\n\nWhen the server sponsors Tempo payments, MPP.Methods.Tempo.FeePayerPolicy.measure/3 in lib/mpp/methods/tempo/fee_payer_policy.ex bounds the gas fields, the fee budget, the validity window and the access list of the client-signed 0x76 envelope, but never reads its aa_authorization_list field. Every signed delegation in that list is charged as intrinsic gas before the payment call runs, so a client attaching delegations from throwaway authority keys makes the sponsor pay for them within the default gas_limit ceiling. At the reporter\u0027s default of seven entries the sponsored cost rises from about 46,575 gas to about 1,884,087 gas. Because each entry is applied as a persistent set-code delegation, a client can also upgrade its own accounts to delegated code at the sponsor\u0027s expense.\n\nThis issue affects mpp: from 0.2.0 before 0.16.1."
            }
          ],
          "impacts": [
            {
              "capecId": "CAPEC-130",
              "descriptions": [
                {
                  "lang": "en",
                  "value": "CAPEC-130 Excessive Allocation"
                }
              ]
            }
          ],
          "metrics": [
            {
              "cvssV4_0": {
                "Automatable": "NOT_DEFINED",
                "Recovery": "NOT_DEFINED",
                "Safety": "NOT_DEFINED",
                "attackComplexity": "LOW",
                "attackRequirements": "PRESENT",
                "attackVector": "NETWORK",
                "baseScore": 8.3,
                "baseSeverity": "HIGH",
                "privilegesRequired": "NONE",
                "providerUrgency": "NOT_DEFINED",
                "subAvailabilityImpact": "NONE",
                "subConfidentialityImpact": "NONE",
                "subIntegrityImpact": "NONE",
                "userInteraction": "NONE",
                "valueDensity": "NOT_DEFINED",
                "vectorString": "CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:H/VA:L/SC:N/SI:N/SA:N",
                "version": "4.0",
                "vulnAvailabilityImpact": "LOW",
                "vulnConfidentialityImpact": "NONE",
                "vulnIntegrityImpact": "HIGH",
                "vulnerabilityResponseEffort": "NOT_DEFINED"
              },
              "format": "CVSS",
              "scenarios": [
                {
                  "lang": "en",
                  "value": "GENERAL"
                }
              ]
            }
          ],
          "problemTypes": [
            {
              "descriptions": [
                {
                  "cweId": "CWE-1284",
                  "description": "CWE-1284 Improper Validation of Specified Quantity in Input",
                  "lang": "en",
                  "type": "CWE"
                }
              ]
            }
          ],
          "providerMetadata": {
            "dateUpdated": "2026-09-06T16:08:41.089Z",
            "orgId": "6b3ad84c-e1a6-4bf7-a703-f496b71e49db",
            "shortName": "EEF"
          },
          "references": [
            {
              "tags": [
                "vendor-advisory",
                "related"
              ],
              "url": "https://github.com/ZenHive/mpp/security/advisories/GHSA-5qrp-r24c-w6jr"
            },
            {
              "tags": [
                "related"
              ],
              "url": "https://cna.erlef.org/cves/CVE-2026-82750.html"
            },
            {
              "tags": [
                "related"
              ],
              "url": "https://osv.dev/vulnerability/EEF-CVE-2026-82750"
            },
            {
              "tags": [
                "patch"
              ],
              "url": "https://github.com/ZenHive/mpp/commit/0482572b47e1ffe1537ab80ab613d47b92833c2d"
            }
          ],
          "source": {
            "discovery": "EXTERNAL"
          },
          "title": "Unbounded EIP-7702 authorization list in mpp Tempo fee-payer sponsorship inflates gas cost and sponsors account delegation",
          "workarounds": [
            {
              "lang": "en",
              "supportingMedia": [
                {
                  "base64": false,
                  "type": "text/html",
                  "value": "\u003cp\u003eDisable Tempo fee sponsorship by leaving \u003ccode\u003e\"fee_payer\"\u003c/code\u003e at its default of \u003ccode\u003efalse\u003c/code\u003e and setting no \u003ccode\u003efee_payer_url\u003c/code\u003e, so the client pays its own gas. Where sponsorship must stay enabled, lower the \u003ccode\u003emax_gas\u003c/code\u003e override in \u003ccode\u003efee_payer_policy\u003c/code\u003e to just above what a legitimate sponsored payment needs (a TIP-20 transfer is roughly 50,000 gas), so an envelope padded with delegations either fails the policy or runs out of gas at a bounded cost. This bounds the inflation without closing it.\u003c/p\u003e"
                },
                {
                  "base64": false,
                  "type": "text/markdown",
                  "value": "Disable Tempo fee sponsorship by leaving `\"fee_payer\"` at its default of `false` and setting no `fee_payer_url`, so the client pays its own gas. Where sponsorship must stay enabled, lower the `max_gas` override in `fee_payer_policy` to just above what a legitimate sponsored payment needs (a TIP-20 transfer is roughly 50,000 gas), so an envelope padded with delegations either fails the policy or runs out of gas at a bounded cost. This bounds the inflation without closing it."
                }
              ],
              "value": "Disable Tempo fee sponsorship by leaving \"fee_payer\" at its default of false and setting no fee_payer_url, so the client pays its own gas. Where sponsorship must stay enabled, lower the max_gas override in fee_payer_policy to just above what a legitimate sponsored payment needs (a TIP-20 transfer is roughly 50,000 gas), so an envelope padded with delegations either fails the policy or runs out of gas at a bounded cost. This bounds the inflation without closing it."
            }
          ]
        }
      },
      "cveMetadata": {
        "assignerOrgId": "6b3ad84c-e1a6-4bf7-a703-f496b71e49db",
        "assignerShortName": "EEF",
        "cveId": "CVE-2026-82750",
        "datePublished": "2026-09-06T16:08:41.089Z",
        "dateReserved": "2026-08-31T01:00:09.774Z",
        "dateUpdated": "2026-09-08T18:25:42.388Z",
        "state": "PUBLISHED"
      },
      "dataType": "CVE_RECORD",
      "dataVersion": "5.2"
    }
  }
}



Log in or create an account to share your comment.




Tags
Taxonomy of the tags.


Loading…

Loading…

Loading…

Forecast uses a logistic model when the trend is rising, or an exponential decay model when the trend is falling. Fitted via linearized least squares.

Sightings

Author Source Type Date Other

Nomenclature

  • Seen: The vulnerability was mentioned, discussed, or observed by the user.
  • Confirmed: The vulnerability has been validated from an analyst's perspective.
  • Published Proof of Concept: A public proof of concept is available for this vulnerability.
  • Exploited: The vulnerability was observed as exploited by the user who reported the sighting.
  • Patched: The vulnerability was observed as successfully patched by the user who reported the sighting.
  • Not exploited: The vulnerability was not observed as exploited by the user who reported the sighting.
  • Not confirmed: The user expressed doubt about the validity of the vulnerability.
  • Not patched: The vulnerability was not observed as successfully patched by the user who reported the sighting.

Loading…

Loading…

Loading…

Related by attack behaviour

Vulnerabilities whose description is nearest to this one in the vector space of the CIRCL/vulnerability-attack-technique-biencoder model. This is a similarity search over the bi-encoder space (plain cosine), not a classification, and it has no measured accuracy.


Loading…