veilletech.fr
4 sept. Feed du jour
#02 RUST Article

Rust 1.98.1 corrige une vtable nulle

Un pointeur nul dans une vtable. On ne relit pas, on recompile.

Rust 1.98.1 corrige une miscompilation dans la génération des vtables : sous certaines conditions, rustc 1.98.0 plaçait un pointeur nul là où une adresse de fonction était attendue, produisant du comportement indéfini dans le binaire. L'annonce ne précise ni les conditions déclenchantes ni de CVE : tout ce qui a été compilé avec 1.98.0 est à recompiler.

1 min de lectureintermédiairevidéo 1:16
Partager
Sommaire3 sections
  1. Ce qui se passe
  2. Pourquoi ça compte
  3. À retenir

Ce qui se passe

Publiée le 3 septembre 2026, Rust 1.98.1 corrige une seule chose : une miscompilation dans la génération des vtables. Dans certaines circonstances, rustc 1.98.0 écrivait un pointeur nul là où l'adresse d'une fonction était attendue, dans la table de dispatch d'un objet de trait.

Le résultat est du comportement indéfini dans le code émis. Le cas favorable est un segfault au déréférencement ; l'équipe rappelle que le reste est ouvert, « comme il est d'usage pour l'UB ».

Pourquoi ça compte

Ni CVE, ni liste des conditions déclenchantes. Relire son code ne permet donc pas de conclure : seule la version du compilateur discrimine.

Terminal
rustup update stable   # 1.98.0 -> 1.98.1

À retenir

  1. 1.98.0 est la seule version concernée, 1.98.1 la corrige.
  2. Recompiler et republier tout artefact produit avec 1.98.0.
  3. L'équipe rappelle l'intérêt de faire tourner beta en CI : ce type de bug s'y attrape avant le stable.

Source : Rust Blog