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

tobi/walgit

Rust·326 files·commit 80e9a20·scanned 5d ago·cached ✓
25/100
LOW RISK
Minor findings consistent with the project type. Nothing reachable from install hooks.

score capped at 25 — 2,658 stars — findings likely legitimate code patterns

verdict accurate?
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.crates/walgit-cli/src/import.rs
    // Collect refs from the source repo.
    let refs_output = Command::new("git")
        .args(["for-each-ref", "--format=%(objectname) %(refname)"])
        .current_dir(&git_dir)
+8
criticalRust process Command usagestd::process::Command can execute arbitrary shell commands. Malware uses it to drop payloads, exfiltrate data, or establish persistence.crates/walgit-cli/src/import_direct.rs
fn count_loose(git_dir: &Path) -> u64 {
    Command::new("git")
        .args(["count-objects"])
        .current_dir(git_dir)
+8
criticalRust process Command usagestd::process::Command can execute arbitrary shell commands. Malware uses it to drop payloads, exfiltrate data, or establish persistence.crates/walgit-cli/src/mirror.rs
async fn gcloud_identity_token() -> Result<String> {
    let out = Command::new("gcloud")
        .args(["auth", "print-identity-token"])
        .stdin(Stdio::null())
+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.crates/walgit-server/tests/e2e.rs
    // SAFETY: test-only env var, read by the publish path of this process.
    unsafe { std::env::set_var("WALGIT_TEST_PUBLISH_GAP_MS", "150") };
    let server = Server::start().await?;
    server.p...
+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.crates/walgit-wal/src/registry.rs
    #[allow(unsafe_code)]
    let mut st: libc::statvfs = unsafe { std::mem::zeroed() };
    // SAFETY: c is NUL-terminated and live; st is aligned writable storage for statvfs.
    #[allow(unsafe_cod...
+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.crates/walgit-git/tests/upload_gix_scale.rs
    #[allow(unsafe_code)]
    let mut ru: libc::rusage = unsafe { std::mem::zeroed() };
    // SAFETY: ru is aligned writable storage; RUSAGE_SELF is a supported selector.
    #[allow(unsafe_code)]
+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
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.crates/walgit-server/src/auth.rs
//!   1. an **ID token** from the issuer in `Authorization: Bearer` (RS256/ES256,
//!      signature against the issuer's JWKS, `iss`, `exp`, `aud` ∈ `audiences` ∪
//!      {`oauth_client_id`}, `email...
+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.crates/walgit-server/src/events.rs
/// (sha1 of the body — the consumer's dedup key) and, when `events.webhook_secret`
/// is set, `X-Walgit-Signature: sha256=<hex HMAC-SHA256 of the body>`. A non-2xx
/// answer fails the batch; the cu...
+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.crates/walgit-server/src/lib.rs
    clippy::cast_precision_loss,
    clippy::cast_sign_loss,
    clippy::doc_lazy_continuation,
    clippy::expect_used,
+5

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.

178 files scanned @ 80e9a20 | 10/22/2026 | heuristic scan — always review manually

risk by category
code execution25
network & exfiltration25
file system access0
obfuscation0
supply chain0
owasp / injection0
telemetry
files 178/326rules hit 10engine v7commit 80e9a20

github

tobi/walgit

Rust
2658
173
65d
326 files
178 scanned(55%)
80e9a20

architecture░▒▓

entry (1) flagged (32) pkg (161)
330 nodes · 635 edgesscroll to zoom · click node to jump to finding
LOW (25/100) — tobi/walgit — ScanRepo