FuelLabs / FuelLabs/data-systems

RUSTSEC-2025-0009: Some AES functions may panic when overflow checking is enabled.

Open
#429 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Rust
Stars
18
Forks
18
PR merge metrics
No merged PRs in 30d

Description

> Some AES functions may panic when overflow checking is enabled.

| Details | |
| ------------------- | ---------------------------------------------- |
| Package | `ring` |
| Version | `0.16.20` |
| URL | [https://github.com/briansmith/ring/blob/main/RELEASES.md#version-01712-2025-03-05](https://github.com/briansmith/ring/blob/main/RELEASES.md#version-01712-2025-03-05) |
| Date | 2025-03-06 |
| Patched versions | `>=0.17.12` |

`ring::aead::quic::HeaderProtectionKey::new_mask()` may panic when overflow
checking is enabled. In the QUIC protocol, an attacker can induce this panic by
sending a specially-crafted packet. Even unintentionally it is likely to occur
in 1 out of every 2**32 packets sent and/or received.

On 64-bit targets operations using `ring::aead::{AES_128_GCM, AES_256_GCM}` may
panic when overflow checking is enabled, when encrypting/decrypting approximately
68,719,476,700 bytes (about 64 gigabytes) of data in a single chunk. Protocols
like TLS and SSH are not affected by this because those protocols break large
amounts of data into small chunks. Similarly, most applications will not
attempt to encrypt/decrypt 64GB of data in one chunk.

Overflow checking is not enabled in release mode by default, but
`RUSTFLAGS="-C overflow-checks"` or `overflow-checks = true` in the Cargo.toml
profile can override this. Overflow checking is usually enabled by default in
debug mode.

See [advisory page](https://rustsec.org/advisories/RUSTSEC-2025-0009.html) for additional details.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.