В ядре Linux устранена следующая уязвимость:
cifs: вызовите pagecache_isize_extended() в cifs_setsize() при расширении
cifs_setsize() вызывает truncate_pagecache(), но пропускает
pagecache_isize_extended() в расширении. truncate_setsize() показывает
правильный шаблон:
i_size_write (inode, newsize);
если (новый размер > старый размер)
pagecache_isize_extended(inode, oldsize, newsize);
truncate_pagecache (inode, newsize);
pagecache_isize_extended() обнуляет конец старой страницы
ЭОФ. Без этого «грязные» байты в этом регионе могут быть записаны обратно в
сервер, предоставляя устаревшие данные в недавно расширенном диапазоне.
Показать оригинальное описание (EN)
In the Linux kernel, the following vulnerability has been resolved: cifs: call pagecache_isize_extended() in cifs_setsize() when extending cifs_setsize() calls truncate_pagecache() but skips pagecache_isize_extended() on extension. truncate_setsize() shows the correct pattern: i_size_write(inode, newsize); if (newsize > oldsize) pagecache_isize_extended(inode, oldsize, newsize); truncate_pagecache(inode, newsize); pagecache_isize_extended() zeroes the tail of the page straddling old EOF. Without it, dirty bytes in that region can be written back to the server, exposing stale data in the newly extended range.