LCE-Emerald-Launcher/src-tauri
M1noa 69998a6ae4 fix(LCEL-02): validate workshop install paths + uninstall paths
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.
2026-07-16 20:25:58 -05:00
..
capabilities fix(lceonline): client not opening & webview window for lceonline login (#129) 2026-07-12 09:43:17 +03:00
gen/schemas fix(versions): custom path empty directory, fixes #127 (#131) 2026-07-12 10:06:37 +03:00
icons feat(icon): macOS style (#106) 2026-06-30 22:31:11 +03:00
resources/DLC/Emerald Skin Pack fix: Permission Issue on Release (#1) 2026-04-13 19:40:46 +03:00
scripts ci: build artifacts 2026-05-16 20:37:13 +03:00
src fix(LCEL-02): validate workshop install paths + uninstall paths 2026-07-16 20:25:58 -05:00
.gitignore revert the revert 2026-04-02 16:02:58 +03:00
build.rs revert the revert 2026-04-02 16:02:58 +03:00
Cargo.lock bump (#133) 2026-07-12 20:11:06 +03:00
Cargo.toml bump (#133) 2026-07-12 20:11:06 +03:00
tauri.conf.json bump (#133) 2026-07-12 20:11:06 +03:00
tauri.nightly.conf.json bump (#133) 2026-07-12 20:11:06 +03:00