Proceedings 2017 Network and Distributed System Security Symposium 2017
DOI: 10.14722/ndss.2017.23183
|View full text |Cite
|
Sign up to set email alerts
|

SafeInit: Comprehensive and Practical Mitigation of Uninitialized Read Vulnerabilities

Abstract: Usage of uninitialized values remains a common error in C/C++ code. This results not only in undefined and generally undesired behavior, but is also a cause of information disclosure and other security vulnerabilities. Existing solutions for mitigating such errors are not used in practice as they are either limited in scope (for example, only protecting the heap), or incur high runtime overhead. In this paper, we propose SafeInit, a practical protection system which hardens applications against such undefined … Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
4

Citation Types

0
21
0

Year Published

2018
2018
2023
2023

Publication Types

Select...
5
1
1

Relationship

2
5

Authors

Journals

citations
Cited by 22 publications
(21 citation statements)
references
References 44 publications
0
21
0
Order By: Relevance
“…However, in kernel exploitation, a local (unprivileged) adversary, armed with an arbitrary (kernel-level) memory disclosure vulnerability [84,99] has increased flexibility in mounting a JIT-ROP attack on a diversified kernel [64], as any user program may attack the OS. Therefore, kernel JIT-ROP attacks are not only easier to mount but are also facilitated by the abundance of memory disclosure vulnerabilities in kernel code [88,100,102,108].…”
Section: Introductionmentioning
confidence: 99%
See 1 more Smart Citation
“…However, in kernel exploitation, a local (unprivileged) adversary, armed with an arbitrary (kernel-level) memory disclosure vulnerability [84,99] has increased flexibility in mounting a JIT-ROP attack on a diversified kernel [64], as any user program may attack the OS. Therefore, kernel JIT-ROP attacks are not only easier to mount but are also facilitated by the abundance of memory disclosure vulnerabilities in kernel code [88,100,102,108].…”
Section: Introductionmentioning
confidence: 99%
“…However, in kernel exploitation, a local (unprivileged) adversary, armed with an arbitrary (kernel-level) memory disclosure vulnerability [84,99] has increased flexibility in mounting a JIT-ROP attack on a diversified kernel [64], as any user program may attack the OS. Therefore, kernel JIT-ROP attacks are not only easier to mount but are also facilitated by the abundance of memory disclosure vulnerabilities in kernel code [88,100,102,108].As a response to JIT-ROP attacks in user applications, execute-only memory prevents the (onthe-fly) discovery of gadgets by blocking read access to executable pages [27]. Nevertheless, given that widely used CPU architectures such as the x86 do not provide native support for enforcing execute-only permissions, such memory protection(s) can be achieved by relying on page table manipulation [9], TLB desynchronization [63], hardware virtualization [40,62], or techniques inspired by software-fault isolation (SFI) [86].…”
mentioning
confidence: 99%
“…If the program erroneously references the original object, it executes a method controlled by the attacker. Likewise, common uninitialized read attacks exploit memory reuse to leak sensitive information, such as return addresses stored on the stack [27]. Temporal type safety prevents such attacks by preventing reuse of memory for different types.…”
Section: Introductionmentioning
confidence: 99%
“…More importantly, they protect only the heap, leaving the stack vulnerable. The reason is that the stack is notoriously performance-sensitive and extremely challenging to protect without incurring high overhead [27]. Unfortunately, stack-based temporal attacks are popular and, for instance, Microsoft reports that, over the last ten years, 52% of the uninitialized read vulnerabilities on its platform concerned the stack [28].…”
Section: Introductionmentioning
confidence: 99%
See 1 more Smart Citation