☠️
EXFILTRATING
DATA...
01010111 10110010 00101001 11000110 01101100 10011011 00010001 11100101 01000010 10101111
[ <-- BACK_TO_SEARCH ]

CVE-2025-54427

CVE-2025-54427 Denial of Service in Polkadot
📅 PUBLISHED: 2025-07-28 20:20 UTC 🔄 UPDATED: 2026-09-23 20:24 UTC
[ OFFICIAL PATCH DEPLOYED ↓ ] FIX: LIKELY — 2 independent sources confirm fix
[ DEFENSE PATCH ↓ ]
💣 PoC: None
👁️
Proof of Concept - Indicates if functional exploit code is publicly available, drastically increasing the risk of immediate attacks.
🎯 EPSS: 0.55%
👁️
0.55% probability
13.7× above the median CVE
Tier: ELEVATED
30-day exploitation window · FIRST.org · updated daily
Patch available — upgrade to latest release
CVSS SEVERITY SCALE
9.0–10.0 CRITICAL
7.0–8.9 HIGH
4.0–6.9 MEDIUM
0.1–3.9 LOW
0.0 NONE
6.9
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2025-54427 is a critical vulnerability in the Polkadot Frontier project, which provides an Ethereum and EVM compatibility layer for Polkadot and Substrate. The flaw resides in the note_min_gas_price_target extrinsic, an inherent call that only the block producer can invoke. Due to a missing check_inherent implementation, other validators cannot verify the correctness of the target value set by the block producer. This allows a malicious block producer to arbitrarily set the MinGasPrice target to its upper bound, which in turn raises the upper and lower bounds for subsequent blocks. Over time, this can lead to a continuous escalation of gas prices, making contract execution prohibitively expensive and effectively causing a denial-of-service (DoS) condition on the network. The vulnerability is patched in commit a754b3d.

⚡ AUTOMATE YOUR CVE INTELLIGENCE

This record — and 170,000+ others — are available via the ValtersIT API. One endpoint replaces five: NVD + GitHub CVE + CISA KEV + EPSS + Nuclei + Exploit-DB, unified.

›Patch confidence — UNVERIFIED to CONFIRMED, cross-referenced NVD + RHSA + Debian
›Exploit & PoC — poc_status, poc_url, has_exploit. Not in NVD.
›Shodan dorks — ready-made queries to find exposed vulnerable systems
›Detection rules — YARA · Wazuh · Elastic (all plans) · Sigma (Pro)
›pending_fields — know exactly which of 7 fields NVD hasn't processed yet
›Free backfill — data incomplete when you paid? Re-check within 30 days = 0 credits
PAYG €0.08/lookup Standard €19/mo (was €29) · 5k credits Pro €65/mo (was €99) · 20k credits FOUNDING PRICE · LOCKED FOR LIFE · ENDS 31 DEC 2026
[ FROM €19/MO ]
Free sandbox key available
No signup required

Supply Chain & Package Security

This vulnerability affects the Polkadot Frontier project, which is a critical component in the Polkadot ecosystem for Ethereum compatibility. While the project is not distributed via NPM, PyPI, Go, or Ruby, it is a core dependency for Substrate-based chains that support EVM. Organizations using Polkadot Frontier should ensure they are using a version that includes the fix (commit a754b3d or later). The lack of a check_inherent function represents a supply chain risk, as it undermines the trust model of the network by allowing a single block producer to manipulate gas prices without verification.

CVSS Breakdown & Threat Level

CVSS Score: 7.5 (High)

Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:H

  • Attack Vector (AV): Network – The vulnerability can be exploited remotely over the network.
  • Attack Complexity (AC): Low – No special conditions are required; the block producer simply needs to submit a malicious inherent extrinsic.
  • Privileges Required (PR): None – The attacker must be a block producer, but this is a role that can be obtained through normal network participation.
  • User Interaction (UI): None – No user action is required.
  • Scope (S): Unchanged – The impact is confined to the affected component.
  • Confidentiality (C): None – No data is exposed.
  • Integrity (I): Low – The gas price can be manipulated, but no data is corrupted.
  • Availability (A): High – The primary impact is denial of service, as contract execution becomes prohibitively expensive.

Threat Level: High. The vulnerability allows a block producer to gradually increase gas prices, leading to a DoS condition. While the attack requires being a block producer, this is a realistic threat in permissionless networks.

Deep Dive & Mechanics

The Polkadot Frontier project implements an Ethereum compatibility layer for Substrate-based chains. Inherent extrinsics are special transactions that are inserted by the block producer and are not gossiped across the network. The note_min_gas_price_target extrinsic is one such inherent, intended to allow the block producer to set a target for the minimum gas price.

The Substrate framework provides the ProvideInherent trait, which must be implemented for each inherent extrinsic. This trait includes two key functions:

  • inherent: Called by the block producer to create the inherent data.
  • check_inherent: Called by other validators to verify the correctness of the inherent data.

In the vulnerable version (prior to commit a754b3d), the check_inherent function was not implemented for note_min_gas_price_target. This means that when a block producer submits this extrinsic, other validators cannot verify that the target value is reasonable. The block producer can set the target to any value within the allowed range (defined by upper and lower bounds in the on_initialize hook).

The attack works as follows:

  1. The block producer sets the note_min_gas_price_target to the upper bound.
  2. The on_initialize hook uses this target to adjust the MinGasPrice for the current block, and also updates the upper and lower bounds for the next block.
  3. In the next block, the new upper bound is higher, allowing the block producer to set an even higher target.
  4. This cycle repeats, causing the gas price to increase exponentially over time.

The impact is a denial-of-service condition where contract execution becomes too expensive for users, effectively freezing the EVM functionality on the network.

Vulnerable vs. Patched Code

Vulnerable Code (before a754b3d):

The note_min_gas_price_target extrinsic is defined, but the check_inherent function is missing. This means the block producer can set the target without any validation.

// In the pallet implementation
#[pallet::call]
impl<T: Config> Pallet<T> {
    #[pallet::weight(0)]
    pub fn note_min_gas_price_target(
        origin: OriginFor<T>,
        target: T::GasPrice,
    ) -> DispatchResult {
        // Only block producer can call this
        ensure_inherent(origin)?;
        // No check_inherent is called
        Self::do_note_min_gas_price_target(target);
        Ok(())
    }
}

Patched Code (after a754b3d):

The check_inherent function is implemented to verify that the target value is within acceptable bounds.

// In the pallet implementation
impl<T: Config> ProvideInherent for Pallet<T> {
    fn check_inherent(
        call: &Self::Call,
        data: &InherentData,
    ) -> Result<(), Self::Error> {
        if let Call::note_min_gas_price_target { target } = call {
            // Validate that the target is within reasonable bounds
            let (min, max) = Self::get_gas_price_bounds();
            if *target < min || *target > max {
                return Err(InvalidGasPriceTarget.into());
            }
        }
        Ok(())
    }
}

Exploitation & Lab Setup

Red Team (Exploitation)

Prerequisites:

  • Access to a Polkadot Frontier node as a block producer.
  • Ability to submit inherent extrinsics.

Exploitation Steps:

  1. Identify the target network: Use Shodan or other reconnaissance to find Polkadot Frontier nodes.
  2. Become a block producer: This may require staking or other mechanisms depending on the network.
  3. Craft the malicious extrinsic: Set the note_min_gas_price_target to the maximum allowed value.
  4. Submit the extrinsic: As the block producer, include the extrinsic in the next block.
  5. Repeat: Continue submitting the extrinsic in subsequent blocks to escalate the gas price.

Example Code (Conceptual):

# This is a conceptual example; actual implementation depends on the Substrate API
from substrateinterface import SubstrateInterface

substrate = SubstrateInterface(url="ws://target-node:9944")

# Assume we have a keypair for the block producer
keypair = Keypair.create_from_uri("//Alice")

# Create the call
call = substrate.compose_call(
    call_module="Ethereum",
    call_function="note_min_gas_price_target",
    call_params={"target": 1000000000000000000}  # Set to upper bound
)

# Create the extrinsic
extrinsic = substrate.create_signed_extrinsic(call=call, keypair=keypair)

# Submit the extrinsic
receipt = substrate.submit_extrinsic(extrinsic, wait_for_inclusion=True)
print(f"Extrinsic submitted: {receipt}")

Blue Team (Detection & Defense)

Detection:

  • Monitor for unusual patterns in gas price changes over time.
  • Alert on rapid increases in MinGasPrice that exceed historical norms.
  • Use the YARA and Sigma rules provided in the Detection Engineering section.

Defense:

  • Apply the patch (commit a754b3d) immediately.
  • Implement additional monitoring for inherent extrinsics.
  • Consider adding rate limiting or anomaly detection for gas price changes.

Indicators of Compromise (IOCs)

  • On-chain:
    • Rapidly increasing MinGasPrice values across consecutive blocks.
    • Inherent extrinsics with note_min_gas_price_target set to unusually high values.
  • Network:
    • Nodes reporting high transaction fees for EVM contract calls.
    • Users unable to execute contracts due to excessive gas costs.
  • Logs:
    • Substrate logs showing note_min_gas_price_target calls with extreme values.

Detection Engineering

YARA Rule

rule Detect_Polkadot_Frontier_Gas_Price_Manipulation {
    meta:
        description = "Detects attempts to manipulate gas price via note_min_gas_price_target"
        author = "Valters IT"
        date = "2025-01-01"
        reference = "CVE-2025-54427"
    strings:
        $extrinsic = "note_min_gas_price_target" nocase
        $high_target = /target:\s*[0-9]{19,}/  // Very large target values
    condition:
        $extrinsic and $high_target
}

Sigma Rule

title: Polkadot Frontier Gas Price Manipulation
id: 12345678-1234-1234-1234-123456789012
status: experimental
description: Detects exploitation of CVE-2025-54427 by monitoring for abnormal gas price targets
author: Valters IT
date: 2025-01-01
logsource:
    product: substrate
    service: node
detection:
    selection:
        EventID: "system.ExtrinsicSuccess"
        CallModule: "Ethereum"
        CallFunction: "note_min_gas_price_target"
    condition: selection
falsepositives:
    - Legitimate gas price adjustments within normal bounds
level: high

Suricata Rule

alert tcp any any -> any 9944 (msg:"CVE-2025-54427 - Polkadot Frontier Gas Price Manipulation"; content:"note_min_gas_price_target"; nocase; content:"target"; distance:0; within:100; pcre:"/target:\s*[0-9]{19,}/"; sid:1000001; rev:1;)

Remediation & Mitigation

Immediate Actions:

  1. Apply the patch: Update to a version that includes commit a754b3d or later.
  2. Verify the fix: Ensure that the check_inherent function is implemented for note_min_gas_price_target.
  3. Monitor gas prices: Set up alerts for abnormal gas price changes.

Long-term Mitigations:

  • Code review: Conduct a thorough review of all inherent extrinsics to ensure check_inherent is implemented.
  • Network governance: Consider adding on-chain governance mechanisms to limit the impact of malicious block producers.
  • Testing: Implement fuzzing and property-based testing for inherent validation logic.

Workarounds (if patching is not immediately possible):

  • Disable the extrinsic: If possible, remove the note_min_gas_price_target call from the runtime.
  • Rate limiting: Implement off-chain monitoring to detect and alert on rapid gas price increases.

Valters IT
DevSecOps & Cyber Threat Intelligence Expert

◈ SOURCE Analysis & enrichment: valtersit.com/cve/CVE-2025-54427/ · CVE data: NVD/MITRE (public domain) · © 2026 ValtersIT Hub
>_ SYSTEM_CORE: INTEL_ACTIVE
90% TEAM-CURATED // 10% AUTOMATED INGESTION.
ALL PATCH REFERENCES AND VERSION DATA SOURCED FROM NVD + OSV OFFICIAL REGISTRIES.