RUSTSEC-2026-0537

Source
https://rustsec.org/advisories/RUSTSEC-2026-0537
Import Source
https://github.com/rustsec/advisory-db/blob/osv/crates/RUSTSEC-2026-0537.json
JSON Data
https://api.osv.dev/v1/vulns/RUSTSEC-2026-0537
Aliases
Published
2026-03-27T12:00:00Z
Modified
2026-11-13T12:45:07Z
Summary
Remote panic in the heartbeat from a large PRUNE backoff
Details

The 0.49.3 fix stopped an overflow when a PRUNE backoff is first stored, but a backoff just small enough to be stored could still overflow later. On each heartbeat, expired backoffs were found with backoff_time + slack > now, which panics when the stored time is close to the largest Instant. A peer that sends one PRUNE with such a backoff crashes the node a heartbeat or so later, and can repeat it after every restart.

The fix caps a remote PRUNE backoff at one hour, uses checked_add for the heartbeat comparison, and replaces other unchecked time arithmetic in the behaviour, peer scoring and time cache with checked or saturating operations. It is in 0.49.4.

Database specific
{
    "license": "CC0-1.0"
}
References

Affected packages

crates.io / libp2p-gossipsub

Package

Name
libp2p-gossipsub
View open source insights on deps.dev
Purl
pkg:cargo/libp2p-gossipsub

Affected ranges

Type
SEMVER
Events
Introduced
0.0.0-0
Fixed
0.49.4

Ecosystem specific

{
    "affected_functions": null,
    "affects": {
        "arch": [],
        "functions": [],
        "os": []
    }
}

Database specific

categories
[
    "denial-of-service"
]
cvss
null
informational
null
source
"https://github.com/rustsec/advisory-db/blob/osv/crates/RUSTSEC-2026-0537.json"