Description
pympp is a Python SDK for the Machine Payments Protocol. Prior to version 0.9.1, when the server acts as the fee_payer, pympp validates calldata using eth_abi decoding, which is lenient about trailing bytes. The FeePayerPolicy caps gas_limit (≤ 2 M) and max_fee_per_gas (≤ 100 Gwei) but does not check calldata length. Tempo uses legacy calldata gas pricing: 16 gas per non-zero byte. Appending N bytes of 0x01 padding inflates actual gas used by N × 16 while keeping gas_limit and max_fee_per_gas within policy caps. The server cosigns and broadcasts the padded transaction, draining its fee-payer wallet. This issue has been patched in version 0.9.1.
Published: 2026-11-09
Score: 6.9 Medium
EPSS: n/a
KEV: No
Impact: Financial loss via gas overuse
Action: Patch
AI Analysis

Impact

pympp, a Python SDK for the Machine Payments Protocol, contains a flaw that allows developers to inflate gas usage by appending non‑zero padding bytes to calldata. The server, when configured to act as fee_payer, checks gas_limit and max_fee_per_gas but ignores calldata length. Because legacy gas pricing charges 16 gas per non‑zero byte, each added 0x01 byte increases the actual gas consumed while remaining within policy caps. The server signs and broadcasts the padded transaction, draining its fee‑payer wallet. The vulnerability is thus a financial loss that exploits the discrepancy between declared limits and real gas consumption.

Affected Systems

All installations of tempoxyz’s pympp library older than version 0.9.1 are vulnerable. Users who use these SDK versions and run a server configured as fee_payer are exposed to the risk of under‑charging for gas and draining the wallet that is meant to pay transaction fees.

Risk and Exploitability

The CVSS score is 6.9, indicating moderate severity. EPSS is not available, and the vulnerability is not listed in the CISA KEV catalog. The likely attack vector involves a malicious or compromised server that can instrument calldata padding before signing, or a client that deliberately sends padded calldata to a server set to run as fee_payer. Exploitation requires code‑level control over the server side of the SDK but does not need any privileged external network access. Once exploited, an attacker can recover monetary value equal to the over‑billed gas costs. The risk remains moderate to high for organizations running affected versions, with a clear mitigation path via patching.

Generated by OpenCVE AI on November 9, 2026 at 22:37 UTC.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Upgrade pympp to version 0.9.1 or later.
  • If upgrading is not possible, disable the fee_payer role or enforce stricter calldata length checks in server configuration.
  • Implement monitoring for abnormal gas usage to detect potential padding attacks.

Generated by OpenCVE AI on November 9, 2026 at 22:37 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Mon, 09 Nov 2026 21:15:00 +0000

Type Values Removed Values Added
Description pympp is a Python SDK for the Machine Payments Protocol. Prior to version 0.9.1, when the server acts as the fee_payer, pympp validates calldata using eth_abi decoding, which is lenient about trailing bytes. The FeePayerPolicy caps gas_limit (≤ 2 M) and max_fee_per_gas (≤ 100 Gwei) but does not check calldata length. Tempo uses legacy calldata gas pricing: 16 gas per non-zero byte. Appending N bytes of 0x01 padding inflates actual gas used by N × 16 while keeping gas_limit and max_fee_per_gas within policy caps. The server cosigns and broadcasts the padded transaction, draining its fee-payer wallet. This issue has been patched in version 0.9.1.
Title pympp: Gas Draining with padding
Weaknesses CWE-20
References
Metrics cvssV4_0

{'score': 6.9, 'vector': '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'}


Subscriptions

No data.

cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-11-09T20:59:55.768Z

Reserved: 2026-07-17T14:11:15.482Z

Link: CVE-2026-63634

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-11-09T22:18:53.803

Modified: 2026-11-09T22:18:53.803

Link: CVE-2026-63634

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-11-09T22:45:08Z

Weaknesses
  • CWE-20

    Improper Input Validation