← Legacy view v2 (rp.*)

can1357/oh-my-pi

https://github.com/can1357/oh-my-pi.git · lang: rust · LOC: · source: both

Quality
68.5
Grade B-
Security
100.0
Findings
93
2 critical · 45 high
Status
completed
May 20, 2026 12:45
high: 45 info: 20 low: 18 medium: 8 critical: 2
Top rules by occurrence
RuleSeverityCount
MINED115 GitHub Action pinned to mutable ref (not 40-char SHA) high 25
AIC003 Duplicated implementation block across source files low 16
MINED059 Rust Expect In Prod info 4
COMP001 [COMP001] High cognitive complexity: Function `load_yfinanc… low 4
SEC029 Server-Side Request Forgery (SSRF) — outbound HTTP from use… high 4
MINED068 Rust Unsafe Block info 4
SEC128 Async function without await — fire-and-forget Promise (AI … high 3
SEC045 eval()/exec() on stored or user-supplied data medium 3
MINED118 Dockerfile FROM not pinned by sha256 digest high 3
DKR012 Dockerfile keeps pip download cache low 2
First 93 findings (severity-sorted)
critical MINED107 Missing Python import (NameError at runtime) CWE-1075
packages/ai/scripts/proto-extractor.py:430 · conf 1.00
[MINED107] Missing import: `enum` used but not imported: The file uses `enum.something(...)` but never imports `enum`. This raises NameError at runtime the first time the line executes.
critical MINED116 GHA pull_request workflow leaks secrets to forks CWE-829
.github/workflows/ci.yml:365 · conf 0.90
[MINED116] Workflow uses `secrets.NPM_TOKEN` on a `pull_request` trigger: This workflow triggers on `pull_request`, which checks out the FORK's code. Referencing `${ secrets.NPM_TOKEN }` lets a PR fr…
high COMP001 [COMP001] High cognitive complexity: Function `load_yfinance_data` has cognitive complexity 9 (SonarSource scale). Cognitive complexity measures how hard the function is for a human to understand — nested branches, boolean chains, and recursion all weigh in. Breakdown: except=1, for=1, if=2, nested_bonus=3, or=2.
packages/ai/scripts/cursor-log.py:66 · conf 0.95
[COMP001] High cognitive complexity: Function `format_data` has cognitive complexity 30 (SonarSource scale). Cognitive complexity measures how hard the function is for a human to understand — nested …
high DKR006 Dockerfile pipes a remote script into a shell
Dockerfile:42 · conf 0.92
Dockerfile pipes a remote script into a shell
high DKR006 Dockerfile pipes a remote script into a shell
Dockerfile:123 · conf 0.92
Dockerfile pipes a remote script into a shell
high DKR014 Dockerfile copies the entire context without .dockerignore
Dockerfile:66 · conf 0.92
Dockerfile copies the entire context without .dockerignore
high DKR014 Dockerfile copies the entire context without .dockerignore
Dockerfile:183 · conf 0.92
Dockerfile copies the entire context without .dockerignore
high MINED001 Bare Except Pass CWE-755
packages/ai/scripts/cursor-log.py:219 · conf 1.00
[MINED001] Bare Except Pass: except: pass or except Exception: pass — silently swallows everything including KeyboardInterrupt and bugs.
high MINED003 Rust Unwrap In Prod CWE-755
crates/brush-core-vendored/src/prompt.rs:216 · conf 1.00
[MINED003] Rust Unwrap In Prod: .unwrap() panics if None/Err. Acceptable in tests; risky elsewhere.
high MINED006 Overcatch Baseexception CWE-705
packages/ai/scripts/cursor-log.py:245 · conf 1.00
[MINED006] Overcatch Baseexception: except BaseException: ... — prevents Ctrl+C and SystemExit from working.
high MINED115 GitHub Action pinned to mutable ref (not 40-char SHA) CWE-829
.github/workflows/ci.yml:33 · conf 0.90
[MINED115] Action `actions/checkout` pinned to mutable ref `@v4`: `uses: actions/checkout@v4` resolves at workflow-run time. Tags and branches can be re-pushed by the action owner; that made the tj-a…
high MINED115 GitHub Action pinned to mutable ref (not 40-char SHA) CWE-829
.github/workflows/ci.yml:81 · conf 0.90
[MINED115] Action `actions/checkout` pinned to mutable ref `@v4`: `uses: actions/checkout@v4` resolves at workflow-run time. Tags and branches can be re-pushed by the action owner; that made the tj-a…
high MINED115 GitHub Action pinned to mutable ref (not 40-char SHA) CWE-829
.github/workflows/ci.yml:82 · conf 0.90
[MINED115] Action `oven-sh/setup-bun` pinned to mutable ref `@v2`: `uses: oven-sh/setup-bun@v2` resolves at workflow-run time. Tags and branches can be re-pushed by the action owner; that made the tj…
high MINED115 GitHub Action pinned to mutable ref (not 40-char SHA) CWE-829
.github/workflows/ci.yml:86 · conf 0.90
[MINED115] Action `actions/cache` pinned to mutable ref `@v4`: `uses: actions/cache@v4` resolves at workflow-run time. Tags and branches can be re-pushed by the action owner; that made the tj-actions…
high MINED115 GitHub Action pinned to mutable ref (not 40-char SHA) CWE-829
.github/workflows/ci.yml:107 · conf 0.90
[MINED115] Action `actions/checkout` pinned to mutable ref `@v4`: `uses: actions/checkout@v4` resolves at workflow-run time. Tags and branches can be re-pushed by the action owner; that made the tj-a…
high MINED115 GitHub Action pinned to mutable ref (not 40-char SHA) CWE-829
.github/workflows/ci.yml:131 · conf 0.90
[MINED115] Action `actions/checkout` pinned to mutable ref `@v4`: `uses: actions/checkout@v4` resolves at workflow-run time. Tags and branches can be re-pushed by the action owner; that made the tj-a…
high MINED115 GitHub Action pinned to mutable ref (not 40-char SHA) CWE-829
.github/workflows/ci.yml:147 · conf 0.90
[MINED115] Action `actions/checkout` pinned to mutable ref `@v4`: `uses: actions/checkout@v4` resolves at workflow-run time. Tags and branches can be re-pushed by the action owner; that made the tj-a…
high MINED115 GitHub Action pinned to mutable ref (not 40-char SHA) CWE-829
.github/workflows/ci.yml:148 · conf 0.90
[MINED115] Action `oven-sh/setup-bun` pinned to mutable ref `@v2`: `uses: oven-sh/setup-bun@v2` resolves at workflow-run time. Tags and branches can be re-pushed by the action owner; that made the tj…
high MINED115 GitHub Action pinned to mutable ref (not 40-char SHA) CWE-829
.github/workflows/ci.yml:152 · conf 0.90
[MINED115] Action `actions/cache` pinned to mutable ref `@v4`: `uses: actions/cache@v4` resolves at workflow-run time. Tags and branches can be re-pushed by the action owner; that made the tj-actions…
high MINED115 GitHub Action pinned to mutable ref (not 40-char SHA) CWE-829
.github/workflows/ci.yml:173 · conf 0.90
[MINED115] Action `actions/download-artifact` pinned to mutable ref `@v4`: `uses: actions/download-artifact@v4` resolves at workflow-run time. Tags and branches can be re-pushed by the action owner; …
high MINED115 GitHub Action pinned to mutable ref (not 40-char SHA) CWE-829
.github/workflows/ci.yml:195 · conf 0.90
[MINED115] Action `actions/checkout` pinned to mutable ref `@v4`: `uses: actions/checkout@v4` resolves at workflow-run time. Tags and branches can be re-pushed by the action owner; that made the tj-a…
high MINED115 GitHub Action pinned to mutable ref (not 40-char SHA) CWE-829
.github/workflows/ci.yml:196 · conf 0.90
[MINED115] Action `oven-sh/setup-bun` pinned to mutable ref `@v2`: `uses: oven-sh/setup-bun@v2` resolves at workflow-run time. Tags and branches can be re-pushed by the action owner; that made the tj…
high MINED115 GitHub Action pinned to mutable ref (not 40-char SHA) CWE-829
.github/workflows/ci.yml:199 · conf 0.90
[MINED115] Action `dtolnay/rust-toolchain` pinned to mutable ref `@nightly`: `uses: dtolnay/rust-toolchain@nightly` resolves at workflow-run time. Tags and branches can be re-pushed by the action own…
high MINED115 GitHub Action pinned to mutable ref (not 40-char SHA) CWE-829
.github/workflows/ci.yml:202 · conf 0.90
[MINED115] Action `Swatinem/rust-cache` pinned to mutable ref `@v2`: `uses: Swatinem/rust-cache@v2` resolves at workflow-run time. Tags and branches can be re-pushed by the action owner; that made th…
high MINED115 GitHub Action pinned to mutable ref (not 40-char SHA) CWE-829
.github/workflows/ci.yml:210 · conf 0.90
[MINED115] Action `actions/cache` pinned to mutable ref `@v4`: `uses: actions/cache@v4` resolves at workflow-run time. Tags and branches can be re-pushed by the action owner; that made the tj-actions…
high MINED115 GitHub Action pinned to mutable ref (not 40-char SHA) CWE-829
.github/workflows/ci.yml:273 · conf 0.90
[MINED115] Action `actions/checkout` pinned to mutable ref `@v4`: `uses: actions/checkout@v4` resolves at workflow-run time. Tags and branches can be re-pushed by the action owner; that made the tj-a…
high MINED115 GitHub Action pinned to mutable ref (not 40-char SHA) CWE-829
.github/workflows/ci.yml:274 · conf 0.90
[MINED115] Action `oven-sh/setup-bun` pinned to mutable ref `@v2`: `uses: oven-sh/setup-bun@v2` resolves at workflow-run time. Tags and branches can be re-pushed by the action owner; that made the tj…
high MINED115 GitHub Action pinned to mutable ref (not 40-char SHA) CWE-829
.github/workflows/ci.yml:278 · conf 0.90
[MINED115] Action `actions/cache` pinned to mutable ref `@v4`: `uses: actions/cache@v4` resolves at workflow-run time. Tags and branches can be re-pushed by the action owner; that made the tj-actions…
high MINED115 GitHub Action pinned to mutable ref (not 40-char SHA) CWE-829
.github/workflows/ci.yml:284 · conf 0.90
[MINED115] Action `actions/download-artifact` pinned to mutable ref `@v4`: `uses: actions/download-artifact@v4` resolves at workflow-run time. Tags and branches can be re-pushed by the action owner; …
high MINED115 GitHub Action pinned to mutable ref (not 40-char SHA) CWE-829
.github/workflows/ci.yml:310 · conf 0.90
[MINED115] Action `actions/upload-artifact` pinned to mutable ref `@v4`: `uses: actions/upload-artifact@v4` resolves at workflow-run time. Tags and branches can be re-pushed by the action owner; that…
high MINED115 GitHub Action pinned to mutable ref (not 40-char SHA) CWE-829
.github/workflows/ci.yml:323 · conf 0.90
[MINED115] Action `actions/checkout` pinned to mutable ref `@v4`: `uses: actions/checkout@v4` resolves at workflow-run time. Tags and branches can be re-pushed by the action owner; that made the tj-a…
high MINED115 GitHub Action pinned to mutable ref (not 40-char SHA) CWE-829
.github/workflows/ci.yml:325 · conf 0.90
[MINED115] Action `actions/download-artifact` pinned to mutable ref `@v4`: `uses: actions/download-artifact@v4` resolves at workflow-run time. Tags and branches can be re-pushed by the action owner; …
high MINED115 GitHub Action pinned to mutable ref (not 40-char SHA) CWE-829
.github/workflows/ci.yml:331 · conf 0.90
[MINED115] Action `softprops/action-gh-release` pinned to mutable ref `@v2`: `uses: softprops/action-gh-release@v2` resolves at workflow-run time. Tags and branches can be re-pushed by the action own…
high MINED115 GitHub Action pinned to mutable ref (not 40-char SHA) CWE-829
.github/workflows/ci.yml:343 · conf 0.90
[MINED115] Action `actions/checkout` pinned to mutable ref `@v4`: `uses: actions/checkout@v4` resolves at workflow-run time. Tags and branches can be re-pushed by the action owner; that made the tj-a…
high MINED115 GitHub Action pinned to mutable ref (not 40-char SHA) CWE-829
.github/workflows/ci.yml:344 · conf 0.90
[MINED115] Action `oven-sh/setup-bun` pinned to mutable ref `@v2`: `uses: oven-sh/setup-bun@v2` resolves at workflow-run time. Tags and branches can be re-pushed by the action owner; that made the tj…
high MINED118 Dockerfile FROM not pinned by sha256 digest CWE-829
Dockerfile:30 · conf 0.90
[MINED118] Dockerfile FROM `rust:1.86-slim-bookworm` not pinned by digest: `FROM rust:1.86-slim-bookworm` resolves the tag at build time. The registry CAN re-push a different image for the same tag, …
high MINED118 Dockerfile FROM not pinned by sha256 digest CWE-829
Dockerfile:83 · conf 0.90
[MINED118] Dockerfile FROM `python:3.12-slim-bookworm` not pinned by digest: `FROM python:3.12-slim-bookworm` resolves the tag at build time. The registry CAN re-push a different image for the same t…
high MINED118 Dockerfile FROM not pinned by sha256 digest CWE-829
Dockerfile:103 · conf 0.90
[MINED118] Dockerfile FROM `python:3.12-slim-bookworm` not pinned by digest: `FROM python:3.12-slim-bookworm` resolves the tag at build time. The registry CAN re-push a different image for the same t…
high SEC029 Server-Side Request Forgery (SSRF) — outbound HTTP from user input
packages/ai/src/provider-details.ts:62 · conf 1.00
[SEC029] Server-Side Request Forgery (SSRF) — outbound HTTP from user input: Outbound HTTP request to a user-controlled URL without allowlist validation. Attackers can probe internal services (169.25…
high SEC029 Server-Side Request Forgery (SSRF) — outbound HTTP from user input
packages/ai/src/provider-models/ollama.ts:28 · conf 1.00
[SEC029] Server-Side Request Forgery (SSRF) — outbound HTTP from user input: Outbound HTTP request to a user-controlled URL without allowlist validation. Attackers can probe internal services (169.25…
high SEC029 Server-Side Request Forgery (SSRF) — outbound HTTP from user input
packages/ai/src/providers/azure-openai-responses.ts:188 · conf 1.00
[SEC029] Server-Side Request Forgery (SSRF) — outbound HTTP from user input: Outbound HTTP request to a user-controlled URL without allowlist validation. Attackers can probe internal services (169.25…
high SEC040 innerHTML XSS — template literal with server-supplied data
packages/agent/src/compaction/utils.ts:152 · conf 1.00
[SEC040] innerHTML XSS — template literal with server-supplied data: Setting .innerHTML with a template literal that interpolates server-supplied or user-supplied data is the canonical stored/reflect…
high SEC040 innerHTML XSS — template literal with server-supplied data
packages/ai/src/providers/aws-sigv4.ts:151 · conf 1.00
[SEC040] innerHTML XSS — template literal with server-supplied data: Setting .innerHTML with a template literal that interpolates server-supplied or user-supplied data is the canonical stored/reflect…
high SEC100 CORS permissive Access-Control-Allow-Origin: *
packages/ai/src/auth-gateway/http.ts:164 · conf 1.00
[SEC100] CORS permissive Access-Control-Allow-Origin: *: Permissive CORS policy (`*` origin) allows any website to make authenticated cross-origin requests. Especially dangerous when combined with `A…
high SEC128 Async function without await — fire-and-forget Promise (AI mistake)
crates/brush-core-vendored/src/terminal.rs:89 · conf 1.00
[SEC128] Async function without await — fire-and-forget Promise (AI mistake): Async call invoked without `await` returns an unhandled Promise. The outer function resolves before the inner work comple…
high SEC128 Async function without await — fire-and-forget Promise (AI mistake)
packages/ai/src/api-registry.ts:86 · conf 1.00
[SEC128] Async function without await — fire-and-forget Promise (AI mistake): Async call invoked without `await` returns an unhandled Promise. The outer function resolves before the inner work comple…
high SEC128 Async function without await — fire-and-forget Promise (AI mistake)
packages/ai/src/providers/google-auth.ts:226 · conf 1.00
[SEC128] Async function without await — fire-and-forget Promise (AI mistake): Async call invoked without `await` returns an unhandled Promise. The outer function resolves before the inner work comple…
medium CFG006 [CFG006] Missing .gitignore: No .gitignore file. Risk of committing secrets and build artifacts.
· conf 1.00
[CFG006] Missing .gitignore: No .gitignore file. Risk of committing secrets and build artifacts.
medium COMP001 [COMP001] High cognitive complexity: Function `load_yfinance_data` has cognitive complexity 9 (SonarSource scale). Cognitive complexity measures how hard the function is for a human to understand — nested branches, boolean chains, and recursion all weigh in. Breakdown: except=1, for=1, if=2, nested_bonus=3, or=2.
packages/ai/scripts/cursor-log.py:145 · conf 0.95
[COMP001] High cognitive complexity: Function `coalesce_entries` has cognitive complexity 16 (SonarSource scale). Cognitive complexity measures how hard the function is for a human to understand — ne…
medium COMP001 [COMP001] High cognitive complexity: Function `load_yfinance_data` has cognitive complexity 9 (SonarSource scale). Cognitive complexity measures how hard the function is for a human to understand — nested branches, boolean chains, and recursion all weigh in. Breakdown: except=1, for=1, if=2, nested_bonus=3, or=2.
packages/ai/scripts/cursor-log.py:203 · conf 0.95
[COMP001] High cognitive complexity: Function `process_file` has cognitive complexity 24 (SonarSource scale). Cognitive complexity measures how hard the function is for a human to understand — nested…
medium DKR001 Docker final stage has no non-root USER
Dockerfile:163 · conf 0.82
Docker final stage has no non-root USER
medium DKR007 Docker build context has no .dockerignore
.dockerignore · conf 0.90
Docker build context has no .dockerignore
medium ERR002 [ERR002] Empty Catch Block: Empty catch blocks hide errors.
packages/agent/src/proxy.ts:112 · conf 1.00
[ERR002] Empty Catch Block: Empty catch blocks hide errors.
medium SEC045 eval()/exec() on stored or user-supplied data
crates/brush-builtins-vendored/src/exec.rs:75 · conf 1.00
[SEC045] eval()/exec() on stored or user-supplied data: eval() and exec() on data — even admin-stored data — is a lateral-movement vector after any one credential compromise. Sandboxes (__builtins__ …
medium SEC134 AI scaffold leftover — Lorem ipsum / example.com / John Doe in code
crates/pi-shell/src/minimizer/filters/gt.rs:221 · conf 1.00
[SEC134] AI scaffold leftover — Lorem ipsum / example.com / John Doe in code: Lorem ipsum / John Doe / example.com left in non-test code. AI agents emit these as 'reasonable defaults' when they don't…
low AIC003 Duplicated implementation block across source files
crates/brush-builtins-vendored/src/getopts.rs:45 · conf 0.86
Duplicated implementation block across source files
low AIC003 Duplicated implementation block across source files
crates/brush-builtins-vendored/src/test.rs:10 · conf 0.86
Duplicated implementation block across source files
low AIC003 Duplicated implementation block across source files
crates/brush-core-vendored/src/sys/windows/fs.rs:91 · conf 0.86
Duplicated implementation block across source files
low AIC003 Duplicated implementation block across source files
crates/pi-iso/src/windows_block_clone.rs:144 · conf 0.86
Duplicated implementation block across source files
low AIC003 Duplicated implementation block across source files
crates/pi-natives/src/ast.rs:14 · conf 0.86
Duplicated implementation block across source files
low AIC003 Duplicated implementation block across source files
crates/pi-shell/build.rs:38 · conf 0.86
Duplicated implementation block across source files
low AIC003 Duplicated implementation block across source files
crates/pi-shell/src/minimizer/filters/cpp.rs:218 · conf 0.86
Duplicated implementation block across source files
low AIC003 Duplicated implementation block across source files
crates/pi-shell/src/minimizer/filters/gt.rs:38 · conf 0.86
Duplicated implementation block across source files
low AIC003 Duplicated implementation block across source files
crates/pi-shell/src/minimizer/filters/js_tools.rs:358 · conf 0.86
Duplicated implementation block across source files
low AIC003 Duplicated implementation block across source files
crates/pi-shell/src/minimizer/filters/js_tools.rs:359 · conf 0.86
Duplicated implementation block across source files
low AIC003 Duplicated implementation block across source files
crates/pi-shell/src/minimizer/filters/mod.rs:114 · conf 0.86
Duplicated implementation block across source files
low AIC003 Duplicated implementation block across source files
crates/pi-shell/src/minimizer/filters/python.rs:85 · conf 0.86
Duplicated implementation block across source files
low AIC003 Duplicated implementation block across source files
packages/ai/src/providers/google-gemini-cli.ts:249 · conf 0.86
Duplicated implementation block across source files
low AIC003 Duplicated implementation block across source files
packages/ai/src/providers/google-shared.ts:386 · conf 0.86
Duplicated implementation block across source files
low AIC003 Duplicated implementation block across source files
packages/ai/src/providers/google-shared.ts:549 · conf 0.86
Duplicated implementation block across source files
low AIC003 Duplicated implementation block across source files
packages/ai/src/providers/ollama.ts:258 · conf 0.86
Duplicated implementation block across source files
low DKR012 Dockerfile keeps pip download cache
Dockerfile:89 · conf 0.72
Dockerfile keeps pip download cache
low DKR012 Dockerfile keeps pip download cache
Dockerfile:141 · conf 0.72
Dockerfile keeps pip download cache
info COMP001 [COMP001] High cognitive complexity: Function `load_yfinance_data` has cognitive complexity 9 (SonarSource scale). Cognitive complexity measures how hard the function is for a human to understand — nested branches, boolean chains, and recursion all weigh in. Breakdown: except=1, for=1, if=2, nested_bonus=3, or=2.
· conf 0.20
[COMP001] High cognitive complexity (and 2 more): Same pattern found in 2 additional files. Review if needed.
info MINED043 Http Not Https CWE-319
packages/ai/src/providers/google-auth.ts:22 · conf 1.00
[MINED043] Http Not Https: Hardcoded http:// (not localhost) for endpoints that handle credentials or data.
info MINED044 Js Console Log Prod CWE-532
packages/ai/src/cli.ts:70 · conf 1.00
[MINED044] Js Console Log Prod: console.log left in code. Should be replaced with logger or removed.
info MINED045 Ts Non Null Assertion CWE-476
packages/agent/src/compaction/utils.ts:34 · conf 1.00
[MINED045] Ts Non Null Assertion: x! asserts not null - bypasses null checks - TypeError if wrong.
info MINED050 Stub Only Function CWE-1188
packages/ai/scripts/cursor-log.py:220 · conf 1.00
[MINED050] Stub Only Function: Function declared but body is just pass, return None, raise NotImplementedError, or TODO comment.
info MINED054 Ts As Any CWE-704
packages/agent/src/proxy.ts:286 · conf 1.00
[MINED054] Ts As Any: Casting to any (as any) bypasses type checking entirely.
info MINED059 Rust Expect In Prod CWE-755
· conf 0.20
[MINED059] Rust Expect In Prod (and 3 more): Same pattern found in 3 additional files. Review if needed.
info MINED059 Rust Expect In Prod CWE-755
crates/pi-ast/src/ops.rs:292 · conf 1.00
[MINED059] Rust Expect In Prod: .expect(...) panics same as unwrap with a custom message.
info MINED059 Rust Expect In Prod CWE-755
crates/pi-iso/src/overlayfs.rs:189 · conf 1.00
[MINED059] Rust Expect In Prod: .expect(...) panics same as unwrap with a custom message.
info MINED059 Rust Expect In Prod CWE-755
crates/pi-iso/src/windows_block_clone.rs:270 · conf 1.00
[MINED059] Rust Expect In Prod: .expect(...) panics same as unwrap with a custom message.
info MINED066 Rust Panic Macro CWE-755
crates/pi-natives/build.rs:58 · conf 1.00
[MINED066] Rust Panic Macro: panic!() unwinds the stack. Use Result for recoverable errors.
info MINED066 Rust Panic Macro CWE-755
crates/pi-shell/build.rs:56 · conf 1.00
[MINED066] Rust Panic Macro: panic!() unwinds the stack. Use Result for recoverable errors.
info MINED068 Rust Unsafe Block CWE-119
· conf 0.20
[MINED068] Rust Unsafe Block (and 7 more): Same pattern found in 7 additional files. Review if needed.
info MINED068 Rust Unsafe Block CWE-119
crates/brush-core-vendored/src/processes.rs:211 · conf 1.00
[MINED068] Rust Unsafe Block: unsafe { ... } block. Compiler safety guarantees disabled inside.
info MINED068 Rust Unsafe Block CWE-119
crates/brush-core-vendored/src/sys/unix/commands.rs:56 · conf 1.00
[MINED068] Rust Unsafe Block: unsafe { ... } block. Compiler safety guarantees disabled inside.
info MINED068 Rust Unsafe Block CWE-119
crates/brush-core-vendored/src/sys/unix/fd.rs:55 · conf 1.00
[MINED068] Rust Unsafe Block: unsafe { ... } block. Compiler safety guarantees disabled inside.
info SEC020 Secret Printed to Logs
packages/ai/src/providers/google-auth.ts:238 · conf 0.15
[SEC020] Secret Printed to Logs: Debug or diagnostic code appears to print a credential-bearing value. This is a frequent AI-assisted coding failure: the helper exposes the exact value needed for tro…
info SEC029 Server-Side Request Forgery (SSRF) — outbound HTTP from user input
· conf 0.20
[SEC029] Server-Side Request Forgery (SSRF) — outbound HTTP from user input (and 1 more): Same pattern found in 1 additional files. Review if needed.
info SEC045 eval()/exec() on stored or user-supplied data
crates/brush-builtins-vendored/src/let_.rs:30 · conf 0.10
[SEC045] eval()/exec() on stored or user-supplied data: eval() and exec() on data — even admin-stored data — is a lateral-movement vector after any one credential compromise. Sandboxes (__builtins__ …
info SEC045 eval()/exec() on stored or user-supplied data
crates/brush-core-vendored/src/shell/execution.rs:289 · conf 0.10
[SEC045] eval()/exec() on stored or user-supplied data: eval() and exec() on data — even admin-stored data — is a lateral-movement vector after any one credential compromise. Sandboxes (__builtins__ …

Reading from rp.scan + rp.finding + rp.rule (unified schema, R78 series). Legacy data path unchanged. Compare with /scan/e1693738-f0c2-4ae2-888c-ee3b2d99a3c3/.