live · scanning repos
Scanrepo
github.com
DANGER
malware detected
github.com / MiguVT

MiguVT/migurinth

Rust·3465 files·commit a8c58f5·scanned 1h ago·cached ✓
93/100
MALICIOUS
Matches known-malicious patterns. Do not clone or install.

This repository contains patterns associated with malware. Do NOT run this code.

verdict accurate?
Partial architecture graph
Desktop app detected
threat-state: maliciouslive

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.apps/app/src/api/ads.rs
                    let webview2_controller = webview2.controller();
                    let Ok(webview2_8) = unsafe { webview2_controller.CoreWebView2() }
                        .and_then(|core_webv...
+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.apps/labrinth/src/main.rs
        info!("Enabled Sentry integration");
        unsafe {
            std::env::set_var("RUST_BACKTRACE", "1");
        }
+3
criticalRust process Command usagestd::process::Command can execute arbitrary shell commands. Malware uses it to drop payloads, exfiltrate data, or establish persistence.packages/app-lib/src/api/profile/mod.rs
            let full_path = get_full_path(&profile.path).await?;
            let result = Command::new(command)
                .args(cmd)
                .current_dir(&full_path)
+8
criticalRust process Command usagestd::process::Command can execute arbitrary shell commands. Malware uses it to drop payloads, exfiltrate data, or establish persistence.packages/app-lib/src/launcher/mod.rs

                let child = Command::new(&java_version.path)
                    .arg("-cp")
                    .arg(args::get_class_paths_jar(
+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.packages/app-lib/src/state/dirs.rs
    fn set_portable_env(portable_dir: &Path) {
        unsafe {
            env::set_var("THESEUS_CONFIG_DIR", portable_dir);
        }
+3
criticalRust process Command usagestd::process::Command can execute arbitrary shell commands. Malware uses it to drop payloads, exfiltrate data, or establish persistence.packages/app-lib/src/state/process.rs
                if let Some(command) = cmd.next() {
                    let mut command = Command::new(command);
                    command.args(cmd).current_dir(
                        profile::get...
+8
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
warningRust wallet/crypto code with network activityCode handling private keys or signing and also making network requests may be exfiltrating secrets or sending funds to an attacker.apps/app/src/api/oauth_utils/auth_code_reply.rs
                    .replace("{{title}}", "Success")
                    .replace("{{message}}", "You have successfully signed in! You can close this page now."),
            )
    } else {
+5
warningRust wallet/crypto code with network activityCode handling private keys or signing and also making network requests may be exfiltrating secrets or sending funds to an attacker.apps/labrinth/src/queue/payouts/mod.rs
        let api_password = dotenvy::var("PAYPAL_NVP_PASSWORD")?;
        let api_signature = dotenvy::var("PAYPAL_NVP_SIGNATURE")?;

        let mut params = HashMap::new();
+5
warningRust wallet/crypto code with network activityCode handling private keys or signing and also making network requests may be exfiltrating secrets or sending funds to an attacker.apps/labrinth/src/routes/internal/billing.rs
) -> Result<HttpResponse, ApiError> {
    let stripe_signature = req
        .headers()
        .get("Stripe-Signature")
+5
warningExtremely long lines (>1000 chars)Very long lines in source files (not minified bundles) can hide malicious code.packages/app-lib/src/api/minecraft_skins/assets/default/default_skins.rs+4
warningExtremely long lines (>1000 chars)Very long lines in source files (not minified bundles) can hide malicious code.packages/utils/changelog.ts+4
warningExtremely long lines (>1000 chars)Very long lines in source files (not minified bundles) can hide malicious code.apps/labrinth/.sqlx/query-00a733e8ea78f15743afe6a9d637fa4fb87a205854905fb16cf1b8e715f1e01d.json+4
warningFlattened or dead control flowDetected switch(true), dead if branches, or deeply nested ternaries — patterns used by obfuscators to hide execution order.packages/assets/index.ts+3
warningHigh-entropy string literalsFound 3 long strings with high Shannon entropy. This is common in obfuscated payloads that hide URLs, keys, or bytecode.apps/app-frontend/src/helpers/rendering/batch-skin-renderer.ts+3
warningFlattened or dead control flowDetected switch(true), dead if branches, or deeply nested ternaries — patterns used by obfuscators to hide execution order.apps/frontend/src/composables/generated.ts+3
warningFlattened or dead control flowDetected switch(true), dead if branches, or deeply nested ternaries — patterns used by obfuscators to hide execution order.apps/frontend/src/composables/servers/servers-fetch.ts+3
warningHigh-entropy string literalsFound 7 long strings with high Shannon entropy. This is common in obfuscated payloads that hide URLs, keys, or bytecode.packages/moderation/src/utils.ts+3
warningHigh-entropy string literalsFound 3 long strings with high Shannon entropy. This is common in obfuscated payloads that hide URLs, keys, or bytecode.packages/blog/compiled/redesign.content.ts+3
infoSuspicious file in repoExecutable file (gradlew.bat) in repositorypackages/app-lib/java/gradlew.bat+2
warningPossible typosquat: ofetch"ofetch" is only 1 character(s) away from the popular package "fetch". This is a common supply-chain attack vector.package.json+4
infoAuthor has no other public repositoriesGitHub user "modrinth-bot" has no other public repositories, common for burner accounts used in scams.+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.

1820 files scanned @ a8c58f5 | 9/25/2026 | heuristic scan — always review manually

risk by category
code execution25
network & exfiltration25
file system access0
obfuscation15
supply chain8
owasp / injection0
telemetry
files 1820/3465rules hit 22engine v6commit a8c58f5

github

MiguVT/migurinth

The Modrinth app but more privacy-friendly

Rust
62
6
581d
3465 files
1820 scanned(53%)
a8c58f5

architecture░▒▓

entry (4) flagged (74) pkg (370)
770 nodes · 1074 edgesscroll to zoom · click node to jump to finding