论文部分内容阅读
The double fetch problem occurs when the data is maliciously changed between two kel reads of the supposedly same data, which can cause serious security problems in the kel. Previous research focused on the double fetches between the kel and user applications. In this paper, we present the first dedicated study of the double fetch problem between the kel and peripheral devices(aka. the hardware double fetch). Operating systems communicate with peripheral devices by reading from and writing to the device mapped I/O(input and output)memory. Owing to the lack of effective validation of the attached hardware,compromised hardware could flip the data between two reads of the same I/O memory address, causing a double fetch problem. We propose a static patt-matching approach to identify the hardware double fetches from the Linux kel. Our approach can analyze the entire kel without relying on the corresponding hardware. The results are categorized and each category is analyzed using case studies to discuss the possibility of causing bugs. We also find four previously unknown double-fetch vulnerabilities,which have been confirmed and fixed after reporting them to the maintainers.