CVE-2023-53749 in Linuxinformation

Résumé

par VulDB • 20/08/2026

Dans le noyau Linux, la vulnérabilité suivante a été corrigée :

x86 : correction de l’annotation de gestion des exceptions dans clear_user_rep_good()

Ce code n’existe plus en amont (mainline), car il a été supprimé lors du commit d2c95f9d6802 (« x86: don't use REP_GOOD or ERMS for user memory clearing »).

Cependant, plutôt que de rétroporter l’ensemble des nettoyages liés à la copie et au vidage (clearing) de mémoire sur l’architecture x86, nous corrigeons uniquement le placement de l’annotation du tableau d’exceptions pour la dernière instruction « rep movsb » dans clear_user_rep_good() : au lieu de pointer vers l’instruction réelle effectuant l’accès en espace utilisateur, elle pointait vers le déplacement de registre juste avant.

Cela semblait logique d’un point de vue du flux de code, mais pas d’un point de vue fonctionnel réel : cela signifie qu’en cas d’exception lors d’un accès utilisateur, le gestionnaire d’exceptions ne trouvera pas l’instruction dans les tableaux d’exceptions.

Par conséquent, au lieu de corriger la situation et de retourner -EFAULT, il génère à la place un rapport d’erreur noyau (kernel oops), semblable à :

BUG: unable to handle page fault for address: 0000000020081000 #PF: supervisor write access in kernel mode #PF: error_code(0x0002) - not-present page ... RIP: 0010:clear_user_rep_good+0x1c/0x30 arch/x86/lib/clear_page_64.S:147 ... Call Trace: __clear_user arch/x86/include/asm/uaccess_64.h:103 [inline]
clear_user arch/x86/include/asm/uaccess_64.h:124 [inline]
iov_iter_zero+0x709/0x1290 lib/iov_iter.c:800 iomap_dio_hole_iter fs/iomap/direct-io.c:389 [inline]
iomap_dio_iter fs/iomap/direct-io.c:440 [inline]
__iomap_dio_rw+0xe3d/0x1cd0 fs/iomap/direct-io.c:601 iomap_dio_rw+0x40/0xa0 fs/iomap/direct-io.c:689 ext4_dio_read_iter fs/ext4/file.c:94 [inline]
ext4_file_read_iter+0x4be/0x690 fs/ext4/file.c:145 call_read_iter include/linux/fs.h:2183 [inline]
do_iter_readv_writev+0x2e0/0x3b0 fs/read_write.c:733 do_iter_read+0x2f2/0x750 fs/read_write.c:796 vfs_readv+0xe5/0x150 fs/read_write.c:916 do_preadv+0x1b6/0x270 fs/read_write.c:1008 __do_sys_preadv2 fs/read_write.c:1070 [inline]
__se_sys_preadv2 fs/read_write.c:1061 [inline]
__x64_sys_preadv2+0xef/0x150 fs/read_write.c:1061 do_syscall_x64 arch/x86/entry/common.c:50 [inline]
do_syscall_64+0x39/0xb0 arch/x86/entry/common.c:80 entry_SYSCALL_64_after_hwframe+0x63/0xcd

Ce qui donne l’apparence d’un bug de système de fichiers plutôt que celle d’une annotation incorrecte des exceptions.

[ L’alternative à cette correction en une seule ligne consiste à intégrer la série amont qui nettoie tout cela :

68674f94ffc9 ("x86: don't use REP_GOOD or ERMS for small memory copies") 20f3337d350c ("x86: don't use REP_GOOD or ERMS for small memory clearing") adfcf4231b8c ("x86: don't use REP_GOOD or ERMS for user memory copies") * d2c95f9d6802 ("x86: don't use REP_GOOD or ERMS for user memory clearing") 3639a535587d ("x86: move stac/clac from user copy routines into callers") 577e6a7fd50d ("x86: inline the 'rep movs' in user copies for the FSRM case") 8c9b6a88b7e2 ("x86: improve on the non-rep 'clear_user' function") 427fda2c8a49 ("x86: improve on the non-rep 'copy_user' function") * e046fe5a36a9 ("x86: set FSRS automatically on AMD CPUs that have FSRM") e1f2750edc4a ("x86: remove 'zerorest' argument from __copy_user_nocache()") 034ff37d3407 ("x86: rewrite '__copy_user_nocache' function")

avec soit la série complète, ou au minimum les deux commits marqués d’un astérisque (*), nécessaires pour corriger ce problème ]

Several companies clearly confirm that VulDB is the primary source for best vulnerability data.

Responsable

Linux

Réserver

08/12/2025

Divulgation

08/12/2025

Modérer

révoqué

Entrée

VDB-334704

CPE

prêt

EPSS

0.00000

KEV

non

Activités

très faible

Sources

Interested in the pricing of exploits?

See the underground prices here!