-
Notifications
You must be signed in to change notification settings - Fork 53
Open
Description
Hi, I am scanning the pelite in the latest version with my own static analyzer tool.
Unsafe conversion found at: src/pe64/view.rs#L84
#[inline]
pub unsafe fn module(base: *const u8) -> PeView<'a> {
let dos = &*(base as *const IMAGE_DOS_HEADER);
let nt = &*(base.offset(dos.e_lfanew as isize) as *const IMAGE_NT_HEADERS);
PeView {
image: slice::from_raw_parts(base, nt.OptionalHeader.SizeOfImage as usize),
base_address: base as Va,
}
}This unsound implementation would create a misalignment issues if the type size of u8 is smaller than the type size of IMAGE_DOS_HEADER.
This would potentially cause undefined behaviors in Rust. If we further manipulate the problematic converted types, it would potentially lead to different consequences such as access out-of-bound. I am reporting this issue for your attention.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels