HomeFreeBSD

Clear non-x86 compat stat syscall kernel stack memory disclosure

Description

Clear non-x86 compat stat syscall kernel stack memory disclosure

32-bit architectures other than i386 have 64-bit time_t which results
in a struct timespec with 12 bytes for tv_sec and tv_nsec, and 4 bytes
of padding. Zero the padding holes in struct stat32 and struct
freebsd11_stat32.

i386 has 32-bit time_t; struct timespec is 8 bytes and has no padding.

Found by inspection, prompted by a report by Reno Robert of Trend Micro
Zero Day Initiative. The originally reported issue (ZDI-CAN-14538) is
already fixed in all supported FreeBSD versions (it was addressed
incidentally as part of the 64-bit inode project).

Reviewed by: markj
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D34709

(cherry picked from commit f90cd1ae30b5f49e9f6ea58a0628ce1c8d8822bc)

Approved by: re (gjb, early MFC)

Details

Provenance
emasteAuthored on Mar 29 2022, 5:55 PM
Reviewer
markj
Differential Revision
Restricted Differential Revision
Parents
rG797b8b9c4087: Remove snd_aureal driver source
Branches
Unknown
Tags
Unknown