
Análisis de impacto de CVE-2026-25541 para la infraestructura de Fuel (desbordamiento de enteros en la crate bytes)
| Campo | Valor |
|---|---|
| CVE | CVE-2026-25541 |
| Paquete | bytes crate (Rust) |
| Afectado | 1.2.1 ≤ versión < 1.11.1 |
| Gravedad | Crítica (CVSS 9.8) |
| Tipo | Desbordamiento de enteros → Escritura fuera de los límites |
| Parche | bytes >= 1.11.1 |
FuelLabs/fuel-block-committer utiliza bytes 1.9.0 (a través de Cargo.lock), que es vulnerable.
Hay una corrección disponible desde el 14 de abril de 2026 a través del PR #254, pero sigue sin fusionarse (68+ días).
BytesMut::reserve() tiene un desbordamiento de enteros en la ruta de reclamación única:
// bytes/src/bytes_mut.rs (v1.9.0)
if v_capacity >= new_cap + offset // ← unchecked addition: new_cap + offset can overflow
Cuando new_cap + offset se desborda alrededor de usize::MAX, la condición se cumple incorrectamente, estableciendo self.cap más allá de la asignación real. Las escrituras posteriores a través de spare_capacity_mut() producen escrituras de memoria fuera de los límites.
El servicio state committer del block committer procesa fragmentos de blobs de EigenDA utilizando búferes BytesMut:
packages/services/src/state_committer/service.rs
→ submit_fragments()
→ fragment accumulation uses BytesMut for blob assembly
Una respuesta EigenDA manipulada con tamaños de fragmento específicos puede desencadenar el desbordamiento en la ruta de reensamblado de blobs, lo que conduce a:
PoC mínimo que demuestra el desbordamiento:
use bytes::BytesMut;
fn main() {
let mut a = BytesMut::from(&b"hello world"[..]);
let mut b = a.split_off(5);
drop(a);
b.reserve(usize::MAX - 6); // overflow: new_cap + offset wraps
b.put_u8(b'h'); // OOB write
}
Para comprobar si tu despliegue está afectado, ejecuta el escáner automatizado:
▶ Ejecutar Escaneo Automatizado
Se conecta a tu GitHub para analizar Cargo.lock, configuraciones de despliegue, y exposición en tiempo de ejecución. Los resultados se publican como un Issue privado de GitHub.
El escáner comprueba:
bytescargo audit para confirmar que no hay otras dependencias vulnerables| Fecha | Evento |
|---|---|
| 2026-02-03 | CVE-2026-25541 publicado |
| 2026-02-03 | bytes 1.11.1 lanzado (corrección) |
| 2026-04-14 | Dependabot abre el PR #254 en fuel-block-committer |
Este análisis se realizó como parte de una investigación de seguridad independiente. No se intentó explotar ningún sistema de producción. Divulgación responsable a través de un Issue de GitHub.
Generado por CVE Impact Analyzer v2.1
| Archivo | Función | Riesgo |
|---|
services/src/state_committer/service.rs | submit_fragments | Desbordamiento del búfer de fragmentos |
services/src/block_bundler/bundler.rs | compresión de bundle | Desbordamiento del búfer de compresión |
adapters/fuel/src/client.rs | análisis de respuestas GraphQL | Desbordamiento del búfer de respuesta |
adapters/eth/src/websocket/ | manejo de tramas WebSocket | Desbordamiento del búfer de tramas |
| 2026-06-22 | 68 días sin parche — este análisis |