Fiche CVE / 2025

CVE-2025-37858 : dépassement arithmétique des groupes d’allocation dans JFS

Un calcul de la taille des groupes d’allocation de JFS nécessitait un opérande 64 bits avant le décalage sur les architectures 32 bits.

Présentation

La CVE publique de Linux décrit un problème de largeur d’entier dans dbExtendFS(), dans fs/jfs/jfs_dmap.c. JFS calculait la taille d’un groupe d’allocation avec l’expression 1 << l2agsize. Un décalage important appliqué à l’opérande 32 bits pouvait provoquer un comportement indéfini et une taille de groupe invalide.

Le correctif convertit l’opérande gauche en s64 avant le décalage : (s64)1 << l2agsize. Le calcul s’effectue ainsi en arithmétique 64 bits, conformément au type dans lequel la taille du groupe est stockée. Convertir seulement le résultat laisserait l’opération fautive à sa largeur d’origine.

Une taille de groupe d’allocation invalide peut perturber les opérations ultérieures du système de fichiers. L’avis public évoque de possibles corruptions du système de fichiers et des plantages du noyau. Il renvoie aussi vers le correctif amont et les versions concernées ; les correctifs propres à chaque distribution doivent être vérifiés auprès de l’avis de l’éditeur du paquet.

Pour la revue de code, la leçon plus générale est d’examiner les types des opérations arithmétiques intermédiaires, en particulier les décalages et les calculs de taille. Une variable de destination plus large ne rend pas, à elle seule, une expression plus étroite sûre.

Points clés

Fiche CVE
2025
Source publique
Linux kernel · National Vulnerability Database
Code concerné
JFS filesystem · dbExtendFS() in fs/jfs/jfs_dmap.c
Thèmes
CVE-2025-37858 · JFS · Arithmétique entière · Types intermédiaires
Source primaire

Travaux associés

08Contact

Vous livrez un produit qui traite des données d’utilisateurs ?

Envoyez-moi un bref descriptif. Je réponds sous trois jours avec des questions ou une première proposition, et le prix est fixé par écrit avant le démarrage.