RepoTrust

Leaderboard github.com

nreed97/EzFD

Real-time multi-op ARRL Field Day logger — web-based logger with offline support, band activity, map, ADIF/Cabrillo export

  • View repository ↗
  • TypeScript
  • ★ 4
  • commit 72083165c9b3
  • scored 2026-11-14
  • scoring prov-5+qual-2+sec-2

unreviewed-ai-risk

AI provenance

100%

explicit

Confidence
95%
Coverage
100%

Estimated share of AI-generated code. Explicit attribution is a lower bound.

Code quality

52/100

weak

Confidence
90%
Coverage
100%

Complexity, duplication, lint density, tests, CI, docs and review process.

Security

70/100

adequate

Confidence
85%
Coverage
100%

Secrets, static analysis, vulnerable dependencies, CI and supply-chain posture.

AI provenance

100% explicit

Explicit AI attribution on 100% of first-party code added; an estimated 100% including velocity signals.

How the score is built

  • Explicitly attributed share100%
  • Unattributed share in AI-pace bursts0%
  • Estimated AI-generated share100%
  • AI tool configuration files2
  • Work sessions at AI pace5
  • Releases at AI pacenot measured
  • Coding-style index (1.0+ means possible)0.11

Attributed AI tools

ToolCommitsLines addedFirst seenLast seen
Claude Code22037,8782026-06-282026-11-13

Lines added per month all AI-attributed share

  1. 2026-068,278 · 98% AI
  2. 2026-073,946 · 100% AI
  3. 2026-0813,616 · 100% AI
  4. 2026-099,355 · 100% AI
  5. 2026-102,811 · 100% AI
  6. 2026-112 · 100% AI

Findings in AI-attributed lines vs the rest

From git blame: 31,713 lines trace to AI-attributed commits, 51 to others. Too few lines in one group for a fair comparison. Reported, not scored.

Findings per 1,000 linesAI-attributedOtherRatio
Code quality1.510.00—
Security2.270.00—

Evidence by analyzer

Explicit AI attributionok26 items
attributed_commit_share
96.9%
attributed_commits
220
attributed_loc
37,878
attributed_loc_share
99.7%
commits
227
effective_loc
38,008
tools_detected
1
AI tool configurationok2 items
artifacts
2
earliest_adoption
2026-06-28
tools_configured
2
workflow_agents
0
Commit velocityok5 items
excluded_import_loc
0
flagged_loc
12,596
flagged_loc_share
33.1%
flagged_units
5
max_loc_per_hour
790.81
measured_loc
38,008
median_loc_per_hour
191.50
pr_timed_units
0
pre_ai_era_burst_loc
0
pre_ai_era_bursts
0
pre_ai_era_measured_loc
0
work_units
53
Release velocityskipped
Coding styleok1 item
count:assistant_voice
0
count:emoji_in_code
5
count:narrated_steps
1
count:placeholder
0
files:assistant_voice
0
files:emoji_in_code
4
files:narrated_steps
1
files:placeholder
0
index
0.11
lines_scanned
31,764
per_kloc:assistant_voice
0
per_kloc:emoji_in_code
0.16
per_kloc:narrated_steps
0.03
per_kloc:placeholder
0
Findings in AI-written linesok
ai_lines
31,713
blame_failures
0
files_blamed
148
other_lines
51
quality:ai_findings
48
quality:ai_per_kloc
1.51
quality:other_findings
0
quality:other_per_kloc
0
security:ai_findings
72
security:ai_per_kloc
2.27
security:other_findings
0
security:other_per_kloc
0

Code quality

52 weak

Code quality is weak: test-to-source ratio 0.00, no CI test run detected; 34% of function code in complex or long functions; 8% duplicated lines. Weakest area: testing.

How the score is built

  • Complexity36
  • Duplication61
  • Lint and smells75
  • Tests and CI25
  • Documentation85
  • Type safety95
  • Review processnot measured

Evidence by analyzer

Complexity (lizard)ok10 items
complex_functions
37
function_nloc
14,134
functions
1,541
long_functions
19
many_param_functions
0
mean_ccn
2.84
p90_ccn
6
risky_nloc_share
34.4%
Duplication (jscpd)ok10 items
compared_lines
25,002
duplicated_lines
2,030
duplicated_share
8.1%
files
148
Lintok
category:best-practice
5
category:correctness
41
category:maintainability
2
findings
48
scanned_lines
30,585
weighted_findings
35
Tests and CIok3 items
  • CI config: .github/workflows/ci.yml .github/workflows/ci.yml
  • CI config: .github/workflows/pages.yml .github/workflows/pages.yml
  • CI runs linters (tsc --noEmit, shellcheck)
check:ci_present
yes
check:ci_runs_lint
yes
check:ci_runs_tests
no
check:has_tests
no
check:test_ratio
no
check:tests_cochange
no
ci_files
2
cochange_commits
189
cochange_share
0.0%
source_lines
31,764
test_lines
0
test_ratio
0
Documentationok3 items
  • README.md README.md
  • LICENSE LICENSE
  • docs/changelog.md docs/changelog.md
check:changelog
yes
check:contributing
no
check:license
yes
check:readme
yes
readme_lines
195
Type safetyok1 item
  • TypeScript strict type checking: tsconfig.json tsconfig.json
check:low_escape_density
yes
check:strict_config
no
escapes
0
escapes_per_kloc
0

Security

70 adequate

Security posture is adequate: 2 known vulnerabilities in 2 dependencies; 12 high-severity SAST findings; 12 high-severity workflow issues. Weakest area: ci actions.

How the score is built

  • Secrets100
  • Static analysis (SAST)74
  • Vulnerable dependencies83
  • CI workflows6
  • Security posture60
  • OpenSSF Scorecardnot measured

Evidence by analyzer

OpenSSF Scorecardskipped

no published OpenSSF Scorecard result for this repo

Package registriesok
checked
25
declared
25
lookup_errors
0
missing
0
recent
0
Secrets (gitleaks)ok
secrets_current
0
secrets_history
0
secrets_low_confidence
0
secrets_nonprod
0
Static analysis (opengrep)ok
findings
73
findings_high
12
findings_low
0
findings_medium
61
parse_errors
2
scanned_lines
30,585
weighted_findings
26.70
Dependencies (osv-scanner)ok
penalty
11
vulnerabilities
2
vulnerable_packages
2
vulns_critical
0
vulns_high
1
vulns_low
0
vulns_medium
1
vulns_unknown
0
CI workflows (zizmor)ok
findings
24
findings_high
12
findings_low
5
findings_medium
7
penalty
165.50
workflows
2
Security postureok1 item
  • Dependency updates: .github/dependabot.yml .github/dependabot.yml
check:dependency_updates
yes
check:lockfiles
yes
check:security_policy
no
check:signed_commits
yes
signed_commit_share
60.5%
unpinned_manifests
0
Release downloadsok
binary_assets
0
signals
0
suspicious
0

Findings

29 high85 medium33 low

SeverityRuleLocationMessageTool
high opengrep/python.lang.best-practice.arbitrary-sleep ezfd-rig-bridge.py:487 time.sleep() call; did you mean to leave this in? Lint
high opengrep/python.lang.maintainability.useless-inner-function ezfd-rig-bridge.py:795 function `handler` is defined inside a function but never used Lint
high opengrep/python.lang.best-practice.arbitrary-sleep public/ezfd-rig-bridge.py:487 time.sleep() call; did you mean to leave this in? Lint
high opengrep/python.lang.maintainability.useless-inner-function public/ezfd-rig-bridge.py:795 function `handler` is defined inside a function but never used Lint
high zizmor/unpinned-uses .github/workflows/ci.yml:228 unpinned action reference [confidence high] CI workflows (zizmor)
high zizmor/unpinned-uses .github/workflows/ci.yml:230 unpinned action reference [confidence high] CI workflows (zizmor)
high zizmor/unpinned-uses .github/workflows/ci.yml:269 unpinned action reference [confidence high] CI workflows (zizmor)
high zizmor/unpinned-uses .github/workflows/ci.yml:332 unpinned action reference [confidence high] CI workflows (zizmor)
high zizmor/unpinned-uses .github/workflows/ci.yml:41 unpinned action reference [confidence high] CI workflows (zizmor)
high zizmor/unpinned-uses .github/workflows/ci.yml:43 unpinned action reference [confidence high] CI workflows (zizmor)
high zizmor/excessive-permissions .github/workflows/pages.yml:19 overly broad permissions [confidence high] CI workflows (zizmor)
high zizmor/excessive-permissions .github/workflows/pages.yml:20 overly broad permissions [confidence high] CI workflows (zizmor)
high zizmor/unpinned-uses .github/workflows/pages.yml:32 unpinned action reference [confidence high] CI workflows (zizmor)
high zizmor/unpinned-uses .github/workflows/pages.yml:34 unpinned action reference [confidence high] CI workflows (zizmor)
high zizmor/unpinned-uses .github/workflows/pages.yml:44 unpinned action reference [confidence high] CI workflows (zizmor)
high zizmor/unpinned-uses .github/workflows/pages.yml:56 unpinned action reference [confidence high] CI workflows (zizmor)
high opengrep/dockerfile.security.missing-user-entrypoint Dockerfile:30 By not specifying a USER, a program in the container may run as 'root'. This is a security hazard. If an attacker can control a process running as root, they may have control over the container. Ensure that the last USER in a Dockerfile... Static analysis (opengrep)
high opengrep/python.lang.security.audit.dangerous-subprocess-use-audit ezfd-rig-bridge.py:310 Detected subprocess function 'check_call' without a static string. If this data can be controlled by a malicious actor, it may be an instance of command injection. Audit the use of this call to ensure it is not controllable by an... Static analysis (opengrep)
high opengrep/python.lang.security.audit.dangerous-subprocess-use-audit ezfd-rig-bridge.py:486 Detected subprocess function 'Popen' without a static string. If this data can be controlled by a malicious actor, it may be an instance of command injection. Audit the use of this call to ensure it is not controllable by an external... Static analysis (opengrep)
high opengrep/python.lang.security.audit.dangerous-subprocess-use-audit ezfd-rig-bridge.py:66 Detected subprocess function 'call' without a static string. If this data can be controlled by a malicious actor, it may be an instance of command injection. Audit the use of this call to ensure it is not controllable by an external... Static analysis (opengrep)
high opengrep/python.lang.security.audit.dangerous-os-exec-audit ezfd-rig-bridge.py:69 Found dynamic content when spawning a process. This is dangerous if external data can reach this function call because it allows a malicious actor to execute commands. Ensure no external data reaches here. [confidence low] Static analysis (opengrep)
high opengrep/python.lang.security.audit.dangerous-subprocess-use-audit ezfd-rig-bridge.py:73 Detected subprocess function 'run' without a static string. If this data can be controlled by a malicious actor, it may be an instance of command injection. Audit the use of this call to ensure it is not controllable by an external... Static analysis (opengrep)
high opengrep/javascript.node-crypto.security.gcm-no-tag-length lib/crypto.ts:30 The call to 'createDecipheriv' with the Galois Counter Mode (GCM) mode of operation is missing an expected authentication tag length. If the expected authentication tag length is not specified or otherwise checked, the application might... Static analysis (opengrep)
high osv/GHSA-mrhx-c7xc-m3w5 package-lock.json [email protected] (npm) is affected by GHSA-mrhx-c7xc-m3w5 Dependencies (osv-scanner)
high opengrep/python.lang.security.audit.dangerous-subprocess-use-audit public/ezfd-rig-bridge.py:310 Detected subprocess function 'check_call' without a static string. If this data can be controlled by a malicious actor, it may be an instance of command injection. Audit the use of this call to ensure it is not controllable by an... Static analysis (opengrep)
high opengrep/python.lang.security.audit.dangerous-subprocess-use-audit public/ezfd-rig-bridge.py:486 Detected subprocess function 'Popen' without a static string. If this data can be controlled by a malicious actor, it may be an instance of command injection. Audit the use of this call to ensure it is not controllable by an external... Static analysis (opengrep)
high opengrep/python.lang.security.audit.dangerous-subprocess-use-audit public/ezfd-rig-bridge.py:66 Detected subprocess function 'call' without a static string. If this data can be controlled by a malicious actor, it may be an instance of command injection. Audit the use of this call to ensure it is not controllable by an external... Static analysis (opengrep)
high opengrep/python.lang.security.audit.dangerous-os-exec-audit public/ezfd-rig-bridge.py:69 Found dynamic content when spawning a process. This is dangerous if external data can reach this function call because it allows a malicious actor to execute commands. Ensure no external data reaches here. [confidence low] Static analysis (opengrep)
high opengrep/python.lang.security.audit.dangerous-subprocess-use-audit public/ezfd-rig-bridge.py:73 Detected subprocess function 'run' without a static string. If this data can be controlled by a malicious actor, it may be an instance of command injection. Audit the use of this call to ensure it is not controllable by an external... Static analysis (opengrep)
medium opengrep/javascript.lang.correctness.no-stringify-keys app/api/events/[code]/bonuses/route.ts:20 JSON stringify does not produce a stable key ordering, and should not be relied on for producing object keys. Consider using json-stable-stringify instead. Lint
medium opengrep/javascript.lang.correctness.no-stringify-keys app/api/events/[code]/bonuses/route.ts:21 JSON stringify does not produce a stable key ordering, and should not be relied on for producing object keys. Consider using json-stable-stringify instead. Lint
medium opengrep/javascript.lang.correctness.no-stringify-keys app/api/export/[code]/route.ts:71 JSON stringify does not produce a stable key ordering, and should not be relied on for producing object keys. Consider using json-stable-stringify instead. Lint
medium opengrep/javascript.lang.correctness.no-stringify-keys app/api/import/event/route.ts:77 JSON stringify does not produce a stable key ordering, and should not be relied on for producing object keys. Consider using json-stable-stringify instead. Lint
medium opengrep/javascript.lang.correctness.no-stringify-keys app/page.tsx:41 JSON stringify does not produce a stable key ordering, and should not be relied on for producing object keys. Consider using json-stable-stringify instead. Lint
medium opengrep/typescript.react.best-practice.react-props-spreading components/NavDrawer.tsx:175 It's best practice to explicitly pass props to an HTML component rather than use the spread operator. The spread operator risks passing invalid HTML props to an HTML element, which can cause console warnings or worse, give malicious... Lint
medium opengrep/javascript.lang.best-practice.javascript-confirm components/QSOTable.tsx:321 found confirm() call; should this be in production code? Lint
medium opengrep/python.lang.correctness.unchecked-subprocess-call ezfd-rig-bridge.py:271 This is not checking the return value of this subprocess call; if it fails no exception will be raised. Consider subprocess.check_call() instead Lint
medium opengrep/python.lang.correctness.unchecked-subprocess-call ezfd-rig-bridge.py:66 This is not checking the return value of this subprocess call; if it fails no exception will be raised. Consider subprocess.check_call() instead Lint
medium opengrep/javascript.lang.correctness.no-stringify-keys lib/realtime.ts:115 JSON stringify does not produce a stable key ordering, and should not be relied on for producing object keys. Consider using json-stable-stringify instead. Lint
medium opengrep/python.lang.correctness.unchecked-subprocess-call public/ezfd-rig-bridge.py:271 This is not checking the return value of this subprocess call; if it fails no exception will be raised. Consider subprocess.check_call() instead Lint
medium opengrep/python.lang.correctness.unchecked-subprocess-call public/ezfd-rig-bridge.py:66 This is not checking the return value of this subprocess call; if it fails no exception will be raised. Consider subprocess.check_call() instead Lint
medium opengrep/javascript.lang.best-practice.lazy-load-module scripts/_compile-ts.cjs:59 Lazy loading can complicate code bundling if care is not taken, also `require`s are run synchronously by Node.js. If they are called from within a function, it may block other requests from being handled at a more critical time. The... Lint
medium opengrep/javascript.lang.correctness.no-stringify-keys scripts/test-merge.cjs:135 JSON stringify does not produce a stable key ordering, and should not be relied on for producing object keys. Consider using json-stable-stringify instead. Lint
medium opengrep/javascript.lang.correctness.no-stringify-keys scripts/test-merge.cjs:136 JSON stringify does not produce a stable key ordering, and should not be relied on for producing object keys. Consider using json-stable-stringify instead. Lint
medium opengrep/javascript.lang.correctness.no-stringify-keys scripts/test-merge.cjs:137 JSON stringify does not produce a stable key ordering, and should not be relied on for producing object keys. Consider using json-stable-stringify instead. Lint
medium zizmor/dependabot-cooldown .github/dependabot.yml:26 insufficient cooldown in Dependabot updates [confidence high] CI workflows (zizmor)
medium zizmor/dependabot-cooldown .github/dependabot.yml:8 insufficient cooldown in Dependabot updates [confidence high] CI workflows (zizmor)
medium zizmor/excessive-permissions .github/workflows/ci.yml:15 overly broad permissions [confidence medium] CI workflows (zizmor)
medium zizmor/excessive-permissions .github/workflows/ci.yml:213 overly broad permissions [confidence medium] CI workflows (zizmor)
medium zizmor/excessive-permissions .github/workflows/ci.yml:26 overly broad permissions [confidence medium] CI workflows (zizmor)
medium zizmor/excessive-permissions .github/workflows/ci.yml:266 overly broad permissions [confidence medium] CI workflows (zizmor)
medium zizmor/excessive-permissions .github/workflows/ci.yml:329 overly broad permissions [confidence medium] CI workflows (zizmor)
medium opengrep/typescript.react.security.audit.react-dangerouslysetinnerhtml components/DocBody.tsx:12 Detection of dangerouslySetInnerHTML from non-constant definition. This can inadvertently expose users to cross-site scripting (XSS) attacks if this comes from user-provided input. If you have to use dangerouslySetInnerHTML, consider... Static analysis (opengrep)
medium opengrep/javascript.lang.security.html-in-template-string components/MapView.tsx:167 This template literal looks like HTML and has interpolated variables. These variables are not HTML-encoded by default. If the variables contain HTML tags, these may be interpreted by the browser, resulting in cross-site scripting (XSS).... Static analysis (opengrep)
medium opengrep/bash.lang.security.ifs-tampering deploy.sh:21 The special variable IFS affects how splitting takes place when expanding unquoted variables. Don't set it globally. Prefer a dedicated utility such as 'cut' or 'awk' if you need to split input data. If you must use 'read', set IFS... Static analysis (opengrep)
medium opengrep/bash.curl.security.curl-pipe-bash deploy.sh:289 Data is being piped into `bash` from a `curl` command. An attacker with control of the server in the `curl` command could inject malicious code into the pipe, resulting in a system compromise. Avoid piping untrusted data into `bash` or... Static analysis (opengrep)
medium opengrep/bash.lang.security.ifs-tampering ezfd-admin.sh:15 The special variable IFS affects how splitting takes place when expanding unquoted variables. Don't set it globally. Prefer a dedicated utility such as 'cut' or 'awk' if you need to split input data. If you must use 'read', set IFS... Static analysis (opengrep)
medium opengrep/python.lang.security.audit.dynamic-urllib-use-detected ezfd-rig-bridge.py:201 Detected a dynamic value being used with urllib. urllib supports 'file://' schemes, so a dynamic value controlled by a malicious actor may allow them to read arbitrary files. Audit uses of urllib calls to ensure user data cannot control... Static analysis (opengrep)
medium opengrep/python.lang.security.audit.dynamic-urllib-use-detected ezfd-rig-bridge.py:231 Detected a dynamic value being used with urllib. urllib supports 'file://' schemes, so a dynamic value controlled by a malicious actor may allow them to read arbitrary files. Audit uses of urllib calls to ensure user data cannot control... Static analysis (opengrep)
medium opengrep/javascript.lang.security.audit.detect-non-literal-regexp lib/clockSource.ts:75 RegExp() called with a `k` function argument, this might allow an attacker to cause a Regular Expression Denial-of-Service (ReDoS) within your application as RegExP blocks the main thread. For this reason, it is recommended to use... Static analysis (opengrep)
medium opengrep/javascript.lang.security.html-in-template-string lib/docs.ts:204 This template literal looks like HTML and has interpolated variables. These variables are not HTML-encoded by default. If the variables contain HTML tags, these may be interpreted by the browser, resulting in cross-site scripting (XSS).... Static analysis (opengrep)
medium opengrep/javascript.lang.security.html-in-template-string lib/docs.ts:209 This template literal looks like HTML and has interpolated variables. These variables are not HTML-encoded by default. If the variables contain HTML tags, these may be interpreted by the browser, resulting in cross-site scripting (XSS).... Static analysis (opengrep)
medium opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename lib/docs.ts:238 Detected that function argument `name` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled... Static analysis (opengrep)
medium opengrep/javascript.lang.security.audit.path-traversal.path-join-resolve-traversal lib/docs.ts:238 Detected possible user input going into a `path.join` or `path.resolve` function. This could possibly lead to a path traversal vulnerability, where the attacker can access arbitrary files stored in the file system. Instead, be sure to... Static analysis (opengrep)
medium opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename lib/docs.ts:52 Detected that function argument `slug` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled... Static analysis (opengrep)
medium opengrep/javascript.lang.security.audit.path-traversal.path-join-resolve-traversal lib/docs.ts:52 Detected possible user input going into a `path.join` or `path.resolve` function. This could possibly lead to a path traversal vulnerability, where the attacker can access arbitrary files stored in the file system. Instead, be sure to... Static analysis (opengrep)
medium osv/GHSA-g3hv-75wg-m249 package-lock.json [email protected] (npm) is affected by GHSA-g3hv-75wg-m249 Dependencies (osv-scanner)
medium opengrep/python.lang.security.audit.dynamic-urllib-use-detected public/ezfd-rig-bridge.py:201 Detected a dynamic value being used with urllib. urllib supports 'file://' schemes, so a dynamic value controlled by a malicious actor may allow them to read arbitrary files. Audit uses of urllib calls to ensure user data cannot control... Static analysis (opengrep)
medium opengrep/python.lang.security.audit.dynamic-urllib-use-detected public/ezfd-rig-bridge.py:231 Detected a dynamic value being used with urllib. urllib supports 'file://' schemes, so a dynamic value controlled by a malicious actor may allow them to read arbitrary files. Audit uses of urllib calls to ensure user data cannot control... Static analysis (opengrep)
medium opengrep/javascript.lang.security.audit.detect-non-literal-require scripts/_compile-ts.cjs:59 Detected the use of require(variable). Calling require with a non-literal argument might allow an attacker to load and run arbitrary code, or access arbitrary files. [confidence low] Static analysis (opengrep)
medium opengrep/javascript.lang.security.audit.path-traversal.path-join-resolve-traversal scripts/_compile-ts.cjs:59 Detected possible user input going into a `path.join` or `path.resolve` function. This could possibly lead to a path traversal vulnerability, where the attacker can access arbitrary files stored in the file system. Instead, be sure to... Static analysis (opengrep)
medium opengrep/javascript.lang.security.html-in-template-string scripts/build-site.cjs:120 This template literal looks like HTML and has interpolated variables. These variables are not HTML-encoded by default. If the variables contain HTML tags, these may be interpreted by the browser, resulting in cross-site scripting (XSS).... Static analysis (opengrep)
medium opengrep/javascript.lang.security.html-in-template-string scripts/build-site.cjs:122 This template literal looks like HTML and has interpolated variables. These variables are not HTML-encoded by default. If the variables contain HTML tags, these may be interpreted by the browser, resulting in cross-site scripting (XSS).... Static analysis (opengrep)
medium opengrep/javascript.lang.security.html-in-template-string scripts/build-site.cjs:187 This template literal looks like HTML and has interpolated variables. These variables are not HTML-encoded by default. If the variables contain HTML tags, these may be interpreted by the browser, resulting in cross-site scripting (XSS).... Static analysis (opengrep)
medium opengrep/javascript.lang.security.html-in-template-string scripts/build-site.cjs:200 This template literal looks like HTML and has interpolated variables. These variables are not HTML-encoded by default. If the variables contain HTML tags, these may be interpreted by the browser, resulting in cross-site scripting (XSS).... Static analysis (opengrep)
medium opengrep/javascript.lang.security.html-in-template-string scripts/build-site.cjs:367 This template literal looks like HTML and has interpolated variables. These variables are not HTML-encoded by default. If the variables contain HTML tags, these may be interpreted by the browser, resulting in cross-site scripting (XSS).... Static analysis (opengrep)
medium opengrep/javascript.lang.security.html-in-template-string scripts/build-site.cjs:368 This template literal looks like HTML and has interpolated variables. These variables are not HTML-encoded by default. If the variables contain HTML tags, these may be interpreted by the browser, resulting in cross-site scripting (XSS).... Static analysis (opengrep)
medium opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename scripts/build-site.cjs:370 Detected that function argument `d` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled... Static analysis (opengrep)
medium opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename scripts/build-site.cjs:370 Detected that function argument `d` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled... Static analysis (opengrep)
medium opengrep/javascript.lang.security.html-in-template-string scripts/build-site.cjs:370 This template literal looks like HTML and has interpolated variables. These variables are not HTML-encoded by default. If the variables contain HTML tags, these may be interpreted by the browser, resulting in cross-site scripting (XSS).... Static analysis (opengrep)
medium opengrep/javascript.lang.security.html-in-template-string scripts/build-site.cjs:372 This template literal looks like HTML and has interpolated variables. These variables are not HTML-encoded by default. If the variables contain HTML tags, these may be interpreted by the browser, resulting in cross-site scripting (XSS).... Static analysis (opengrep)
medium opengrep/javascript.lang.security.html-in-template-string scripts/build-site.cjs:377 This template literal looks like HTML and has interpolated variables. These variables are not HTML-encoded by default. If the variables contain HTML tags, these may be interpreted by the browser, resulting in cross-site scripting (XSS).... Static analysis (opengrep)
medium opengrep/javascript.lang.security.html-in-template-string scripts/build-site.cjs:392 This template literal looks like HTML and has interpolated variables. These variables are not HTML-encoded by default. If the variables contain HTML tags, these may be interpreted by the browser, resulting in cross-site scripting (XSS).... Static analysis (opengrep)
medium opengrep/javascript.lang.security.html-in-template-string scripts/build-site.cjs:393 This template literal looks like HTML and has interpolated variables. These variables are not HTML-encoded by default. If the variables contain HTML tags, these may be interpreted by the browser, resulting in cross-site scripting (XSS).... Static analysis (opengrep)
medium opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename scripts/build-site.cjs:422 Detected that function argument `rel` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled... Static analysis (opengrep)
medium opengrep/javascript.lang.security.audit.path-traversal.path-join-resolve-traversal scripts/build-site.cjs:422 Detected possible user input going into a `path.join` or `path.resolve` function. This could possibly lead to a path traversal vulnerability, where the attacker can access arbitrary files stored in the file system. Instead, be sure to... Static analysis (opengrep)
medium opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename scripts/build-site.cjs:445 Detected that function argument `dir` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled... Static analysis (opengrep)
medium opengrep/javascript.lang.security.audit.path-traversal.path-join-resolve-traversal scripts/build-site.cjs:446 Detected possible user input going into a `path.join` or `path.resolve` function. This could possibly lead to a path traversal vulnerability, where the attacker can access arbitrary files stored in the file system. Instead, be sure to... Static analysis (opengrep)
medium opengrep/javascript.lang.security.audit.path-traversal.path-join-resolve-traversal scripts/build-site.cjs:446 Detected possible user input going into a `path.join` or `path.resolve` function. This could possibly lead to a path traversal vulnerability, where the attacker can access arbitrary files stored in the file system. Instead, be sure to... Static analysis (opengrep)
medium opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename scripts/build-site.cjs:455 Detected that function argument `file` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled... Static analysis (opengrep)
medium opengrep/javascript.playwright.security.audit.playwright-goto-injection scripts/record-gifs.cjs:139 If unverified user data can reach the `goto` method it can result in Server-Side Request Forgery vulnerabilities [confidence low] Static analysis (opengrep)
medium opengrep/javascript.playwright.security.audit.playwright-goto-injection scripts/record-gifs.cjs:57 If unverified user data can reach the `goto` method it can result in Server-Side Request Forgery vulnerabilities [confidence low] Static analysis (opengrep)
medium opengrep/javascript.lang.security.audit.path-traversal.path-join-resolve-traversal scripts/record-gifs.cjs:97 Detected possible user input going into a `path.join` or `path.resolve` function. This could possibly lead to a path traversal vulnerability, where the attacker can access arbitrary files stored in the file system. Instead, be sure to... Static analysis (opengrep)
medium opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename scripts/record-gifs.cjs:99 Detected that function argument `out` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled... Static analysis (opengrep)
medium opengrep/javascript.lang.security.audit.path-traversal.path-join-resolve-traversal scripts/record-gifs.cjs:99 Detected possible user input going into a `path.join` or `path.resolve` function. This could possibly lead to a path traversal vulnerability, where the attacker can access arbitrary files stored in the file system. Instead, be sure to... Static analysis (opengrep)
medium opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename scripts/test-changelog-links.cjs:38 Detected that function argument `file` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled... Static analysis (opengrep)
medium opengrep/javascript.lang.security.audit.detect-non-literal-regexp scripts/test-nav.cjs:209 RegExp() called with a `a` function argument, this might allow an attacker to cause a Regular Expression Denial-of-Service (ReDoS) within your application as RegExP blocks the main thread. For this reason, it is recommended to use... Static analysis (opengrep)
medium opengrep/javascript.lang.security.audit.detect-non-literal-regexp scripts/test-nav.cjs:244 RegExp() called with a `l` function argument, this might allow an attacker to cause a Regular Expression Denial-of-Service (ReDoS) within your application as RegExP blocks the main thread. For this reason, it is recommended to use... Static analysis (opengrep)
medium opengrep/javascript.lang.security.html-in-template-string scripts/test-nav.cjs:383 This template literal looks like HTML and has interpolated variables. These variables are not HTML-encoded by default. If the variables contain HTML tags, these may be interpreted by the browser, resulting in cross-site scripting (XSS).... Static analysis (opengrep)
medium opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename scripts/test-nav.cjs:39 Detected that function argument `f` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled... Static analysis (opengrep)
medium opengrep/javascript.lang.security.audit.path-traversal.path-join-resolve-traversal scripts/test-nav.cjs:39 Detected possible user input going into a `path.join` or `path.resolve` function. This could possibly lead to a path traversal vulnerability, where the attacker can access arbitrary files stored in the file system. Instead, be sure to... Static analysis (opengrep)
medium opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename scripts/test-nav.cjs:402 Detected that function argument `dir` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled... Static analysis (opengrep)
medium opengrep/javascript.lang.security.audit.path-traversal.path-join-resolve-traversal scripts/test-nav.cjs:402 Detected possible user input going into a `path.join` or `path.resolve` function. This could possibly lead to a path traversal vulnerability, where the attacker can access arbitrary files stored in the file system. Instead, be sure to... Static analysis (opengrep)
medium opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename scripts/test-nav.cjs:406 Detected that function argument `dir` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled... Static analysis (opengrep)
medium opengrep/javascript.lang.security.audit.path-traversal.path-join-resolve-traversal scripts/test-nav.cjs:406 Detected possible user input going into a `path.join` or `path.resolve` function. This could possibly lead to a path traversal vulnerability, where the attacker can access arbitrary files stored in the file system. Instead, be sure to... Static analysis (opengrep)
medium opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename scripts/test-nav.cjs:43 Detected that function argument `f` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled... Static analysis (opengrep)
medium opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename scripts/test-nav.cjs:460 Detected that function argument `dir` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled... Static analysis (opengrep)
medium opengrep/javascript.lang.security.audit.path-traversal.path-join-resolve-traversal scripts/test-nav.cjs:460 Detected possible user input going into a `path.join` or `path.resolve` function. This could possibly lead to a path traversal vulnerability, where the attacker can access arbitrary files stored in the file system. Instead, be sure to... Static analysis (opengrep)
medium opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename scripts/test-nav.cjs:464 Detected that function argument `dir` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled... Static analysis (opengrep)
medium opengrep/javascript.lang.security.audit.path-traversal.path-join-resolve-traversal scripts/test-nav.cjs:464 Detected possible user input going into a `path.join` or `path.resolve` function. This could possibly lead to a path traversal vulnerability, where the attacker can access arbitrary files stored in the file system. Instead, be sure to... Static analysis (opengrep)
medium opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename scripts/test-sections.cjs:137 Detected that function argument `dir` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled... Static analysis (opengrep)
medium opengrep/javascript.lang.security.audit.path-traversal.path-join-resolve-traversal scripts/test-sections.cjs:137 Detected possible user input going into a `path.join` or `path.resolve` function. This could possibly lead to a path traversal vulnerability, where the attacker can access arbitrary files stored in the file system. Instead, be sure to... Static analysis (opengrep)
medium opengrep/javascript.lang.security.audit.detect-non-literal-fs-filename scripts/test-sections.cjs:26 Detected that function argument `f` has entered the fs module. An attacker could potentially control the location of this file, to include going backwards in the directory with '../'. To address this, ensure that user-controlled... Static analysis (opengrep)
medium opengrep/javascript.lang.security.audit.path-traversal.path-join-resolve-traversal scripts/test-sections.cjs:26 Detected possible user input going into a `path.join` or `path.resolve` function. This could possibly lead to a path traversal vulnerability, where the attacker can access arbitrary files stored in the file system. Instead, be sure to... Static analysis (opengrep)
low opengrep/javascript.lang.correctness.missing-template-string-indicator app/layout.tsx:20 This looks like a JavaScript template string. Are you missing a '$' in front of '{...}'? Lint
low opengrep/javascript.lang.correctness.missing-template-string-indicator app/layout.tsx:20 This looks like a JavaScript template string. Are you missing a '$' in front of '{...}'? Lint
low opengrep/javascript.lang.correctness.missing-template-string-indicator components/CheckoutBoard.tsx:55 This looks like a JavaScript template string. Are you missing a '$' in front of '{...}'? Lint
low opengrep/javascript.lang.correctness.missing-template-string-indicator components/CheckoutBoard.tsx:55 This looks like a JavaScript template string. Are you missing a '$' in front of '{...}'? Lint
low opengrep/javascript.lang.correctness.missing-template-string-indicator components/SlotCoordination.tsx:94 This looks like a JavaScript template string. Are you missing a '$' in front of '{...}'? Lint
low opengrep/javascript.lang.correctness.missing-template-string-indicator components/SlotCoordination.tsx:94 This looks like a JavaScript template string. Are you missing a '$' in front of '{...}'? Lint
low opengrep/javascript.lang.correctness.missing-template-string-indicator components/SummarySheet.tsx:59 This looks like a JavaScript template string. Are you missing a '$' in front of '{...}'? Lint
low opengrep/javascript.lang.correctness.missing-template-string-indicator components/SummarySheet.tsx:59 This looks like a JavaScript template string. Are you missing a '$' in front of '{...}'? Lint
low opengrep/bash.lang.correctness.unquoted-variable-expansion-in-command ezfd-admin.sh:1128 Variable expansions must be double-quoted so as to prevent being split into multiple pieces according to whitespace or whichever separator is specified by the IFS variable. If you really wish to split the variable's contents, you may... Lint
low opengrep/bash.lang.correctness.unquoted-variable-expansion-in-command ezfd-admin.sh:1131 Variable expansions must be double-quoted so as to prevent being split into multiple pieces according to whitespace or whichever separator is specified by the IFS variable. If you really wish to split the variable's contents, you may... Lint
low opengrep/bash.lang.correctness.unquoted-command-substitution-in-command ezfd-admin.sh:1138 The result of command substitution $(...) or `...`, if unquoted, is split on whitespace or other separators specified by the IFS variable. You should surround it with double quotes to avoid splitting the result. Lint
low opengrep/bash.lang.correctness.unquoted-command-substitution-in-command ezfd-admin.sh:1168 The result of command substitution $(...) or `...`, if unquoted, is split on whitespace or other separators specified by the IFS variable. You should surround it with double quotes to avoid splitting the result. Lint
low opengrep/bash.lang.correctness.unquoted-command-substitution-in-command ezfd-admin.sh:1180 The result of command substitution $(...) or `...`, if unquoted, is split on whitespace or other separators specified by the IFS variable. You should surround it with double quotes to avoid splitting the result. Lint
low opengrep/bash.lang.correctness.unquoted-command-substitution-in-command ezfd-admin.sh:1190 The result of command substitution $(...) or `...`, if unquoted, is split on whitespace or other separators specified by the IFS variable. You should surround it with double quotes to avoid splitting the result. Lint
low opengrep/bash.lang.correctness.unquoted-command-substitution-in-command ezfd-admin.sh:1204 The result of command substitution $(...) or `...`, if unquoted, is split on whitespace or other separators specified by the IFS variable. You should surround it with double quotes to avoid splitting the result. Lint
low opengrep/bash.lang.correctness.unquoted-command-substitution-in-command ezfd-admin.sh:1205 The result of command substitution $(...) or `...`, if unquoted, is split on whitespace or other separators specified by the IFS variable. You should surround it with double quotes to avoid splitting the result. Lint
low opengrep/bash.lang.correctness.unquoted-variable-expansion-in-command ezfd-admin.sh:1207 Variable expansions must be double-quoted so as to prevent being split into multiple pieces according to whitespace or whichever separator is specified by the IFS variable. If you really wish to split the variable's contents, you may... Lint
low opengrep/bash.lang.correctness.unquoted-command-substitution-in-command ezfd-admin.sh:1231 The result of command substitution $(...) or `...`, if unquoted, is split on whitespace or other separators specified by the IFS variable. You should surround it with double quotes to avoid splitting the result. Lint
low opengrep/bash.lang.correctness.unquoted-command-substitution-in-command ezfd-admin.sh:1299 The result of command substitution $(...) or `...`, if unquoted, is split on whitespace or other separators specified by the IFS variable. You should surround it with double quotes to avoid splitting the result. Lint
low opengrep/bash.lang.correctness.unquoted-command-substitution-in-command ezfd-admin.sh:1301 The result of command substitution $(...) or `...`, if unquoted, is split on whitespace or other separators specified by the IFS variable. You should surround it with double quotes to avoid splitting the result. Lint
low opengrep/bash.lang.correctness.unquoted-variable-expansion-in-command ezfd-admin.sh:1324 Variable expansions must be double-quoted so as to prevent being split into multiple pieces according to whitespace or whichever separator is specified by the IFS variable. If you really wish to split the variable's contents, you may... Lint
low opengrep/javascript.lang.correctness.useless-assignment scripts/record-gifs.cjs:18 `const` is assigned twice; the first assignment is useless Lint
low opengrep/bash.lang.correctness.unquoted-variable-expansion-in-command scripts/test-docker.sh:149 Variable expansions must be double-quoted so as to prevent being split into multiple pieces according to whitespace or whichever separator is specified by the IFS variable. If you really wish to split the variable's contents, you may... Lint
low opengrep/bash.lang.correctness.unquoted-command-substitution-in-command scripts/test-docker.sh:167 The result of command substitution $(...) or `...`, if unquoted, is split on whitespace or other separators specified by the IFS variable. You should surround it with double quotes to avoid splitting the result. Lint
low opengrep/bash.lang.correctness.unquoted-command-substitution-in-command scripts/test-e2e.sh:349 The result of command substitution $(...) or `...`, if unquoted, is split on whitespace or other separators specified by the IFS variable. You should surround it with double quotes to avoid splitting the result. Lint
low opengrep/bash.lang.correctness.unquoted-variable-expansion-in-command scripts/test-restore.sh:26 Variable expansions must be double-quoted so as to prevent being split into multiple pieces according to whitespace or whichever separator is specified by the IFS variable. If you really wish to split the variable's contents, you may... Lint
low opengrep/bash.lang.correctness.unquoted-variable-expansion-in-command scripts/test-restore.sh:43 Variable expansions must be double-quoted so as to prevent being split into multiple pieces according to whitespace or whichever separator is specified by the IFS variable. If you really wish to split the variable's contents, you may... Lint
low opengrep/bash.lang.correctness.unquoted-variable-expansion-in-command scripts/test-restore.sh:53 Variable expansions must be double-quoted so as to prevent being split into multiple pieces according to whitespace or whichever separator is specified by the IFS variable. If you really wish to split the variable's contents, you may... Lint
low zizmor/artipacked .github/workflows/ci.yml:228 credential persistence through GitHub Actions artifacts [confidence low] CI workflows (zizmor)
low zizmor/artipacked .github/workflows/ci.yml:269 credential persistence through GitHub Actions artifacts [confidence low] CI workflows (zizmor)
low zizmor/artipacked .github/workflows/ci.yml:332 credential persistence through GitHub Actions artifacts [confidence low] CI workflows (zizmor)
low zizmor/artipacked .github/workflows/ci.yml:41 credential persistence through GitHub Actions artifacts [confidence low] CI workflows (zizmor)
low zizmor/artipacked .github/workflows/pages.yml:32 credential persistence through GitHub Actions artifacts [confidence low] CI workflows (zizmor)

Tools and coverage

Every analyzer that ran on this commit. A failed or skipped tool is a coverage gap: its share of the score is left out and the coverage figure drops.

AnalyzerPillarStatusVersionFindingsNote
AI tool configurationAI provenanceoksignatures-v10
Explicit AI attributionAI provenanceoksignatures-v10
Release velocityAI provenanceskipped—0
Coding styleAI provenanceok—0
Commit velocityAI provenanceokprov-40
Findings in AI-written linesAI provenanceokgit-blame0
Complexity (lizard)Code qualityoklizard 1.25.10
DocumentationCode qualityok—0
Duplication (jscpd)Code qualityokrepotrust-dup-w60
LintCode qualityokopengrep 1.33.1; rules f1d2b562b41448
Tests and CICode qualityok—0
Type safetyCode qualityok—0
CI workflows (zizmor)Securityokzizmor 1.32.024
Dependencies (osv-scanner)Securityokosv-scanner version: 2.7.12
Release downloadsSecurityok—0
Security postureSecurityok—0
Package registriesSecurityok—0
Static analysis (opengrep)Securityokopengrep 1.33.1; rules f1d2b562b41473
OpenSSF ScorecardSecurityskipped—0no published OpenSSF Scorecard result for this repo
Secrets (gitleaks)Securityokgitleaks 8.30.10

Score history

Scores from different scoring versions aren't directly comparable.

ScoredCommitScoringAI provenanceQualitySecurity
2026-11-1472083165c9b3prov-5+qual-2+sec-2100%5270
2026-11-1472083165c9b3prov-4+qual-2+sec-2100%5270

Embed a badge

Maintainers can show these in a README. Badges update when the repository is re-scored.

[![RepoTrust ai](https://repotrust.synapticcyber.com/badge/github.com/nreed97/EzFD/ai.svg)](https://repotrust.synapticcyber.com/r/github.com/nreed97/EzFD/)
[![RepoTrust quality](https://repotrust.synapticcyber.com/badge/github.com/nreed97/EzFD/quality.svg)](https://repotrust.synapticcyber.com/r/github.com/nreed97/EzFD/)
[![RepoTrust security](https://repotrust.synapticcyber.com/badge/github.com/nreed97/EzFD/security.svg)](https://repotrust.synapticcyber.com/r/github.com/nreed97/EzFD/)
Full text report
  • Repository: https://github.com/nreed97/EzFD
  • Commit: 72083165c9b33312033df3af08970cdafbf00a4d
  • Generated: 2026-11-14T14:52:06+00:00
  • Scorer 0.1.0, scoring prov-5+qual-2+sec-2, report schema v2

Scores

Unreviewed AI code risk: a large share of this code is explicitly AI-attributed, and its tests or review process are weak while quality or security scores are low.

Pillar Score Signal Confidence Coverage
AI provenance (estimated AI-generated share) 100 explicit 95% 100%
Code quality 52 weak 90% 100%
Security 70 adequate 85% 100%

AI provenance

Explicit AI attribution on 100% of first-party code added; an estimated 100% including velocity signals.

  • Explicitly attributed share (lower bound): 99.7%
  • Unattributed share in AI-consistent velocity bursts: 0.3%
  • Estimated AI-generated share: 99.7%
AI tool Attributed commits Lines added
Claude Code 220 37,878
  • AI tooling configured in repo: claude-code, generic-agent

Current source lines last changed by AI-attributed commits: 31,713 of 31,764.

Too few lines in one group to compare finding densities.

  • Stylometry index: 0.11 per 1,000 lines (narrated steps 1, placeholders 0, assistant phrasing 0, emoji 5). Reported as a signal, not scored.
Month Lines added Attributed to AI
2026-06 8,278 98%
2026-07 3,946 100%
2026-08 13,616 100%
2026-09 9,355 100%
2026-10 2,811 100%
2026-11 2 100%

Evidence

AI provenance describes how code was produced; it is not a quality judgment. Unless attribution is explicit, these are signals consistent with AI generation, not proof. Squash/rebase workflows, imported code, and rewritten history reduce accuracy.

Code quality

Code quality is weak: test-to-source ratio 0.00, no CI test run detected; 34% of function code in complex or long functions; 8% duplicated lines. Weakest area: testing.

Area Score
Complexity (lizard) 36
Duplication 61
Code smells (Opengrep) 75
Tests and CI 25
Documentation 85
Type safety 95
Process (Scorecard review/maintenance) n/a
  • Functions: 1,541; mean complexity 2.8, 90th percentile 6; 37 complex and 19 long functions
  • Duplicated lines: 8.1% of 25,002 compared
  • Tests: 0 test lines for 31,764 source lines (ratio 0.00); CI test commands: none detected; 0% of recent source commits also change tests
  • Docs missing or thin: contributing

Most complex functions:

Security

Security posture is adequate: 2 known vulnerabilities in 2 dependencies; 12 high-severity SAST findings; 12 high-severity workflow issues. Weakest area: ci actions.

Area Score
Secrets (gitleaks, tree + history) 100
Static analysis (Opengrep) 74
Vulnerable dependencies (OSV) 83
CI workflows (zizmor) 6
Posture (policy, updates, signing, lockfiles) 60
OpenSSF Scorecard n/a
  • Known vulnerabilities: 2 in 2 packages (critical 0, high 1, medium 1, low 0)

  • Posture checks passed: dependency updates, signed commits, lockfiles; missing: security policy

Top findings

Severity Finding Location
high opengrep/dockerfile.security.missing-user-entrypoint: By not specifying a USER, a program in the container may run as 'root'. This is a security hazard. If an attacker can control a process running as root, they may have control over the container. Ensure that the last USER in a Dockerfile is a USER other than 'root'. [confidence medium] Dockerfile:30
high opengrep/python.lang.security.audit.dangerous-subprocess-use-audit: Detected subprocess function 'call' without a static string. If this data can be controlled by a malicious actor, it may be an instance of command injection. Audit the use of this call to ensure it is not controllable by an external resource. You may consider using 'shlex.escape()'. [confidence low] ezfd-rig-bridge.py:66
high opengrep/python.lang.security.audit.dangerous-os-exec-audit: Found dynamic content when spawning a process. This is dangerous if external data can reach this function call because it allows a malicious actor to execute commands. Ensure no external data reaches here. [confidence low] ezfd-rig-bridge.py:69
high opengrep/python.lang.security.audit.dangerous-subprocess-use-audit: Detected subprocess function 'run' without a static string. If this data can be controlled by a malicious actor, it may be an instance of command injection. Audit the use of this call to ensure it is not controllable by an external resource. You may consider using 'shlex.escape()'. [confidence low] ezfd-rig-bridge.py:73
high opengrep/python.lang.security.audit.dangerous-subprocess-use-audit: Detected subprocess function 'check_call' without a static string. If this data can be controlled by a malicious actor, it may be an instance of command injection. Audit the use of this call to ensure it is not controllable by an external resource. You may consider using 'shlex.escape()'. [confidence low] ezfd-rig-bridge.py:310
high opengrep/python.lang.security.audit.dangerous-subprocess-use-audit: Detected subprocess function 'Popen' without a static string. If this data can be controlled by a malicious actor, it may be an instance of command injection. Audit the use of this call to ensure it is not controllable by an external resource. You may consider using 'shlex.escape()'. [confidence low] ezfd-rig-bridge.py:486
high opengrep/javascript.node-crypto.security.gcm-no-tag-length: The call to 'createDecipheriv' with the Galois Counter Mode (GCM) mode of operation is missing an expected authentication tag length. If the expected authentication tag length is not specified or otherwise checked, the application might be tricked into verifying a shorter-than-expected authenticatio [confidence medium] lib/crypto.ts:30
high opengrep/python.lang.security.audit.dangerous-subprocess-use-audit: Detected subprocess function 'call' without a static string. If this data can be controlled by a malicious actor, it may be an instance of command injection. Audit the use of this call to ensure it is not controllable by an external resource. You may consider using 'shlex.escape()'. [confidence low] public/ezfd-rig-bridge.py:66
high opengrep/python.lang.security.audit.dangerous-os-exec-audit: Found dynamic content when spawning a process. This is dangerous if external data can reach this function call because it allows a malicious actor to execute commands. Ensure no external data reaches here. [confidence low] public/ezfd-rig-bridge.py:69
high opengrep/python.lang.security.audit.dangerous-subprocess-use-audit: Detected subprocess function 'run' without a static string. If this data can be controlled by a malicious actor, it may be an instance of command injection. Audit the use of this call to ensure it is not controllable by an external resource. You may consider using 'shlex.escape()'. [confidence low] public/ezfd-rig-bridge.py:73
high opengrep/python.lang.security.audit.dangerous-subprocess-use-audit: Detected subprocess function 'check_call' without a static string. If this data can be controlled by a malicious actor, it may be an instance of command injection. Audit the use of this call to ensure it is not controllable by an external resource. You may consider using 'shlex.escape()'. [confidence low] public/ezfd-rig-bridge.py:310
high opengrep/python.lang.security.audit.dangerous-subprocess-use-audit: Detected subprocess function 'Popen' without a static string. If this data can be controlled by a malicious actor, it may be an instance of command injection. Audit the use of this call to ensure it is not controllable by an external resource. You may consider using 'shlex.escape()'. [confidence low] public/ezfd-rig-bridge.py:486
high osv/GHSA-mrhx-c7xc-m3w5: [email protected] (npm) is affected by GHSA-mrhx-c7xc-m3w5 package-lock.json
high zizmor/unpinned-uses: unpinned action reference [confidence high] .github/workflows/ci.yml:41
high zizmor/unpinned-uses: unpinned action reference [confidence high] .github/workflows/ci.yml:43
high zizmor/unpinned-uses: unpinned action reference [confidence high] .github/workflows/ci.yml:228
high zizmor/unpinned-uses: unpinned action reference [confidence high] .github/workflows/ci.yml:230
high zizmor/unpinned-uses: unpinned action reference [confidence high] .github/workflows/ci.yml:269
high zizmor/unpinned-uses: unpinned action reference [confidence high] .github/workflows/ci.yml:332
high zizmor/excessive-permissions: overly broad permissions [confidence high] .github/workflows/pages.yml:19
high zizmor/excessive-permissions: overly broad permissions [confidence high] .github/workflows/pages.yml:20
high zizmor/unpinned-uses: unpinned action reference [confidence high] .github/workflows/pages.yml:32
high zizmor/unpinned-uses: unpinned action reference [confidence high] .github/workflows/pages.yml:34
high zizmor/unpinned-uses: unpinned action reference [confidence high] .github/workflows/pages.yml:44
high zizmor/unpinned-uses: unpinned action reference [confidence high] .github/workflows/pages.yml:56

Static signals only: the scorer never runs the project's code. Secret findings are pattern matches that were not verified, and secret values are never stored.

Repository profile

  • Source lines: 31,764; test lines: 0
Language Lines
TypeScript 17,982
JavaScript 7,026
Shell 3,867
Python 1,710
SQL 1,179