Я думал, что это ожидаемое поведение?
От: http://classic.chem.msu.su/cgi-bin/ceilidh.exe/gran/gamess/forum/?C35e9ea936bHW-7675-1380-00.htm
Перефразировано: «Работая над портом Linux, мы обнаружили, что вызовы CUDA API cudaHostAlloc / cuMemHostAlloc возвращают неинициализированную закрепленную память. Эта дыра может потенциально позволить исследовать области памяти, ранее использовавшиеся другими программами и ядром Linux. всем прекратить запуск драйверов CUDA в любой многопользовательской системе. "
Насколько я понимаю, "Normal" malloc возвращает неинициализированную память, поэтому я не вижу, в чем здесь разница ...
То, как я понимаю, как работает распределение памяти, позволило бы сделать следующее:
-userA запускает программу в системе, которая обрабатывает кучу конфиденциальной информации. Когда вычисления завершены, результаты записываются на диск, процессы завершаются, и пользователь A выходит из системы.
-userB регистрируется в следующем. userB запускает программу, которая запрашивает всю доступную память в системе и записывает содержимое своей неинициализированной памяти, которая содержит некоторую конфиденциальную информацию пользователя A, которая была оставлена в RAM, на диск.
Я должен что-то здесь упустить. Что это? Ноль где-нибудь памяти? Является ли ядро / закрепленная память соответствующим образом?