Skip to content

PigeonFall 🐦

High
agouin published GHSA-q7m9-jcqg-g9pq Oct 26, 2023

Package

gomod github.com/cosmos/ibc-apps/middleware/packet-forward-middleware (Go)

Affected versions

v7.0.0

Patched versions

v7.0.1

Description

Summary

Chains utilizing ibc-go v7.x.x and packet-forward-middleware v7.0.0 are susceptible to a vulnerability that can lead to a chain halt.

This is the PigeonFall public security disclosure. Prior, Strangelove contacted all known impacted chains, and those have been subsequently patched. It is unlikely that this affects your chain.

Vulnerability Details

The transfer module in ibc-go v7 introduces additional escrow balance accounting and adds an invariant check surrounding the expected balance within the transfer keeper key/value store compared with the actual balance of the escrow account. This escrow balance accounting was not taken into account in the v7.0.0 release. As a result, forwarded packets that fail due to either a receive error on the destination or a packet timeout will halt the chain if the invariant is registered.

Recommended Actions

We recommend that you apply the following patch to your chain, create a patch release, and ask validators to upgrade their binaries as soon as possible:

go get github.com/cosmos/ibc-apps/middleware/packet-forward-middleware/[email protected] && go mod tidy

Note: This upgrade can be applied without halting the chain. Validators do not need to apply the patch at the same block height.

You may optionally schedule an on-chain upgrade to roll out this patch, but it is not required since your chain would be halted by the consensus-breaking change if any forward failures had already occurred. Taking prompt action to roll this patch out to the validators will avoid the need to perform migrations to recover from the exploit.

Additional Information

For additional details or inquiries, please contact us at [email protected].

Severity

High

CVE ID

No known CVE

Weaknesses

No CWEs