GHSA-qpxh-ff8m-c62v

Suggest an improvement
Source
https://github.com/advisories/GHSA-qpxh-ff8m-c62v
Import Source
https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2026/09/GHSA-qpxh-ff8m-c62v/GHSA-qpxh-ff8m-c62v.json
JSON Data
https://api.test.osv.dev/v1/vulns/GHSA-qpxh-ff8m-c62v
Aliases
Published
2026-09-25T21:45:16Z
Modified
2026-09-25T23:00:39Z
Severity
  • 6.9 (Medium) CVSS_V4 - CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:L/VA:N/SC:N/SI:N/SA:N CVSS Calculator
Summary
mpp vulnerable to Gas Draining with access list
Details

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:

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 normal transaction fee. This dramatically increases operational costs and completely destroys the profit margin on low-cost items.

Database specific
{
    "cwe_ids": [
        "CWE-20"
    ],
    "github_reviewed": true,
    "github_reviewed_at": "2026-09-25T21:45:16Z",
    "nvd_published_at": null,
    "severity": "MODERATE"
}
References

Affected packages

Hex / mpp

Package

Name
mpp
Purl
pkg:hex/mpp

Affected ranges

Type
SEMVER
Events
Introduced
0.2.0
Fixed
0.6.0

Affected versions

0.*
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"