Skip to content
Heist/ feed
UnratedFix available

mpp vulnerable to Gas Draining with access list

Type: advisorySource: OSV1 source record

### Details When the server acts as the fee_payer, `mpp` Elixir 0.4.0 copies the client-supplied EIP-2930 access list verbatim into the cosigned fee-payer transaction. In `cosign_fee_payer`, the server re-signs the raw `base_fields` (index 5 of the 0x76 AASigned envelope) without inspecting the access list field, which is part of the signed payload. Access list gas is charged **intrinsically** — before any opcode executes — regardless of whether the listed addresses are ever touched. An attacker submits a valid `transferWithMemo` alongside fabricated address-only access list entries. The server validates calldata and amount but never inspects `access_list` length. It cosigns and broadcasts a transaction that costs the fee-payer wallet `N × 2,400` extra gas per request with no corresponding work performed on-chain. At the default of 137 entries and 100 Gwei `max_fee_per_gas`, this inflates the fee-payer cost from the normal ~51,287 gas to ~380,087 gas — a **7.4× multiplier** — while staying within Bandit's default 10,000-byte per-header-field limit (verified empirically). ### PoC The PoC is provided below. It is configured to reproduce the attack on Tempo Moderate testnet within a Docker environment. Download the PoC and run: ```bash unzip mpp_elixir_PoC.zip cd mpp_elixir docker build -t mpp-elixir-access-list . docker run --rm mpp-elixir-access-list ``` There are more details in `mpp_elixir/README.md` ### Impact A malicious client can force the server to pay ~**7.4x** the nor

Announced Group revision 1
Original source ↗

GHSA-qpxh-ff8m-c62v

Primary source · Revision 1

Imported from structured advisory data. Source references identify upstream records or fields; verify affected versions and your deployed configuration.

Security context

Source reference: osv:GHSA-qpxh-ff8m-c62v

mpp

Source reference: /affected/0/package/name

Affected versions
0.2.0

Source reference: /affected/0/versions

0.3.0

Source reference: /affected/0/versions

0.3.1

Source reference: /affected/0/versions

0.3.2

Source reference: /affected/0/versions

0.4.0

Source reference: /affected/0/versions

Fixed versions
0.6.0

Source reference: /affected/0/ranges

Prerequisites
Not stated in this record

Structured affected-version data

Original package identities and version rules from this source.

[
  {
    "ranges": [
      {
        "type": "SEMVER",
        "events": [
          {
            "introduced": "0.2.0"
          },
          {
            "fixed": "0.6.0"
          }
        ]
      }
    ],
    "package": {
      "name": "mpp",
      "purl": "pkg:hex/mpp",
      "ecosystem": "Hex"
    },
    "versions": [
      "0.2.0",
      "0.3.0",
      "0.3.1",
      "0.3.2",
      "0.4.0"
    ],
    "database_specific": {
      "source": "https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2026/09/GHSA-qpxh-ff8m-c62v/GHSA-qpxh-ff8m-c62v.json"
    }
  }
]
Related CVEs
CVE-2026-59694

Source reference: /aliases

Publisher severity

No explicit severity was provided.

Event
#18218 · Revision 1
Added to Heist Feed
Publisher date
Read the original announcement