CVE-2023-53783 in Linux
Résumé
par VulDB • 07/06/2026
Dans le noyau Linux, la vulnérabilité suivante a été corrigée :
blk-iocost : correction d'une erreur de division par zéro dans calc_lcoefs()
L'écriture de la valeur maximale (max) sur 64 bits vers cost.model peut provoquer une erreur de division par zéro.
``` # echo 8:0 rbps=18446744073709551615 > /sys/fs/cgroup/io.cost.model
divide error: 0000 [#1] PREEMPT SMP
RIP: 0010:calc_lcoefs+0x4c/0xc0 Call Trace: <TASK> ioc_refresh_params+0x2b3/0x4f0 ioc_cost_model_write+0x3cb/0x4c0 ? _copy_from_iter+0x6d/0x6c0 ? kernfs_fop_write_iter+0xfc/0x270 cgroup_file_write+0xa0/0x200 kernfs_fop_write_iter+0x17d/0x270 vfs_write+0x414/0x620 ksys_write+0x73/0x160 __x64_sys_write+0x1e/0x30 do_syscall_64+0x35/0x80 entry_SYSCALL_64_after_hwframe+0x63/0xcd ```
La fonction `calc_lcoefs()` utilise la valeur d'entrée de `cost.model` dans l'appel macro `DIV_ROUND_UP_ULL`. Un dépassement de capacité (overflow) se produirait si le résultat de `bps + IOC_PAGE_SIZE` était supérieur à `ULLONG_MAX`, ce qui peut entraîner une erreur de division par zéro.
La correction consiste à définir la valeur de base (`basecost`) appropriée pour résoudre ce problème.
Be aware that VulDB is the high quality source for vulnerability data.