Public mode

No access to your tenant or devices. Every item links to its source. What this means

Some sources, documents or advisories need attention: 275/275 feeds/APIs · 469/469 docs · 8/9 advisories · checked 09:28 UTC Customize Public modeDiscuss ChangeIntel on Discord

Poly1305 panics or computes a wrong tag on attacker-chosen messages of 64 bytes or more

Collected exploitation and prediction evidence

Risk source coverage

CISA KEV is observed exploitation evidence. FIRST EPSS is a dated prediction of exploitation in the next 30 days. Missing scores are unknown. This collector requests predictions only for explicit CVE aliases in the public NuGet archive; Microsoft release views retain their existing prediction scope.

No collected risk observation for these identifiers. This does not establish absence of exploitation or a zero probability.

osv · RUSTSEC-2026-0337

Published

`Poly1305` in `ic-cipher` absorbs messages of 64 bytes or more four blocks at a time, summing four products before one reduction. From 0.2.5 to 0.2.19 the reduction kept its carries in 32-bit integers, which four summed products can overflow when the message's bytes are large. This affects `Poly1305` and `ChaCha20Poly1305`, and everything built on them: the TLS and QUIC ChaCha20-Poly1305 suites in `ic-rustls`, HPKE with that cipher in `ic-hpke`, and the re-exports in `ic-mac` and `ironcrypto`. What happens depends on how the crate was compiled: - With overflow checks on (any debug build, or a release profile with `overflow-checks = true`) the multiplication panics, and under `panic = "abort"` the process ends. The tag is computed over the ciphertext before it is compared, so this happens before authentication and without the key: anyone who can deliver a ChaCha20-Poly1305 ciphertext to be opened can trigger it. - With overflow checks off (Cargo's default for release builds) the arithmetic wraps and the tag is computed wrong on the affected messages. Ordinary data does not reach the defect. A message of `0xff` bytes does: in one measurement against 0.2.19, 28 of 500 `ChaCha20Poly1305::open_detached` calls on 1,024 bytes of `0xff` under random keys and nonces panicked in a debug build. ChaCha20-Poly1305 derives a new Poly1305 key for every nonce, so each message is a fresh attempt. AES-GCM and AES-GCM-SIV are not affected, and neither are messages shorter than 64 bytes. The flaw was corrected in 0.2.20 by carrying in 64 bits. It was found by running Project Wycheproof's ChaCha20-Poly1305 test vectors against the library.

Source published
9 Oct 2026 12:00:00 UTC
Source modified
12 Oct 2026 18:15:01 UTC
Observed here
24 Oct 2026 13:19:54 UTC
Source terms
OSV · upstream source license applies

Original source record · Cite this exact observation · Complete original publisher JSON

This view projects the publisher's source fields for reading; the original JSON retains additional fields and CVE enrichment containers. Attribution: osv · OSV · upstream source license applies. Source text is retained; field grouping and change labels are provided by ChangeIntel.

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

ChangeIntel

An IT change radar: releases, security, known issues, retirements, documentation changes, and service status from public sources. Every item links to supporting evidence; dates and statuses can change after they are read.

Sources read 10 Nov 09:28 UTC · 275 of 275 readable · 273 fully read · documentation 469/469 current