mirror of
https://github.com/LCE-Hub/LCE-Emerald-Launcher.git
synced 2026-07-20 01:07:30 +00:00
three changes to workshop_install / workshop_uninstall: 1. zip_name from the frontend is now rejected if it contains '..', '/', '\\', or starts with '/' or '\\'. prevents the downloaded archive from escaping tmp_dir. 2. placeholder is now rejected if it contains '..' or starts with '/' or '\\'. after joining to instance_dir, the resolved path is canonicalized and asserted to start with instance_dir.canonicalize(). prevents the install from escaping the instance dir. 3. workshop_uninstall now re-validates every persisted path in pkg.dirs against instance_dir.canonicalize() before removing. if an attacker injected paths into workshop_packages.json (via the install traversals above or via LCEL-01's write primitive), uninstall used to delete arbitrary files. the proper fix is to use a safe zip library (zip-rs) that strips '..' from members instead of shelling to bsdtar/unzip/tar. left as a TODO so this commit stays minimal and reviewable. |
||
|---|---|---|
| .. | ||
| capabilities | ||
| gen/schemas | ||
| icons | ||
| resources/DLC/Emerald Skin Pack | ||
| scripts | ||
| src | ||
| .gitignore | ||
| build.rs | ||
| Cargo.lock | ||
| Cargo.toml | ||
| tauri.conf.json | ||
| tauri.nightly.conf.json | ||