github.com / mornyeapp
mornyeapp/ Mornye
Dart·2859 files·commit c90ec64·scanned 3d ago·cached ✓
25/100
LOW RISK
Minor findings consistent with the project type. Nothing reachable from install hooks.
score capped at 25 — 7,349 stars — findings likely legitimate code patterns
verdict accurate?
11% file coverage
Research / educational context
threat-state: lowlive
FINDINGS ░▒▓
warningRust unsafe blockunsafe blocks bypass Rust's memory safety guarantees. Malware uses them for raw pointer manipulation, shellcode injection, or calling dangerous foreign functions.rust_backend/crates/core/src/clock/windows_zone.rs
// lives for the whole call, and the function only writes into it.
if unsafe { GetDynamicTimeZoneInformation(&mut raw) } == TIME_ZONE_ID_INVALID {
return None;
}+3warningRust unsafe blockunsafe blocks bypass Rust's memory safety guarantees. Malware uses them for raw pointer manipulation, shellcode injection, or calling dangerous foreign functions.rust_backend/crates/desktop/src/ffi.rs
// Dart.
unsafe { std::slice::from_raw_parts(data, len) }
}
+3criticalRust process Command usagestd::process::Command can execute arbitrary shell commands. Malware uses it to drop payloads, exfiltrate data, or establish persistence.rust_backend/crates/desktop/src/ffmpeg.rs
}
let mut command = Command::new(ffmpeg);
command
.args(arguments)+8warningRust unsafe blockunsafe blocks bypass Rust's memory safety guarantees. Malware uses them for raw pointer manipulation, shellcode injection, or calling dangerous foreign functions.rust_backend/crates/desktop/src/keep_awake.rs
// by CoreFoundation; a NULL allocator selects the default one.
let value = unsafe {
CFStringCreateWithBytes(
std::ptr::null(),+3criticalRust process Command usagestd::process::Command can execute arbitrary shell commands. Malware uses it to drop payloads, exfiltrate data, or establish persistence.rust_backend/crates/desktop/src/keep_awake.rs
let why = format!("--why={reason}");
let mut child = Command::new("systemd-inhibit")
.args([
"--what=idle:sleep",+8criticalRust process Command usagestd::process::Command can execute arbitrary shell commands. Malware uses it to drop payloads, exfiltrate data, or establish persistence.rust_backend/crates/extensions/src/files/tests.rs
assert!(
std::process::Command::new("mkfifo")
.arg(root.path().join("pipe.wav"))
.status()+8warningPython subprocess / os.system usageos.system() or subprocess with shell=True / suspicious commands can execute arbitrary shell commands. Plain pip/package installs are usually benign.scripts/test_build_android.py
def run_build(self, *args):
return subprocess.run(
["/bin/bash", str(self.project / "scripts/build_android.sh"), *args],
cwd=self.project, env=self.env, text=True, ...+4infoSuspicious file in repoExecutable file (build_all.ps1) in repositoryrust_backend/vendor/libusb1-sys-0.7.0/libusb/msvc/build_all.ps1+2
infoSuspicious file in repoExecutable file (build_rust_backend_windows.ps1) in repositoryscripts/build_rust_backend_windows.ps1+2
infoSuspicious file in repoExecutable file (check_windows_bundle.ps1) in repositoryscripts/check_windows_bundle.ps1+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.
316 files scanned @ c90ec64 | 10/26/2026 | heuristic scan — always review manually
risk by category
code execution25
network & exfiltration0
file system access0
obfuscation0
supply chain12
owasp / injection0
telemetry
files 316/2859rules hit 11engine v7commit c90ec64
github
mornyeapp/Mornye
Mobile music utility built with Flutter and Rust. High-quality audio management for your personal library. open source, no ads, no subscription.
7349
376
302d
2859 files
316 scanned(11%)
c90ec64
architecture░▒▓
entry (0) flagged (14) pkg (182)
474 nodes · 610 edgesscroll to zoom · click node to jump to finding