Refuse prepared-lower child mount crossings
This commit is contained in:
parent
4cf7a5e595
commit
b35582a9e6
1 changed files with 83 additions and 2 deletions
|
|
@ -693,7 +693,10 @@ fn hex(bytes: &[u8]) -> String {
|
|||
}
|
||||
|
||||
fn secure_resolve() -> ResolveFlags {
|
||||
ResolveFlags::BENEATH | ResolveFlags::NO_SYMLINKS | ResolveFlags::NO_MAGICLINKS
|
||||
ResolveFlags::BENEATH
|
||||
| ResolveFlags::NO_SYMLINKS
|
||||
| ResolveFlags::NO_MAGICLINKS
|
||||
| ResolveFlags::NO_XDEV
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
|
|
@ -711,4 +714,9 @@ mod fixed_directory_tests {
|
|||
std::fs::set_permissions(directory.path(), std::fs::Permissions::from_mode(0o700)).unwrap();
|
||||
assert!(require_owned_directory(&root).is_ok());
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn retained_store_resolution_refuses_mount_crossing() {
|
||||
assert!(secure_resolve().contains(ResolveFlags::NO_XDEV));
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue