RUSTSEC-2026-0538: Receive loop can spin after a truncated datagram

Ouverte
#39 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

Évaluation

Difficulté
2/5
Temps estimé
Moins d'une heure
Accessibilité débutants
50/100
Type d'issue
Bug
Clarté
Plutôt claire
Activité
Active
Stack technique
rust
Domaine
security

Piste de recherche

The advisory concerns the quinn-udp crate pinned at 0.5.14 in this project's dependency graph. Start by finding its entry in the lockfile and checking whether it comes in directly or through another crate. Update it to a patched version (0.5.16 or later on the 0.5 line, or 0.6.3 or later on the 0.6 line), then build and run the test suite to confirm it resolves cleanly. Done when the lockfile shows a patched version and the build and tests pass.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Description

Receive loop can spin after a truncated datagram

Details
Package quinn-udp
Version 0.5.14
URL https://github.com/quinn-rs/quinn/commit/462865a6c33039c26076f7077c7cd7e2f997b9cd
Date 2026-09-30
Patched versions >=0.5.16, <0.6.0,>=0.6.3

Some targets read one datagram per recvmsg call instead of using recvmmsg: Apple platforms without the fast-apple-datapath feature, OpenBSD, NetBSD, Solaris and illumos, and from 0.6 also DragonFly BSD, Redox and GNU/Hurd. On these targets the receive loop set up its msghdr only once and looked at the MSG_TRUNC flag before checking whether recvmsg had failed. After a datagram larger than the receive buffer was dropped, a following EAGAIN still saw the old truncation flag. The loop then kept issuing non-blocking receives instead of returning WouldBlock.

When the receive buffer is smaller than a datagram that arrives, a remote sender can keep the task that drives the socket busy, before any QUIC packet authentication. The loop ends only when a later datagram fits in the buffer. Whether an application is exposed therefore depends on the receive buffer size it uses. Linux, Android, FreeBSD and Windows use other receive paths and are not affected.

The fix rebuilds the header before every recvmsg call and returns receive errors before checking the truncation flag. It is in 0.5.16 and 0.6.3.

See advisory page for additional details.

Langage dominant
Rust
Étoiles
0
Forks
2
Merge moyen
14 j 2 h
PR mergées (30 j)
1

Préparer son environnement

Ce projet ne fournit ni conteneur de développement, ni Dockerfile, ni guide de contribution : l'installation est à votre charge. Commencez par son README, et consultez notre guide de la première contribution pour les étapes générales.

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Autres issues de stackabletech/postgresql-trino-gateway

Toutes les issues de stackabletech/postgresql-trino-gateway

Issues similaires

Plus d'issues Rust

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.