live · scanning repos
Scanrepo
github.com
github.com / qarmin

qarmin/czkawka

Fluent·683 files·commit 105a520·scanned 6d ago·cached ✓
15/100
LOW RISK
Minor findings consistent with the project type. Nothing reachable from install hooks.

score capped at 1532,766+ stars — findings likely false positives

verdict accurate?
32,766 stars
42% file coverage
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.cedinia/src/callbacks/misc.rs
        window.global::<AppState>().on_open_path(|path| {
            let _ = std::process::Command::new("xdg-open").arg(path.as_str()).spawn();
        });
        window.global::<AppState>().on_open...
+8
warningRust unsafe blockunsafe blocks bypass Rust's memory safety guarantees. Malware uses them for raw pointer manipulation, shellcode injection, or calling dangerous foreign functions.cedinia/src/lib.rs
            let _ = ANDROID_CACHE_PATH.set(dirs.cache_dir);
            unsafe { std::env::set_var("DATA_DIR", &dirs.files_dir) };
            eprintln!("setup_android_paths: config='{}'", dirs.files_...
+3
criticalRust process Command usagestd::process::Command can execute arbitrary shell commands. Malware uses it to drop payloads, exfiltrate data, or establish persistence.cedinia/src/notifications.rs
fn try_notify_send(summary: &str, body: &str) -> bool {
    match std::process::Command::new("notify-send").arg("--app-name=cedinia").arg(summary).arg(body).status() {
        Ok(s) if s.success() => ...
+8
criticalRust process Command usagestd::process::Command can execute arbitrary shell commands. Malware uses it to drop payloads, exfiltrate data, or establish persistence.ci_tester/src/advanced_tests.rs
fn set_mtime(path: &str, ts: &str) -> Result<(), String> {
    let status = Command::new("touch")
        .args(["-t", ts, path])
        .status()
+8
warningRust unsafe blockunsafe blocks bypass Rust's memory safety guarantees. Malware uses them for raw pointer manipulation, shellcode injection, or calling dangerous foreign functions.czkawka_gui/src/taskbar_progress_win.rs
    pub fn new() -> TaskbarProgress {
        let hwnd = unsafe { winuser::GetActiveWindow() };
        TaskbarProgress::from(hwnd)
    }
+3
warningRust unsafe blockunsafe blocks bypass Rust's memory safety guarantees. Malware uses them for raw pointer manipulation, shellcode injection, or calling dangerous foreign functions.krokiet/src/main.rs
        // set_var is safe when using on single threaded context
        unsafe {
            std::env::set_var("SLINT_SCALE_FACTOR", format!("{:.2}", base_settings.manual_application_scale));
       ...
+3
infoSuspicious files are not reachable from entry pointsFlagged files exist but are not imported by any entry point. They may be dead code, tests, or attack payloads triggered by another mechanism.+2
warningHex-encoded string sequencesLong hex-encoded strings are commonly used to hide malicious code from code review.ci_tester/src/test_file_system.rs
        // Minimal valid JPEG SOI/APP0/EOI triplet (bad-names checks name, not content).
        data: b"\xff\xd8\xff\xe0\x00\x10JFIF\x00\x01\x01\x00\x00\x01\x00\x01\x00\x00\xff\xd9".to_vec(),
       ...
+5
warningHigh-entropy string literalsFound 3 long strings with high Shannon entropy. This is common in obfuscated payloads that hide URLs, keys, or bytecode.misc/ai_translate/translate.py+3
warningHigh-entropy string literalsFound 4 long strings with high Shannon entropy. This is common in obfuscated payloads that hide URLs, keys, or bytecode.misc/ai_translate/validate_charset.py+3
warningHigh-entropy string literalsFound 10 long strings with high Shannon entropy. This is common in obfuscated payloads that hide URLs, keys, or bytecode.misc/ai_translate/validate_translations.py+3
infoSuspicious file in repoExecutable file (install_windows.bat) in repositorymisc/install_scripts/install_windows.bat+2
infoSuspicious file in repoExecutable file (pack_all_backends.ps1) in repositorymisc/pack_all_backends.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.

290 files scanned @ 105a520 | 8/19/2026 | heuristic scan — always review manually

risk by category
code execution25
network & exfiltration0
file system access0
obfuscation15
supply chain4
owasp / injection0
telemetry
files 290/683rules hit 13engine v5commit 105a520

github

qarmin/czkawka

Multi functional app to find duplicates, empty folders, similar images etc.

Fluent
32766
1145
2184d
683 files
290 scanned(42%)
105a520

architecture░▒▓

entry (0) flagged (25) pkg (277)
555 nodes · 971 edgesscroll to zoom · click node to jump to finding