Refuse prepared-lower child mount crossings
This commit is contained in:
parent
4cf7a5e595
commit
b35582a9e6
1 changed files with 83 additions and 2 deletions
|
|
@ -859,7 +859,10 @@ fn timestamps(seconds: u64) -> Timestamps {
|
|||
}
|
||||
|
||||
fn secure_resolve() -> ResolveFlags {
|
||||
ResolveFlags::BENEATH | ResolveFlags::NO_SYMLINKS | ResolveFlags::NO_MAGICLINKS
|
||||
ResolveFlags::BENEATH
|
||||
| ResolveFlags::NO_SYMLINKS
|
||||
| ResolveFlags::NO_MAGICLINKS
|
||||
| ResolveFlags::NO_XDEV
|
||||
}
|
||||
|
||||
fn rewound(source: &File) -> Result<File> {
|
||||
|
|
@ -867,3 +870,13 @@ fn rewound(source: &File) -> Result<File> {
|
|||
file.seek(SeekFrom::Start(0))?;
|
||||
Ok(file)
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
mod tests {
|
||||
use super::*;
|
||||
|
||||
#[test]
|
||||
fn retained_layer_resolution_refuses_mount_crossing() {
|
||||
assert!(secure_resolve().contains(ResolveFlags::NO_XDEV));
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue