github.com / WilliamVenner
WilliamVenner/ gmpublisher
Rust·240 files·commit 0f0e4e4·scanned 3d ago·cached ✓
25/100
LOW RISK
Minor findings consistent with the project type. Nothing reachable from install hooks.
score capped at 25 — 1,263 stars — findings likely legitimate code patterns
verdict accurate?
27% file coverage
Desktop app detected
threat-state: lowlive
FINDINGS ░▒▓
criticalRust process Command usagestd::process::Command can execute arbitrary shell commands. Malware uses it to drop payloads, exfiltrate data, or establish persistence.src-tauri/src/cli.rs
let command = Command::new("gmpublisher");
let matches = command+8warningRust unsafe blockunsafe blocks bypass Rust's memory safety guarantees. Malware uses them for raw pointer manipulation, shellcode injection, or calling dangerous foreign functions.src-tauri/src/content_generator.rs
pub fn get_content_generator_manifests() -> &'static Vec<AddWorkshopManifest> {
unsafe { &*(&CONTENT_GENERATOR.lock().saved as *const _) }
}
+3warningRust unsafe blockunsafe blocks bypass Rust's memory safety guarantees. Malware uses them for raw pointer manipulation, shellcode injection, or calling dangerous foreign functions.src-tauri/src/game_addons.rs
fn from(n: u8) -> Self {
unsafe { std::mem::transmute(n) }
}
}+3warningRust unsafe blockunsafe blocks bypass Rust's memory safety guarantees. Malware uses them for raw pointer manipulation, shellcode injection, or calling dangerous foreign functions.src-tauri/src/gma/extract.rs
while !complete_ref.load(Ordering::Acquire) {
let xz_decoder = unsafe { &mut *xz_decoder_ptr.0 };
let bytes_read = xz_decoder.total_in() as f64;+3criticalRust process Command usagestd::process::Command can execute arbitrary shell commands. Malware uses it to drop payloads, exfiltrate data, or establish persistence.src-tauri/src/util/path.rs
#[cfg(target_os = "windows")]
return std::process::Command::new("explorer").arg(format!("/select,{}", path.display())).spawn();
#[cfg(target_os = "macos")]+8warningFlattened or dead control flowDetected switch(true), dead if branches, or deeply nested ternaries — patterns used by obfuscators to hide execution order.public/js/lib/prism.min.js+3
infoSuspicious file in repoVery large source file (595KB) — could contain obfuscated payloadsrc-tauri/lib/steam_api/public/steam/steam_api.json+2
Scores are heuristics. A “safe” verdict means no known-malicious patterns were found — clever malware can look boring. Wrong verdict? Flag it above; confirmed false positives become regression tests.
65 files scanned @ 0f0e4e4 | 10/26/2026 | heuristic scan — always review manually
risk by category
code execution25
network & exfiltration0
file system access0
obfuscation3
supply chain2
owasp / injection0
telemetry
files 65/240rules hit 8engine v7commit 0f0e4e4
github
WilliamVenner/gmpublisher
⚙️ Workshop Publishing Utility for Garry's Mod, written in Rust & Svelte and powered by Tauri
1263
96
2078d
240 files
65 scanned(27%)
0f0e4e4
architecture░▒▓
entry (0) flagged (12) pkg (44)
93 nodes · 110 edgesscroll to zoom · click node to jump to finding