Leaderboard github.com
ccieblogger/netraven
AI coded multi-service, containerized platform
AI provenance
0%
possible
- Confidence
- 65%
- Coverage
- 100%
Estimated share of AI-generated code. Explicit attribution is a lower bound.
Code quality
50/100
weak
- Confidence
- 90%
- Coverage
- 100%
Complexity, duplication, lint density, tests, CI, docs and review process.
Security
34/100
poor
- Confidence
- 85%
- Coverage
- 100%
Secrets, static analysis, vulnerable dependencies, CI and supply-chain posture.
AI provenance
0% possible
Weak signals consistent with AI-assisted development. 2 commit(s) carry explicit AI attribution, too few to characterize the codebase. Comments and strings use phrasing typical of LLM-written code (see the coding style evidence).
How the score is built
- Explicitly attributed share0%
- Unattributed share in AI-pace bursts60%
- Estimated AI-generated share0%
- AI tool configuration files3
- Work sessions at AI pace7
- Releases at AI pace0
- Coding-style index (1.0+ means possible)1.26
Attributed AI tools
| Tool | Commits | Lines added | First seen | Last seen |
|---|---|---|---|---|
| GitHub Copilot coding agent | 2 | 2 | 2025-04-17 | 2025-04-17 |
Lines added per month all AI-attributed share
- 2025-0460,112 · 0% AI
- 2025-059,917 · 0% AI
Findings in AI-attributed lines vs the rest
From git blame: 2 lines trace to AI-attributed commits, 24,959 to others. Too few lines in one group for a fair comparison. Reported, not scored.
| Findings per 1,000 lines | AI-attributed | Other | Ratio |
|---|---|---|---|
| Code quality | 0.00 | 3.37 | — |
| Security | 0.00 | 0.20 | — |
Evidence by analyzer
Explicit AI attributionok3 items
- GitHub Copilot coding agent: 2 attributed commits, 2 lines added
- GitHub Copilot coding agent: trailer 'Co-authored-by: Copilot'
- GitHub Copilot coding agent: trailer 'Co-authored-by: Copilot'
- attributed_commit_share
- 0.4%
- attributed_commits
- 2
- attributed_loc
- 2
- attributed_loc_share
- 0.0%
- commits
- 457
- effective_loc
- 70,029
- tools_detected
- 1
AI tool configurationok3 items
- .cursor/rules/tech-stack.mdc (cursor configuration)
- .cursor/rules/utility-scripts.mdc (cursor configuration)
- .github/copilot-instructions.md (github-copilot configuration)
- artifacts
- 3
- earliest_adoption
- 2025-04-13
- tools_configured
- 2
- workflow_agents
- 0
Commit velocityok7 items
- 24,228 lines of first-party code in ~4.0h (6,057 lines/hour, 1 commit session)
- 2,769 lines of first-party code in ~1.5h (1,824 lines/hour, 1 commit session)
- 6,181 lines of first-party code in ~3.5h (1,783 lines/hour, 9 commit session)
- 1,289 lines of first-party code in ~1.0h (1,351 lines/hour, 1 commit session)
- 4,392 lines of first-party code in ~5.0h (871 lines/hour, 6 commit session)
- 1,147 lines of first-party code in ~1.4h (801 lines/hour, 2 commit session)
- 2,122 lines of first-party code in ~3.1h (683 lines/hour, 18 commit session)
- excluded_import_loc
- 0
- flagged_loc
- 42,128
- flagged_loc_share
- 60.2%
- flagged_units
- 7
- max_loc_per_hour
- 6,057
- measured_loc
- 70,029
- median_loc_per_hour
- 103.72
- pr_timed_units
- 0
- pre_ai_era_burst_loc
- 0
- pre_ai_era_bursts
- 0
- pre_ai_era_measured_loc
- 0
- work_units
- 127
Release velocityok
- flagged_releases
- 0
- max_loc_per_day
- 65,142.90
- releases
- 13
Coding styleok7 items
- placeholder or demo-only phrasing: icon: 'NetworkCheckIcon', // Placeholder, replace with actual icon component if needed
- placeholder or demo-only phrasing: # In a real system, this would push config_data to the device.
- step-by-step narration comment: # Next, try .password property (not a method)
- assistant-style phrasing left in code: Key features:
- placeholder or demo-only phrasing: # # Replace with actual details for a test device ONLY for local testing
- assistant-style phrasing left in code: Key features:
- assistant-style phrasing left in code: Key features:
- count:assistant_voice
- 3
- count:emoji_in_code
- 37
- count:narrated_steps
- 1
- count:placeholder
- 3
- files:assistant_voice
- 3
- files:emoji_in_code
- 10
- files:narrated_steps
- 1
- files:placeholder
- 3
- index
- 1.26
- lines_scanned
- 24,961
- per_kloc:assistant_voice
- 0.12
- per_kloc:emoji_in_code
- 1.48
- per_kloc:narrated_steps
- 0.04
- per_kloc:placeholder
- 0.12
Findings in AI-written linesok
- ai_lines
- 2
- blame_failures
- 0
- files_blamed
- 229
- other_lines
- 24,959
- quality:ai_findings
- 0
- quality:ai_per_kloc
- 0
- quality:other_findings
- 84
- quality:other_per_kloc
- 3.37
- security:ai_findings
- 0
- security:ai_per_kloc
- 0
- security:other_findings
- 5
- security:other_per_kloc
- 0.20
Code quality
50 weak
Code quality is weak: test-to-source ratio 0.29, no CI test run detected; 20% of function code in complex or long functions; 8% duplicated lines. Weakest area: type safety.
How the score is built
- Complexity56
- Duplication61
- Lint and smells61
- Tests and CI38
- Documentation65
- Type safety0
- Review processnot measured
Evidence by analyzer
Complexity (lizard)ok10 items
- dispatch_tasks in netraven/worker/dispatcher.py: complexity 29, 199 lines
- bulk_import_devices in netraven/api/routers/devices.py: complexity 25, 81 lines
- update_device in netraven/api/routers/devices.py: complexity 25, 79 lines
- run_job in netraven/worker/runner.py: complexity 24, 173 lines
- get_scheduled_jobs in netraven/api/routers/jobs.py: complexity 23, 33 lines
- run_command in netraven/worker/backends/netmiko_driver.py: complexity 21, 180 lines
- get_recent_jobs in netraven/api/routers/jobs.py: complexity 20, 34 lines
- log in netraven/utils/unified_logger.py: complexity 20, 41 lines
- validateForm in frontend/src/components/JobFormModal.vue: complexity 18, 41 lines
- (anonymous) in frontend/src/pages/Dashboard.vue: complexity 18, 42 lines
- complex_functions
- 14
- function_nloc
- 8,631
- functions
- 846
- long_functions
- 7
- many_param_functions
- 6
- mean_ccn
- 2.95
- p90_ccn
- 6
- risky_nloc_share
- 19.6%
Duplication (jscpd)ok10 items
- 6+ duplicated lines: docker/api/entrypoint.sh:1 and docker/worker/entrypoint.sh:1
- 6+ duplicated lines: docker/scheduler/entrypoint.sh:7 and docker/worker/entrypoint.sh:14
- 6+ duplicated lines: frontend/src/components/ConnectionLogTable.vue:4 and frontend/src/components/JobLogTable.vue:4
- 6+ duplicated lines: frontend/src/components/CredentialFormModal.vue:1 and frontend/src/components/TagFormModal.vue:1
- 6+ duplicated lines: frontend/src/components/CredentialFormModal.vue:76 and frontend/src/components/DeleteConfirmationModal.vue:16
- 6+ duplicated lines: frontend/src/components/CredentialSelector.vue:3 and frontend/src/components/TagSelector.vue:3
- 6+ duplicated lines: frontend/src/components/CredentialSelector.vue:91 and frontend/src/components/FormField.vue:71
- 6+ duplicated lines: frontend/src/components/DeviceTable.vue:1 and frontend/src/components/dashboard/DeviceInventoryTable.vue:1
- 6+ duplicated lines: frontend/src/components/JobLogTable.vue:58 and frontend/src/pages/JobLogs.vue:170
- 6+ duplicated lines: frontend/src/components/JobMonitor.vue:125 and frontend/src/components/JobMonitor.vue:221
- compared_lines
- 19,181
- duplicated_lines
- 1,599
- duplicated_share
- 8.3%
- files
- 229
Lintok
- category:best-practice
- 7
- category:correctness
- 50
- category:maintainability
- 27
- findings
- 84
- scanned_lines
- 24,961
- weighted_findings
- 50
Tests and CIok
- check:ci_present
- no
- check:ci_runs_lint
- no
- check:ci_runs_tests
- no
- check:has_tests
- yes
- check:test_ratio
- no
- check:tests_cochange
- no
- ci_files
- 0
- cochange_commits
- 243
- cochange_share
- 9.0%
- source_lines
- 24,961
- test_lines
- 7,288
- test_ratio
- 0.29
Documentationok2 items
- README.md
README.md - LICENSE
LICENSE
- check:changelog
- no
- check:contributing
- no
- check:license
- yes
- check:readme
- yes
- readme_lines
- 115
Type safetyok
- check:low_escape_density
- no
- check:strict_config
- no
- escapes
- 95
- escapes_per_kloc
- 8.56
Security
34 poor
Security posture is poor: 0 possible secret(s) in the tree, 3 only in history; 181 known vulnerabilities in 41 dependencies; 8 high-severity SAST findings. Weakest area: posture.
How the score is built
- Secrets37
- Static analysis (SAST)82
- Vulnerable dependencies1
- CI workflowsnot measured
- Security posture0
- OpenSSF Scorecardnot measured
Evidence by analyzer
OpenSSF Scorecardskipped
no published OpenSSF Scorecard result for this repo
Package registriesok
- checked
- 46
- declared
- 46
- lookup_errors
- 0
- missing
- 0
- recent
- 0
Secrets (gitleaks)ok
- secrets_current
- 0
- secrets_history
- 3
- secrets_low_confidence
- 1
- secrets_nonprod
- 14
Static analysis (opengrep)ok
- findings
- 12
- findings_high
- 8
- findings_low
- 1
- findings_medium
- 3
- parse_errors
- 0
- scanned_lines
- 24,961
- weighted_findings
- 14.16
Dependencies (osv-scanner)ok
- penalty
- 311
- vulnerabilities
- 181
- vulnerable_packages
- 41
- vulns_critical
- 8
- vulns_high
- 99
- vulns_low
- 11
- vulns_medium
- 62
- vulns_unknown
- 1
CI workflows (zizmor)skipped
Security postureok1 item
- package.json has no lockfile alongside it (unpinned dependencies)
package.json
- check:dependency_updates
- no
- check:lockfiles
- no
- check:security_policy
- no
- check:signed_commits
- no
- signed_commit_share
- 0.0%
- unpinned_manifests
- 1
Release downloadsok
- binary_assets
- 0
- signals
- 0
- suspicious
- 0
Findings
8 critical108 high104 medium75 low
| Severity | Rule | Location | Message | Tool |
|---|---|---|---|---|
| critical | osv/GHSA-fjxv-7rqg-78g4 |
frontend/package-lock.json | [email protected] (npm) is affected by GHSA-fjxv-7rqg-78g4 | Dependencies (osv-scanner) |
| critical | osv/GHSA-wf6x-7x77-mvgw |
frontend/package-lock.json | [email protected] (npm) is affected by GHSA-wf6x-7x77-mvgw | Dependencies (osv-scanner) |
| critical | osv/GHSA-284h-m62q-gf8w |
poetry.lock | [email protected] (PyPI) is affected by PYSEC-2026-3786, GHSA-284h-m62q-gf8w | Dependencies (osv-scanner) |
| critical | osv/GHSA-3qf3-8w2g-rqmx |
poetry.lock | [email protected] (PyPI) is affected by PYSEC-2026-4298, GHSA-3qf3-8w2g-rqmx | Dependencies (osv-scanner) |
| critical | osv/GHSA-6q48-6c7w-9gw2 |
poetry.lock | [email protected] (PyPI) is affected by PYSEC-2026-4320, GHSA-6q48-6c7w-9gw2 | Dependencies (osv-scanner) |
| critical | osv/GHSA-82r6-8w77-94w6 |
poetry.lock | [email protected] (PyPI) is affected by PYSEC-2026-4025, GHSA-82r6-8w77-94w6 | Dependencies (osv-scanner) |
| critical | osv/GHSA-vqfr-h8mv-ghfj |
poetry.lock | [email protected] (PyPI) is affected by PYSEC-2026-348, GHSA-vqfr-h8mv-ghfj | Dependencies (osv-scanner) |
| critical | osv/GHSA-x2qx-6953-8485 |
poetry.lock | [email protected] (PyPI) is affected by PYSEC-2026-2161, GHSA-x2qx-6953-8485 | Dependencies (osv-scanner) |
| high | opengrep/python.lang.best-practice.arbitrary-sleep |
netraven/worker/backends/paramiko_driver.py:152 | time.sleep() call; did you mean to leave this in? | Lint |
| high | opengrep/dockerfile.security.missing-user |
docker/api/Dockerfile:43 | 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/dockerfile.security.missing-user-entrypoint |
docker/api/Dockerfile:47 | 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/dockerfile.security.missing-user |
docker/frontend/Dockerfile:38 | 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/dockerfile.security.missing-user |
docker/frontend/Dockerfile:41 | 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/dockerfile.security.missing-user-entrypoint |
docker/rq_scheduler/Dockerfile:41 | 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/dockerfile.security.missing-user-entrypoint |
docker/scheduler/Dockerfile:41 | 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/dockerfile.security.missing-user-entrypoint |
docker/worker/Dockerfile:48 | 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 | osv/GHSA-23c5-xmqv-rm74 |
frontend/package-lock.json | [email protected] (npm) is affected by GHSA-23c5-xmqv-rm74 | Dependencies (osv-scanner) |
| high | osv/GHSA-28wg-ghj8-5hjv |
frontend/package-lock.json | [email protected] (npm) is affected by GHSA-28wg-ghj8-5hjv | Dependencies (osv-scanner) |
| high | osv/GHSA-28wg-ghj8-5hjv |
frontend/package-lock.json | [email protected] (npm) is affected by GHSA-28wg-ghj8-5hjv | Dependencies (osv-scanner) |
| high | osv/GHSA-2v37-7h3g-55p8 |
frontend/package-lock.json | [email protected] (npm) is affected by GHSA-2v37-7h3g-55p8 | Dependencies (osv-scanner) |
| high | osv/GHSA-2v37-7h3g-55p8 |
frontend/package-lock.json | [email protected] (npm) is affected by GHSA-2v37-7h3g-55p8 | Dependencies (osv-scanner) |
| high | osv/GHSA-35jp-ww65-95wh |
frontend/package-lock.json | [email protected] (npm) is affected by GHSA-35jp-ww65-95wh | Dependencies (osv-scanner) |
| high | osv/GHSA-3g43-6gmg-66jw |
frontend/package-lock.json | [email protected] (npm) is affected by GHSA-3g43-6gmg-66jw | Dependencies (osv-scanner) |
| high | osv/GHSA-3jxr-9vmj-r5cp |
frontend/package-lock.json | [email protected] (npm) is affected by GHSA-3jxr-9vmj-r5cp | Dependencies (osv-scanner) |
| high | osv/GHSA-3ppc-4f35-3m26 |
frontend/package-lock.json | [email protected] (npm) is affected by GHSA-3ppc-4f35-3m26 | Dependencies (osv-scanner) |
| high | osv/GHSA-43fc-jf86-j433 |
frontend/package-lock.json | [email protected] (npm) is affected by GHSA-43fc-jf86-j433 | Dependencies (osv-scanner) |
| high | osv/GHSA-4hjh-wcwx-xvwj |
frontend/package-lock.json | [email protected] (npm) is affected by GHSA-4hjh-wcwx-xvwj | Dependencies (osv-scanner) |
| high | osv/GHSA-587h-7wmj-h5pm |
frontend/package-lock.json | [email protected] (npm) is affected by GHSA-587h-7wmj-h5pm | Dependencies (osv-scanner) |
| high | osv/GHSA-5j98-mcp5-4vw2 |
frontend/package-lock.json | [email protected] (npm) is affected by GHSA-5j98-mcp5-4vw2 | Dependencies (osv-scanner) |
| high | osv/GHSA-62hf-57xw-28j9 |
frontend/package-lock.json | [email protected] (npm) is affected by GHSA-62hf-57xw-28j9 | Dependencies (osv-scanner) |
| high | osv/GHSA-68fv-2mgg-jv7q |
frontend/package-lock.json | [email protected] (npm) is affected by GHSA-68fv-2mgg-jv7q | Dependencies (osv-scanner) |
| high | osv/GHSA-6chq-wfr3-2hj9 |
frontend/package-lock.json | [email protected] (npm) is affected by GHSA-6chq-wfr3-2hj9 | Dependencies (osv-scanner) |
| high | osv/GHSA-6g55-p6wh-862q |
frontend/package-lock.json | [email protected] (npm) is affected by GHSA-6g55-p6wh-862q | Dependencies (osv-scanner) |
| high | osv/GHSA-6j4f-fj2g-mc7p |
frontend/package-lock.json | [email protected] (npm) is affected by GHSA-6j4f-fj2g-mc7p | Dependencies (osv-scanner) |
| high | osv/GHSA-73wf-gq98-2v4g |
frontend/package-lock.json | [email protected] (npm) is affected by GHSA-73wf-gq98-2v4g | Dependencies (osv-scanner) |
| high | osv/GHSA-777c-7fjr-54vf |
frontend/package-lock.json | [email protected] (npm) is affected by GHSA-777c-7fjr-54vf | Dependencies (osv-scanner) |
| high | osv/GHSA-7r86-cg39-jmmj |
frontend/package-lock.json | [email protected] (npm) is affected by GHSA-7r86-cg39-jmmj | Dependencies (osv-scanner) |
| high | osv/GHSA-c2c7-rcm5-vvqj |
frontend/package-lock.json | [email protected] (npm) is affected by GHSA-c2c7-rcm5-vvqj | Dependencies (osv-scanner) |
| high | osv/GHSA-c2c7-rcm5-vvqj |
frontend/package-lock.json | [email protected] (npm) is affected by GHSA-c2c7-rcm5-vvqj | Dependencies (osv-scanner) |
| high | osv/GHSA-c83g-rgw3-j3cx |
frontend/package-lock.json | [email protected] (npm) is affected by GHSA-c83g-rgw3-j3cx | Dependencies (osv-scanner) |
| high | osv/GHSA-g2v6-rqmx-r4w6 |
frontend/package-lock.json | @vue/[email protected] (npm) is affected by GHSA-g2v6-rqmx-r4w6 | Dependencies (osv-scanner) |
| high | osv/GHSA-hfxv-24rg-xrqf |
frontend/package-lock.json | [email protected] (npm) is affected by GHSA-hfxv-24rg-xrqf | Dependencies (osv-scanner) |
| high | osv/GHSA-hmw2-7cc7-3qxx |
frontend/package-lock.json | [email protected] (npm) is affected by GHSA-hmw2-7cc7-3qxx | Dependencies (osv-scanner) |
| high | osv/GHSA-j5f8-grm9-p9fc |
frontend/package-lock.json | [email protected] (npm) is affected by GHSA-j5f8-grm9-p9fc | Dependencies (osv-scanner) |
| high | osv/GHSA-mh99-v99m-4gvg |
frontend/package-lock.json | [email protected] (npm) is affected by GHSA-mh99-v99m-4gvg | Dependencies (osv-scanner) |
| high | osv/GHSA-mw96-cpmx-2vgc |
frontend/package-lock.json | [email protected] (npm) is affected by GHSA-mw96-cpmx-2vgc | Dependencies (osv-scanner) |
| high | osv/GHSA-p92q-9vqr-4j8v |
frontend/package-lock.json | [email protected] (npm) is affected by GHSA-p92q-9vqr-4j8v | Dependencies (osv-scanner) |
| high | osv/GHSA-pf86-5x62-jrwf |
frontend/package-lock.json | [email protected] (npm) is affected by GHSA-pf86-5x62-jrwf | Dependencies (osv-scanner) |
| high | osv/GHSA-pmwg-cvhr-8vh7 |
frontend/package-lock.json | [email protected] (npm) is affected by GHSA-pmwg-cvhr-8vh7 | Dependencies (osv-scanner) |
| high | osv/GHSA-q8qp-cvcw-x6jj |
frontend/package-lock.json | [email protected] (npm) is affected by GHSA-q8qp-cvcw-x6jj | Dependencies (osv-scanner) |
| high | osv/GHSA-qhr7-859c-m2p7 |
frontend/package-lock.json | [email protected] (npm) is affected by GHSA-qhr7-859c-m2p7 | Dependencies (osv-scanner) |
| high | osv/GHSA-r28c-9q8g-f849 |
frontend/package-lock.json | [email protected] (npm) is affected by GHSA-r28c-9q8g-f849 | Dependencies (osv-scanner) |
| high | osv/GHSA-rgw5-rvv9-x895 |
frontend/package-lock.json | [email protected] (npm) is affected by GHSA-rgw5-rvv9-x895 | Dependencies (osv-scanner) |
| high | osv/GHSA-v56q-mh7h-f735 |
frontend/package-lock.json | [email protected] (npm) is affected by GHSA-v56q-mh7h-f735 | Dependencies (osv-scanner) |
| high | osv/GHSA-xvcm-6775-5m9r |
frontend/package-lock.json | [email protected] (npm) is affected by GHSA-xvcm-6775-5m9r | Dependencies (osv-scanner) |
| high | osv/GHSA-xwg4-73v4-xw9w |
frontend/package-lock.json | [email protected] (npm) is affected by GHSA-xwg4-73v4-xw9w | Dependencies (osv-scanner) |
| high | osv/GHSA-xwg4-73v4-xw9w |
frontend/package-lock.json | [email protected] (npm) is affected by GHSA-xwg4-73v4-xw9w | Dependencies (osv-scanner) |
| high | opengrep/python.lang.security.audit.dangerous-subprocess-use-audit |
netraven/worker/jobs/reachability.py:51 | 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 | osv/GHSA-239g-whfq-7xj9 |
poetry.lock | [email protected] (PyPI) is affected by PYSEC-2026-3982, GHSA-239g-whfq-7xj9 | Dependencies (osv-scanner) |
| high | osv/GHSA-23mf-xhv8-69c2 |
poetry.lock | [email protected] (PyPI) is affected by GHSA-23mf-xhv8-69c2 | Dependencies (osv-scanner) |
| high | osv/GHSA-2f96-g7mh-g2hx |
poetry.lock | [email protected] (PyPI) is affected by PYSEC-2026-3836, GHSA-2f96-g7mh-g2hx | Dependencies (osv-scanner) |
| high | osv/GHSA-2h4p-vjrc-8xpq |
poetry.lock | [email protected] (PyPI) is affected by PYSEC-2026-2617, GHSA-2h4p-vjrc-8xpq | Dependencies (osv-scanner) |
| high | osv/GHSA-2qm8-x737-gmw5 |
poetry.lock | [email protected] (PyPI) is affected by GHSA-2qm8-x737-gmw5 | Dependencies (osv-scanner) |
| high | osv/GHSA-2xpw-w6gg-jr37 |
poetry.lock | [email protected] (PyPI) is affected by PYSEC-2026-1994, GHSA-2xpw-w6gg-jr37 | Dependencies (osv-scanner) |
| high | osv/GHSA-38jv-5279-wg99 |
poetry.lock | [email protected] (PyPI) is affected by PYSEC-2026-1996, GHSA-38jv-5279-wg99 | Dependencies (osv-scanner) |
| high | osv/GHSA-3f7w-8rr8-f37f |
poetry.lock | [email protected] (PyPI) is affected by PYSEC-2026-3949, GHSA-3f7w-8rr8-f37f | Dependencies (osv-scanner) |
| high | osv/GHSA-3rp5-jjmw-4wv2 |
poetry.lock | [email protected] (PyPI) is affected by PYSEC-2026-3981, GHSA-3rp5-jjmw-4wv2 | Dependencies (osv-scanner) |
| high | osv/GHSA-45c3-73f7-pv4m |
poetry.lock | [email protected] (PyPI) is affected by GHSA-45c3-73f7-pv4m | Dependencies (osv-scanner) |
| high | osv/GHSA-4gmw-gg2m-w46p |
poetry.lock | [email protected] (PyPI) is affected by PYSEC-2026-3838, GHSA-4gmw-gg2m-w46p | Dependencies (osv-scanner) |
| high | osv/GHSA-537c-gmf6-5ccf |
poetry.lock | [email protected] (PyPI) is affected by GHSA-537c-gmf6-5ccf | Dependencies (osv-scanner) |
| high | osv/GHSA-539m-9xh6-q6rr |
poetry.lock | [email protected] (PyPI) is affected by PYSEC-2026-3948, GHSA-539m-9xh6-q6rr | Dependencies (osv-scanner) |
| high | osv/GHSA-5rvq-cxj2-64vf |
poetry.lock | [email protected] (PyPI) is affected by PYSEC-2026-3036, GHSA-5rvq-cxj2-64vf | Dependencies (osv-scanner) |
| high | osv/GHSA-5xxx-qhh7-9287 |
poetry.lock | [email protected] (PyPI) is affected by PYSEC-2026-3788, GHSA-5xxx-qhh7-9287 | Dependencies (osv-scanner) |
| high | osv/GHSA-6p8h-3wgx-97gf |
poetry.lock | [email protected] (PyPI) is affected by PYSEC-2026-3952, GHSA-6p8h-3wgx-97gf | Dependencies (osv-scanner) |
| high | osv/GHSA-7545-fcxq-7j24 |
poetry.lock | [email protected] (PyPI) is affected by PYSEC-2026-2162, GHSA-7545-fcxq-7j24 | Dependencies (osv-scanner) |
| high | osv/GHSA-7833-fr7j-v32q |
poetry.lock | [email protected] (PyPI) is affected by PYSEC-2026-3785, GHSA-7833-fr7j-v32q | Dependencies (osv-scanner) |
| high | osv/GHSA-7f5h-v6xp-fcq8 |
poetry.lock | [email protected] (PyPI) is affected by PYSEC-2026-1942, GHSA-7f5h-v6xp-fcq8 | Dependencies (osv-scanner) |
| high | osv/GHSA-82w8-qh3p-5jfq |
poetry.lock | [email protected] (PyPI) is affected by PYSEC-2026-249, GHSA-82w8-qh3p-5jfq | Dependencies (osv-scanner) |
| high | osv/GHSA-83vg-56qc-22m7 |
poetry.lock | [email protected] (PyPI) is affected by GHSA-83vg-56qc-22m7 | Dependencies (osv-scanner) |
| high | osv/GHSA-8988-9cw3-xx77 |
poetry.lock | [email protected] (PyPI) is affected by PYSEC-2026-4175, GHSA-8988-9cw3-xx77 | Dependencies (osv-scanner) |
| high | osv/GHSA-8mcc-hrx5-hvxc |
poetry.lock | [email protected] (PyPI) is affected by PYSEC-2026-3787, GHSA-8mcc-hrx5-hvxc | Dependencies (osv-scanner) |
| high | osv/GHSA-8ppf-4f7h-5ppj |
poetry.lock | [email protected] (PyPI) is affected by PYSEC-2026-3456, GHSA-8ppf-4f7h-5ppj | Dependencies (osv-scanner) |
| high | osv/GHSA-94p4-4cq8-9g67 |
poetry.lock | [email protected] (PyPI) is affected by PYSEC-2026-3951, GHSA-94p4-4cq8-9g67 | Dependencies (osv-scanner) |
| high | osv/GHSA-956x-8gvw-wg5v |
poetry.lock | [email protected] (PyPI) is affected by PYSEC-2026-3839, GHSA-956x-8gvw-wg5v | Dependencies (osv-scanner) |
| high | osv/GHSA-9m75-vc3g-4x39 |
poetry.lock | [email protected] (PyPI) is affected by GHSA-9m75-vc3g-4x39 | Dependencies (osv-scanner) |
| high | osv/GHSA-9rj7-rf2p-w77r |
poetry.lock | [email protected] (PyPI) is affected by PYSEC-2026-3840, GHSA-9rj7-rf2p-w77r | Dependencies (osv-scanner) |
| high | osv/GHSA-f9j4-qggq-h239 |
poetry.lock | [email protected] (PyPI) is affected by GHSA-f9j4-qggq-h239 | Dependencies (osv-scanner) |
| high | osv/GHSA-fjr4-x663-mwxc |
poetry.lock | [email protected] (PyPI) is affected by PYSEC-2026-3995, GHSA-fjr4-x663-mwxc | Dependencies (osv-scanner) |
| high | osv/GHSA-fm9c-5rcf-2q5p |
poetry.lock | [email protected] (PyPI) is affected by GHSA-fm9c-5rcf-2q5p | Dependencies (osv-scanner) |
| high | osv/GHSA-g5vv-9gxw-82hx |
poetry.lock | [email protected] (PyPI) is affected by PYSEC-2026-3984, GHSA-g5vv-9gxw-82hx | Dependencies (osv-scanner) |
| high | osv/GHSA-g6cj-pr64-35w5 |
poetry.lock | [email protected] (PyPI) is affected by PYSEC-2026-3552, GHSA-g6cj-pr64-35w5 | Dependencies (osv-scanner) |
| high | osv/GHSA-gm62-xv2j-4w53 |
poetry.lock | [email protected] (PyPI) is affected by PYSEC-2026-1998, GHSA-gm62-xv2j-4w53 | Dependencies (osv-scanner) |
| high | osv/GHSA-hm4w-wwcw-mr6r |
poetry.lock | [email protected] (PyPI) is affected by PYSEC-2026-3457, GHSA-hm4w-wwcw-mr6r | Dependencies (osv-scanner) |
| high | osv/GHSA-hmq2-w58f-27jc |
poetry.lock | [email protected] (PyPI) is affected by PYSEC-2026-3784, GHSA-hmq2-w58f-27jc | Dependencies (osv-scanner) |
| high | osv/GHSA-jm78-9fvv-mhgr |
poetry.lock | [email protected] (PyPI) is affected by PYSEC-2026-3783, GHSA-jm78-9fvv-mhgr | Dependencies (osv-scanner) |
| high | osv/GHSA-jr27-m4p2-rc6r |
poetry.lock | [email protected] (PyPI) is affected by PYSEC-2026-2263, GHSA-jr27-m4p2-rc6r | Dependencies (osv-scanner) |
| high | osv/GHSA-jwv3-5hgf-82ww |
poetry.lock | [email protected] (PyPI) is affected by PYSEC-2026-3553, GHSA-jwv3-5hgf-82ww | Dependencies (osv-scanner) |
| high | osv/GHSA-m4p7-r5rc-7g4j |
poetry.lock | [email protected] (PyPI) is affected by PYSEC-2026-3455, GHSA-m4p7-r5rc-7g4j | Dependencies (osv-scanner) |
| high | osv/GHSA-m64x-33q8-m5h7 |
poetry.lock | [email protected] (PyPI) is affected by GHSA-m64x-33q8-m5h7 | Dependencies (osv-scanner) |
| high | osv/GHSA-mm57-4v3p-rchx |
poetry.lock | [email protected] (PyPI) is affected by GHSA-mm57-4v3p-rchx | Dependencies (osv-scanner) |
| high | osv/GHSA-mv93-w799-cj2w |
poetry.lock | [email protected] (PyPI) is affected by PYSEC-2026-3980, GHSA-mv93-w799-cj2w | Dependencies (osv-scanner) |
| high | osv/GHSA-pp6c-gr5w-3c5g |
poetry.lock | [email protected] (PyPI) is affected by PYSEC-2026-3039, GHSA-pp6c-gr5w-3c5g | Dependencies (osv-scanner) |
| high | osv/GHSA-qccp-gfcp-xxvc |
poetry.lock | [email protected] (PyPI) is affected by PYSEC-2026-141, GHSA-qccp-gfcp-xxvc | Dependencies (osv-scanner) |
| high | osv/GHSA-r6ph-v2qm-q3c2 |
poetry.lock | [email protected] (PyPI) is affected by PYSEC-2026-2141, GHSA-r6ph-v2qm-q3c2 | Dependencies (osv-scanner) |
| high | osv/GHSA-r9mr-m37c-5fr3 |
poetry.lock | [email protected] (PyPI) is affected by PYSEC-2026-3953, GHSA-r9mr-m37c-5fr3 | Dependencies (osv-scanner) |
| high | osv/GHSA-rpm5-65cw-6hj4 |
poetry.lock | [email protected] (PyPI) is affected by PYSEC-2026-2160, GHSA-rpm5-65cw-6hj4 | Dependencies (osv-scanner) |
| high | osv/GHSA-rwj8-pgh3-r573 |
poetry.lock | [email protected] (PyPI) is affected by PYSEC-2026-3842, GHSA-rwj8-pgh3-r573 | Dependencies (osv-scanner) |
| high | osv/GHSA-v87r-6q3f-2j67 |
poetry.lock | [email protected] (PyPI) is affected by PYSEC-2026-2163, GHSA-v87r-6q3f-2j67 | Dependencies (osv-scanner) |
| high | osv/GHSA-v92g-xgxw-vvmm |
poetry.lock | [email protected] (PyPI) is affected by PYSEC-2026-88, GHSA-v92g-xgxw-vvmm | Dependencies (osv-scanner) |
| high | osv/GHSA-vvf4-9x63-8xvv |
poetry.lock | [email protected] (PyPI) is affected by GHSA-vvf4-9x63-8xvv | Dependencies (osv-scanner) |
| high | osv/GHSA-vxq7-64xx-v4gw |
poetry.lock | [email protected] (PyPI) is affected by PYSEC-2026-4177, GHSA-vxq7-64xx-v4gw | Dependencies (osv-scanner) |
| high | osv/GHSA-w8jc-g24h-crhw |
poetry.lock | [email protected] (PyPI) is affected by GHSA-w8jc-g24h-crhw | Dependencies (osv-scanner) |
| high | osv/GHSA-wj6h-64fc-37mp |
poetry.lock | [email protected] (PyPI) is affected by PYSEC-2026-1325, GHSA-wj6h-64fc-37mp | Dependencies (osv-scanner) |
| high | osv/GHSA-wp53-j4wj-2cfg |
poetry.lock | [email protected] (PyPI) is affected by PYSEC-2026-1852, GHSA-wp53-j4wj-2cfg | Dependencies (osv-scanner) |
| high | osv/GHSA-wqp7-x3pw-xc5r |
poetry.lock | [email protected] (PyPI) is affected by PYSEC-2026-2281, GHSA-wqp7-x3pw-xc5r | Dependencies (osv-scanner) |
| high | osv/GHSA-wvpp-8hx9-p66j |
poetry.lock | [email protected] (PyPI) is affected by PYSEC-2026-3843, GHSA-wvpp-8hx9-p66j | Dependencies (osv-scanner) |
| medium | opengrep/python.lang.maintainability.is-function-without-parentheses |
netraven/api/dependencies.py:66 | Is "is_active" a function or an attribute? If it is a function, you may have meant current_user.is_active() because current_user.is_active is always true. | Lint |
| medium | opengrep/python.lang.maintainability.is-function-without-parentheses |
netraven/api/routers/auth_router.py:131 | Is "is_active" a function or an attribute? If it is a function, you may have meant user.is_active() because user.is_active is always true. | Lint |
| medium | opengrep/python.lang.maintainability.is-function-without-parentheses |
netraven/api/routers/credentials.py:187 | Is "is_system" a function or an attribute? If it is a function, you may have meant db_credential.is_system() because db_credential.is_system is always true. | Lint |
| medium | opengrep/python.lang.maintainability.is-function-without-parentheses |
netraven/api/routers/jobs.py:133 | Is "is_enabled" a function or an attribute? If it is a function, you may have meant models.Job.is_enabled() because models.Job.is_enabled is always true. | Lint |
| medium | opengrep/python.lang.maintainability.is-function-without-parentheses |
netraven/api/routers/jobs.py:167 | Is "is_enabled" a function or an attribute? If it is a function, you may have meant models.Job.is_enabled() because models.Job.is_enabled is always true. | Lint |
| medium | opengrep/python.lang.maintainability.is-function-without-parentheses |
netraven/api/routers/jobs.py:198 | Is "is_enabled" a function or an attribute? If it is a function, you may have meant job.is_enabled() because job.is_enabled is always true. | Lint |
| medium | opengrep/python.lang.maintainability.is-function-without-parentheses |
netraven/api/routers/jobs.py:198 | Is "is_enabled" a function or an attribute? If it is a function, you may have meant job.is_enabled() because job.is_enabled is always true. | Lint |
| medium | opengrep/python.lang.maintainability.is-function-without-parentheses |
netraven/api/routers/jobs.py:199 | Is "is_system_job" a function or an attribute? If it is a function, you may have meant job.is_system_job() because job.is_system_job is always true. | Lint |
| medium | opengrep/python.lang.maintainability.is-function-without-parentheses |
netraven/api/routers/jobs.py:199 | Is "is_system_job" a function or an attribute? If it is a function, you may have meant job.is_system_job() because job.is_system_job is always true. | Lint |
| medium | opengrep/python.lang.maintainability.is-function-without-parentheses |
netraven/api/routers/jobs.py:241 | Is "is_system_job" a function or an attribute? If it is a function, you may have meant job.is_system_job() because job.is_system_job is always true. | Lint |
| medium | opengrep/python.lang.maintainability.is-function-without-parentheses |
netraven/api/routers/jobs.py:241 | Is "is_system_job" a function or an attribute? If it is a function, you may have meant job.is_system_job() because job.is_system_job is always true. | Lint |
| medium | opengrep/python.lang.maintainability.is-function-without-parentheses |
netraven/api/routers/jobs.py:393 | Is "is_system_job" a function or an attribute? If it is a function, you may have meant db_job.is_system_job() because db_job.is_system_job is always true. | Lint |
| medium | opengrep/python.lang.maintainability.is-function-without-parentheses |
netraven/api/routers/jobs.py:447 | Is "is_system_job" a function or an attribute? If it is a function, you may have meant db_job.is_system_job() because db_job.is_system_job is always true. | Lint |
| medium | opengrep/python.lang.maintainability.is-function-without-parentheses |
netraven/api/routers/users.py:117 | Is "is_active" a function or an attribute? If it is a function, you may have meant models.User.is_active() because models.User.is_active is always true. | Lint |
| medium | opengrep/python.lang.best-practice.unspecified-open-encoding |
netraven/config/loader.py:77 | Missing 'encoding' parameter. 'open()' uses device locale encodings by default, corrupting files with special characters. Specify the encoding to ensure cross-platform support when opening files in text mode (e.g. encoding="utf-8"). | Lint |
| medium | opengrep/python.lang.best-practice.unspecified-open-encoding |
netraven/config/loader.py:88 | Missing 'encoding' parameter. 'open()' uses device locale encodings by default, corrupting files with special characters. Specify the encoding to ensure cross-platform support when opening files in text mode (e.g. encoding="utf-8"). | Lint |
| medium | opengrep/python.lang.best-practice.unspecified-open-encoding |
netraven/config/logger_config.py:17 | Missing 'encoding' parameter. 'open()' uses device locale encodings by default, corrupting files with special characters. Specify the encoding to ensure cross-platform support when opening files in text mode (e.g. encoding="utf-8"). | Lint |
| medium | opengrep/python.lang.maintainability.is-function-without-parentheses |
netraven/db/init_data.py:191 | Is "is_system" a function or an attribute? If it is a function, you may have meant new_cred.is_system() because new_cred.is_system is always true. | Lint |
| medium | opengrep/python.lang.maintainability.is-function-without-parentheses |
netraven/db/init_data.py:328 | Is "is_system_job" a function or an attribute? If it is a function, you may have meant Job.is_system_job() because Job.is_system_job is always true. | Lint |
| medium | opengrep/python.lang.maintainability.is-function-without-parentheses |
netraven/scheduler/job_registration.py:110 | Is "is_enabled" a function or an attribute? If it is a function, you may have meant db_job.is_enabled() because db_job.is_enabled is always true. | Lint |
| medium | opengrep/python.lang.maintainability.is-function-without-parentheses |
netraven/scheduler/job_registration.py:66 | Is "is_enabled" a function or an attribute? If it is a function, you may have meant Job.is_enabled() because Job.is_enabled is always true. | Lint |
| medium | opengrep/python.lang.correctness.use-sys-exit |
netraven/scheduler/scheduler_runner.py:75 | Detected use of `exit`. Use `sys.exit` over the python shell `exit` built-in. `exit` is a helper for the interactive shell and may not be available on all Python implementations. | Lint |
| medium | opengrep/python.lang.maintainability.is-function-without-parentheses |
netraven/worker/dispatcher.py:441 | Is "is_retriable" a function or an attribute? If it is a function, you may have meant error_info.is_retriable() because error_info.is_retriable is always true. | Lint |
| medium | opengrep/python.lang.maintainability.is-function-without-parentheses |
netraven/worker/dispatcher.py:500 | Is "is_retriable" a function or an attribute? If it is a function, you may have meant error_info.is_retriable() because error_info.is_retriable is always true. | Lint |
| medium | opengrep/python.lang.maintainability.is-function-without-parentheses |
netraven/worker/error_handler.py:119 | Is "is_retriable" a function or an attribute? If it is a function, you may have meant self.is_retriable() because self.is_retriable is always true. | Lint |
| medium | opengrep/python.lang.maintainability.is-function-without-parentheses |
netraven/worker/error_handler.py:136 | Is "is_retriable" a function or an attribute? If it is a function, you may have meant self.is_retriable() because self.is_retriable is always true. | Lint |
| medium | opengrep/python.lang.maintainability.is-function-without-parentheses |
netraven/worker/error_handler.py:149 | Is "is_retriable" a function or an attribute? If it is a function, you may have meant self.is_retriable() because self.is_retriable is always true. | Lint |
| medium | opengrep/python.lang.maintainability.is-function-without-parentheses |
netraven/worker/error_handler.py:168 | Is "is_retriable" a function or an attribute? If it is a function, you may have meant self.is_retriable() because self.is_retriable is always true. | Lint |
| medium | opengrep/python.lang.maintainability.is-function-without-parentheses |
netraven/worker/error_handler.py:189 | Is "is_retriable" a function or an attribute? If it is a function, you may have meant self.is_retriable() because self.is_retriable is always true. | Lint |
| medium | opengrep/python.lang.maintainability.is-function-without-parentheses |
netraven/worker/error_handler.py:218 | Is "is_retriable" a function or an attribute? If it is a function, you may have meant self.is_retriable() because self.is_retriable is always true. | Lint |
| medium | opengrep/python.lang.maintainability.is-function-without-parentheses |
netraven/worker/error_handler.py:387 | Is "is_retriable" a function or an attribute? If it is a function, you may have meant error_info.is_retriable() because error_info.is_retriable is always true. | Lint |
| medium | opengrep/python.lang.best-practice.unspecified-open-encoding |
netraven/worker/job_registry.py:26 | Missing 'encoding' parameter. 'open()' uses device locale encodings by default, corrupting files with special characters. Specify the encoding to ensure cross-platform support when opening files in text mode (e.g. encoding="utf-8"). | Lint |
| medium | opengrep/python.lang.correctness.use-sys-exit |
scripts/seed_dev_data.py:16 | Detected use of `exit`. Use `sys.exit` over the python shell `exit` built-in. `exit` is a helper for the interactive shell and may not be available on all Python implementations. | Lint |
| medium | opengrep/python.lang.best-practice.unspecified-open-encoding |
scripts/seed_dev_data.py:80 | Missing 'encoding' parameter. 'open()' uses device locale encodings by default, corrupting files with special characters. Specify the encoding to ensure cross-platform support when opening files in text mode (e.g. encoding="utf-8"). | Lint |
| medium | opengrep/python.lang.best-practice.unspecified-open-encoding |
scripts/seed_dev_data.py:94 | Missing 'encoding' parameter. 'open()' uses device locale encodings by default, corrupting files with special characters. Specify the encoding to ensure cross-platform support when opening files in text mode (e.g. encoding="utf-8"). | Lint |
| medium | osv/GHSA-3g3m-2fjr-6pw4 |
frontend/package-lock.json | [email protected] (npm) is affected by GHSA-3g3m-2fjr-6pw4 | Dependencies (osv-scanner) |
| medium | osv/GHSA-3p68-rc4w-qgx5 |
frontend/package-lock.json | [email protected] (npm) is affected by GHSA-3p68-rc4w-qgx5 | Dependencies (osv-scanner) |
| medium | osv/GHSA-3v7f-55p6-f55p |
frontend/package-lock.json | [email protected] (npm) is affected by GHSA-3v7f-55p6-f55p | Dependencies (osv-scanner) |
| medium | osv/GHSA-3v7f-55p6-f55p |
frontend/package-lock.json | [email protected] (npm) is affected by GHSA-3v7f-55p6-f55p | Dependencies (osv-scanner) |
| medium | osv/GHSA-3w6x-2g7m-8v23 |
frontend/package-lock.json | [email protected] (npm) is affected by GHSA-3w6x-2g7m-8v23 | Dependencies (osv-scanner) |
| medium | osv/GHSA-42h9-826w-cgv3 |
frontend/package-lock.json | [email protected] (npm) is affected by GHSA-42h9-826w-cgv3 | Dependencies (osv-scanner) |
| medium | osv/GHSA-445q-vr5w-6q77 |
frontend/package-lock.json | [email protected] (npm) is affected by GHSA-445q-vr5w-6q77 | Dependencies (osv-scanner) |
| medium | osv/GHSA-48c2-rrv3-qjmp |
frontend/package-lock.json | [email protected] (npm) is affected by GHSA-48c2-rrv3-qjmp | Dependencies (osv-scanner) |
| medium | osv/GHSA-4w7w-66w2-5vf9 |
frontend/package-lock.json | [email protected] (npm) is affected by GHSA-4w7w-66w2-5vf9 | Dependencies (osv-scanner) |
| medium | osv/GHSA-5c9x-8gcm-mpgx |
frontend/package-lock.json | [email protected] (npm) is affected by GHSA-5c9x-8gcm-mpgx | Dependencies (osv-scanner) |
| medium | osv/GHSA-67mh-4wv8-2f99 |
frontend/package-lock.json | [email protected] (npm) is affected by GHSA-67mh-4wv8-2f99 | Dependencies (osv-scanner) |
| medium | osv/GHSA-698v-4r3x-3vcv |
frontend/package-lock.json | [email protected] (npm) is affected by GHSA-698v-4r3x-3vcv | Dependencies (osv-scanner) |
| medium | osv/GHSA-7q8q-rj6j-mhjq |
frontend/package-lock.json | [email protected] (npm) is affected by GHSA-7q8q-rj6j-mhjq | Dependencies (osv-scanner) |
| medium | osv/GHSA-859w-5945-r5v3 |
frontend/package-lock.json | [email protected] (npm) is affected by GHSA-859w-5945-r5v3 | Dependencies (osv-scanner) |
| medium | osv/GHSA-898c-q2cr-xwhg |
frontend/package-lock.json | [email protected] (npm) is affected by GHSA-898c-q2cr-xwhg | Dependencies (osv-scanner) |
| medium | osv/GHSA-93m4-6634-74q7 |
frontend/package-lock.json | [email protected] (npm) is affected by GHSA-93m4-6634-74q7 | Dependencies (osv-scanner) |
| medium | osv/GHSA-9fr6-4gfg-395g |
frontend/package-lock.json | [email protected] (npm) is affected by GHSA-9fr6-4gfg-395g | Dependencies (osv-scanner) |
| medium | osv/GHSA-f886-m6hf-6m8v |
frontend/package-lock.json | [email protected] (npm) is affected by GHSA-f886-m6hf-6m8v | Dependencies (osv-scanner) |
| medium | osv/GHSA-fvcv-3m26-pcqx |
frontend/package-lock.json | [email protected] (npm) is affected by GHSA-fvcv-3m26-pcqx | Dependencies (osv-scanner) |
| medium | osv/GHSA-fx2h-pf6j-xcff |
frontend/package-lock.json | [email protected] (npm) is affected by GHSA-fx2h-pf6j-xcff | Dependencies (osv-scanner) |
| medium | osv/GHSA-fxqj-rqcc-2cmp |
frontend/package-lock.json | [email protected] (npm) is affected by GHSA-fxqj-rqcc-2cmp | Dependencies (osv-scanner) |
| medium | osv/GHSA-g3hv-75wg-m249 |
frontend/package-lock.json | [email protected] (npm) is affected by GHSA-g3hv-75wg-m249 | Dependencies (osv-scanner) |
| medium | osv/GHSA-j8rh-479h-cp32 |
frontend/package-lock.json | [email protected] (npm) is affected by GHSA-j8rh-479h-cp32 | Dependencies (osv-scanner) |
| medium | osv/GHSA-jqh4-m9w3-8hp9 |
frontend/package-lock.json | [email protected] (npm) is affected by GHSA-jqh4-m9w3-8hp9 | Dependencies (osv-scanner) |
| medium | osv/GHSA-m7pr-hjqh-92cm |
frontend/package-lock.json | [email protected] (npm) is affected by GHSA-m7pr-hjqh-92cm | Dependencies (osv-scanner) |
| medium | osv/GHSA-mmx7-hfxf-jppx |
frontend/package-lock.json | [email protected] (npm) is affected by GHSA-mmx7-hfxf-jppx | Dependencies (osv-scanner) |
| medium | osv/GHSA-pmv8-rq9r-6j72 |
frontend/package-lock.json | [email protected] (npm) is affected by GHSA-pmv8-rq9r-6j72 | Dependencies (osv-scanner) |
| medium | osv/GHSA-q2hr-2g5m-vwhr |
frontend/package-lock.json | [email protected] (npm) is affected by GHSA-q2hr-2g5m-vwhr | Dependencies (osv-scanner) |
| medium | osv/GHSA-qx2v-qp2m-jg93 |
frontend/package-lock.json | [email protected] (npm) is affected by GHSA-qx2v-qp2m-jg93 | Dependencies (osv-scanner) |
| medium | osv/GHSA-r4q5-vmmm-2653 |
frontend/package-lock.json | [email protected] (npm) is affected by GHSA-r4q5-vmmm-2653 | Dependencies (osv-scanner) |
| medium | osv/GHSA-r825-w8mm-5pxw |
frontend/package-lock.json | [email protected] (npm) is affected by GHSA-r825-w8mm-5pxw | Dependencies (osv-scanner) |
| medium | osv/GHSA-rj75-hqrm-r3gf |
frontend/package-lock.json | [email protected] (npm) is affected by GHSA-rj75-hqrm-r3gf | Dependencies (osv-scanner) |
| medium | osv/GHSA-rq7h-c2jc-7f22 |
frontend/package-lock.json | [email protected] (npm) is affected by GHSA-rq7h-c2jc-7f22 | Dependencies (osv-scanner) |
| medium | osv/GHSA-v6wh-96g9-6wx3 |
frontend/package-lock.json | [email protected] (npm) is affected by GHSA-v6wh-96g9-6wx3 | Dependencies (osv-scanner) |
| medium | osv/GHSA-vf2m-468p-8v99 |
frontend/package-lock.json | [email protected] (npm) is affected by GHSA-vf2m-468p-8v99 | Dependencies (osv-scanner) |
| medium | osv/GHSA-vh66-26gq-q6x8 |
frontend/package-lock.json | [email protected] (npm) is affected by GHSA-vh66-26gq-q6x8 | Dependencies (osv-scanner) |
| medium | osv/GHSA-w9j2-pvgh-6h63 |
frontend/package-lock.json | [email protected] (npm) is affected by GHSA-w9j2-pvgh-6h63 | Dependencies (osv-scanner) |
| medium | osv/GHSA-w9m9-85wc-3x92 |
frontend/package-lock.json | [email protected] (npm) is affected by GHSA-w9m9-85wc-3x92 | Dependencies (osv-scanner) |
| medium | osv/GHSA-xx6v-rp6x-q39c |
frontend/package-lock.json | [email protected] (npm) is affected by GHSA-xx6v-rp6x-q39c | Dependencies (osv-scanner) |
| medium | opengrep/javascript.vue.security.audit.xss.templates.avoid-v-html |
frontend/src/components/ui/MarkdownRenderer.vue:2 | Dynamically rendering arbitrary HTML on your website can be very dangerous because it can easily lead to XSS vulnerabilities. Only use HTML interpolation on trusted content and never on user-provided content. [confidence low] | Static analysis (opengrep) |
| medium | opengrep/python.lang.security.audit.non-literal-import |
netraven/worker/job_registry.py:33 | Untrusted user input in `importlib.import_module()` function allows an attacker to load arbitrary code. Avoid dynamic values in `importlib.import_module()` or use a whitelist to prevent running untrusted code. [confidence low] | Static analysis (opengrep) |
| medium | osv/GHSA-2c2j-9gv5-cj73 |
poetry.lock | [email protected] (PyPI) is affected by PYSEC-2026-1941, GHSA-2c2j-9gv5-cj73 | Dependencies (osv-scanner) |
| medium | osv/GHSA-3wxw-xv34-2frg |
poetry.lock | [email protected] (PyPI) is affected by PYSEC-2026-3837, GHSA-3wxw-xv34-2frg | Dependencies (osv-scanner) |
| medium | osv/GHSA-48p4-8xcf-vxj5 |
poetry.lock | [email protected] (PyPI) is affected by PYSEC-2026-1997, GHSA-48p4-8xcf-vxj5 | Dependencies (osv-scanner) |
| medium | osv/GHSA-5639-2j2p-m4mx |
poetry.lock | [email protected] (PyPI) is affected by PYSEC-2026-4243, GHSA-5639-2j2p-m4mx | Dependencies (osv-scanner) |
| medium | osv/GHSA-59cr-6r3x-644w |
poetry.lock | [email protected] (PyPI) is affected by GHSA-59cr-6r3x-644w | Dependencies (osv-scanner) |
| medium | osv/GHSA-5p39-cfhj-2xmp |
poetry.lock | [email protected] (PyPI) is affected by PYSEC-2026-4024, GHSA-5p39-cfhj-2xmp | Dependencies (osv-scanner) |
| medium | osv/GHSA-65pc-fj4g-8rjx |
poetry.lock | [email protected] (PyPI) is affected by PYSEC-2026-215, GHSA-65pc-fj4g-8rjx | Dependencies (osv-scanner) |
| medium | osv/GHSA-6w46-j5rx-g56g |
poetry.lock | [email protected] (PyPI) is affected by PYSEC-2026-1845, GHSA-6w46-j5rx-g56g | Dependencies (osv-scanner) |
| medium | osv/GHSA-86qp-5c8j-p5mr |
poetry.lock | [email protected] (PyPI) is affected by PYSEC-2026-161, GHSA-86qp-5c8j-p5mr | Dependencies (osv-scanner) |
| medium | osv/GHSA-9f5j-8jwj-x28g |
poetry.lock | [email protected] (PyPI) is affected by PYSEC-2026-2467, GHSA-9f5j-8jwj-x28g | Dependencies (osv-scanner) |
| medium | osv/GHSA-9hjg-9r4m-mvj7 |
poetry.lock | [email protected] (PyPI) is affected by PYSEC-2026-1872, GHSA-9hjg-9r4m-mvj7 | Dependencies (osv-scanner) |
| medium | osv/GHSA-fx3j-rwgx-fr94 |
poetry.lock | [email protected] (PyPI) is affected by GHSA-fx3j-rwgx-fr94 | Dependencies (osv-scanner) |
| medium | osv/GHSA-gc5v-m9x4-r6x2 |
poetry.lock | [email protected] (PyPI) is affected by PYSEC-2026-2275, GHSA-gc5v-m9x4-r6x2 | Dependencies (osv-scanner) |
| medium | osv/GHSA-gq48-pqfc-9p58 |
poetry.lock | [email protected] (PyPI) is affected by GHSA-gq48-pqfc-9p58 | Dependencies (osv-scanner) |
| medium | osv/GHSA-hh9p-6wh2-4mfc |
poetry.lock | [email protected] (PyPI) is affected by PYSEC-2026-3841, GHSA-hh9p-6wh2-4mfc | Dependencies (osv-scanner) |
| medium | osv/GHSA-jp82-jpqv-5vv3 |
poetry.lock | [email protected] (PyPI) is affected by PYSEC-2026-248, GHSA-jp82-jpqv-5vv3 | Dependencies (osv-scanner) |
| medium | osv/GHSA-m959-cc7f-wv43 |
poetry.lock | [email protected] (PyPI) is affected by PYSEC-2026-35, GHSA-m959-cc7f-wv43 | Dependencies (osv-scanner) |
| medium | osv/GHSA-mf9w-mj56-hr94 |
poetry.lock | [email protected] (PyPI) is affected by PYSEC-2026-2270, GHSA-mf9w-mj56-hr94 | Dependencies (osv-scanner) |
| medium | osv/GHSA-mj87-hwqh-73pj |
poetry.lock | [email protected] (PyPI) is affected by PYSEC-2026-3038, GHSA-mj87-hwqh-73pj | Dependencies (osv-scanner) |
| medium | osv/GHSA-mrfv-m5wm-5w6w |
poetry.lock | [email protected] (PyPI) is affected by PYSEC-2026-3002, GHSA-mrfv-m5wm-5w6w | Dependencies (osv-scanner) |
| medium | osv/GHSA-p538-c434-8v24 |
poetry.lock | [email protected] (PyPI) is affected by PYSEC-2026-3950, GHSA-p538-c434-8v24 | Dependencies (osv-scanner) |
| medium | osv/GHSA-pq67-6m6q-mj2v |
poetry.lock | [email protected] (PyPI) is affected by PYSEC-2026-1999, GHSA-pq67-6m6q-mj2v | Dependencies (osv-scanner) |
| medium | osv/GHSA-x746-7m8f-x49c |
poetry.lock | [email protected] (PyPI) is affected by PYSEC-2026-2280, GHSA-x746-7m8f-x49c | Dependencies (osv-scanner) |
| medium | osv/PYSEC-2026-3554 |
poetry.lock | [email protected] (PyPI) is affected by PYSEC-2026-3554 | Dependencies (osv-scanner) |
| medium | gitleaks/curl-auth-header |
scripts/test_gateway_integration.sh:79 | Possible curl-auth-header secret in history (commit ff87e6e509); removed from the current tree but still retrievable | Secrets (gitleaks) |
| medium | opengrep/bash.curl.security.curl-pipe-bash |
setup/manage_netraven.sh:102 | 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 | gitleaks/jwt |
token.json:1 | Possible jwt secret in history (commit 7541742295); removed from the current tree but still retrievable | Secrets (gitleaks) |
| medium | gitleaks/jwt |
tokens.json:4 | Possible jwt secret in history (commit 9d95e8040a); removed from the current tree but still retrievable | Secrets (gitleaks) |
| low | opengrep/bash.lang.correctness.unquoted-variable-expansion-in-command |
docker/api/entrypoint.sh:33 | 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 |
docker/setup/generate_fernet_key.sh:6 | 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 |
setup/check_api_container.sh:64 | 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 |
setup/check_postgres_container.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 | opengrep/bash.lang.correctness.unquoted-variable-expansion-in-command |
setup/check_postgres_container.sh:63 | 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 |
setup/check_postgres_container.sh:70 | 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 |
setup/check_postgres_container.sh:70 | 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 |
setup/check_postgres_container.sh:77 | 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 |
setup/check_postgres_container.sh:88 | 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 |
setup/check_postgres_container.sh:98 | 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 |
setup/check_postgres_container.sh:98 | 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 |
setup/manage_netraven.sh:139 | 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 |
setup/manage_netraven.sh:140 | 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 |
setup/manage_netraven.sh:144 | 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 |
setup/manage_netraven.sh:148 | 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 |
setup/manage_netraven.sh:180 | 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 |
setup/manage_netraven.sh:186 | 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 |
setup/manage_netraven.sh:235 | 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 |
setup/manage_netraven.sh:240 | 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 |
setup/manage_netraven.sh:245 | 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 |
setup/manage_netraven.sh:250 | 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 |
setup/manage_netraven.sh:272 | 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 |
setup/manage_netraven.sh:295 | 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 |
setup/manage_netraven.sh:307 | 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 |
setup/manage_netraven.sh:345 | 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 |
setup/manage_netraven.sh:349 | 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 |
setup/manage_netraven.sh:392 | 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 |
setup/manage_netraven.sh:404 | 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 |
setup/manage_netraven.sh:410 | 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 |
setup/manage_netraven.sh:415 | 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 |
setup/manage_netraven.sh:426 | 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 |
setup/manage_netraven.sh:431 | 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 |
setup/manage_netraven.sh:438 | 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 |
setup/manage_netraven.sh:447 | 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 |
setup/manage_netraven.sh:498 | 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 |
setup/manage_netraven.sh:499 | 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 |
setup/manage_netraven.sh:502 | 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 |
setup/setup_postgres.sh:66 | 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 |
setup/setup_postgres.sh:72 | 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 |
setup/start_netraven.sh:130 | 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 |
setup/start_netraven.sh:131 | 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 |
setup/start_netraven.sh:136 | 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 |
setup/start_netraven.sh:138 | 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 |
setup/start_netraven.sh:142 | 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 |
setup/stop_netraven.sh:17 | 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 |
setup/stop_netraven.sh:19 | 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 |
setup/stop_netraven.sh:22 | 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 |
setup/stop_netraven.sh:24 | 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 | gitleaks/curl-auth-header |
DEVELOPER.md:253 | Possible curl-auth-header secret in history (commit e2f6c1a71b); removed from the current tree but still retrievable | Secrets (gitleaks) |
| low | gitleaks/curl-auth-header |
README.md:265 | Possible curl-auth-header secret in history (commit 8862e1bf81); removed from the current tree but still retrievable | Secrets (gitleaks) |
| low | gitleaks/curl-auth-header |
docs/api.md:24 | Possible curl-auth-header secret in history (commit 475640d0eb); removed from the current tree but still retrievable | Secrets (gitleaks) |
| low | gitleaks/generic-api-key |
docs/architecture/netraven_api_spec.md:111 | Possible generic-api-key secret in the current tree (test/docs/example file) | Secrets (gitleaks) |
| low | gitleaks/generic-api-key |
docs/developer-guide/api-reference.md:42 | Possible generic-api-key secret in history (commit 77f3db9382); removed from the current tree but still retrievable | Secrets (gitleaks) |
| low | gitleaks/curl-auth-header |
docs/developer-guide/api-reference.md:47 | Possible curl-auth-header secret in history (commit 77f3db9382); removed from the current tree but still retrievable | Secrets (gitleaks) |
| low | gitleaks/generic-api-key |
docs/reference/configuration-options.md:25 | Possible generic-api-key secret in history (commit 25f6e5b128); removed from the current tree but still retrievable | Secrets (gitleaks) |
| low | gitleaks/curl-auth-header |
docs/troubleshooting.md:391 | Possible curl-auth-header secret in history (commit 3624023ee6); removed from the current tree but still retrievable | Secrets (gitleaks) |
| low | gitleaks/generic-api-key |
docs/troubleshooting.md:51 | Possible generic-api-key secret in history (commit 88d1982e34); removed from the current tree but still retrievable | Secrets (gitleaks) |
| low | osv/GHSA-4x5r-pxfx-6jf8 |
frontend/package-lock.json | @babel/[email protected] (npm) is affected by GHSA-4x5r-pxfx-6jf8 | Dependencies (osv-scanner) |
| low | osv/GHSA-9jrq-w75r-8gcw |
frontend/package-lock.json | [email protected] (npm) is affected by GHSA-9jrq-w75r-8gcw | Dependencies (osv-scanner) |
| low | osv/GHSA-g4jq-h2w9-997c |
frontend/package-lock.json | [email protected] (npm) is affected by GHSA-g4jq-h2w9-997c | Dependencies (osv-scanner) |
| low | osv/GHSA-jqfw-vq24-v9c3 |
frontend/package-lock.json | [email protected] (npm) is affected by GHSA-jqfw-vq24-v9c3 | Dependencies (osv-scanner) |
| low | osv/GHSA-v6h2-p8h4-qcjw |
frontend/package-lock.json | [email protected] (npm) is affected by GHSA-v6h2-p8h4-qcjw | Dependencies (osv-scanner) |
| low | osv/GHSA-xhjh-pmcv-23jw |
frontend/package-lock.json | [email protected] (npm) is affected by GHSA-xhjh-pmcv-23jw | Dependencies (osv-scanner) |
| low | opengrep/javascript.lang.security.audit.unsafe-formatstring |
frontend/src/store/job.js:100 | Detected string concatenation with a non-literal variable in a util.format / console.log function. If an attacker injects a format specifier in the string, it will forge the log message. Try to use constant values for the format string.... | Static analysis (opengrep) |
| low | gitleaks/generic-api-key |
netraven/web/models/auth.py:76 | Possible generic-api-key secret in history (commit 03c76c2dfd); removed from the current tree but still retrievable | Secrets (gitleaks) |
| low | osv/GHSA-5239-wwwm-4pmq |
poetry.lock | [email protected] (PyPI) is affected by PYSEC-2026-2987, GHSA-5239-wwwm-4pmq | Dependencies (osv-scanner) |
| low | osv/GHSA-6jv3-5f52-599m |
poetry.lock | [email protected] (PyPI) is affected by PYSEC-2026-3037, GHSA-6jv3-5f52-599m | Dependencies (osv-scanner) |
| low | osv/GHSA-r374-rxx8-8654 |
poetry.lock | [email protected] (PyPI) is affected by PYSEC-2026-2858, GHSA-r374-rxx8-8654 | Dependencies (osv-scanner) |
| low | osv/GHSA-v9pg-7xvm-68hf |
poetry.lock | [email protected] (PyPI) is affected by PYSEC-2026-3040, GHSA-v9pg-7xvm-68hf | Dependencies (osv-scanner) |
| low | osv/GHSA-vffw-93wf-4j4q |
poetry.lock | [email protected] (PyPI) is affected by PYSEC-2026-3041, GHSA-vffw-93wf-4j4q | Dependencies (osv-scanner) |
| low | gitleaks/curl-auth-header |
scripts/tests/test_gateway_integration.sh:79 | Possible curl-auth-header secret in history (commit f7b71093cd); removed from the current tree but still retrievable | Secrets (gitleaks) |
| low | gitleaks/jwt |
tests/integration/test_auth_advanced.py:585 | Possible jwt secret in history (commit 7541742295); removed from the current tree but still retrievable | Secrets (gitleaks) |
| low | gitleaks/generic-api-key |
tests/integration/test_credential_store_integration.py:186 | Possible generic-api-key secret in history (commit 7541742295); removed from the current tree but still retrievable | Secrets (gitleaks) |
| low | gitleaks/jwt |
tests/integration/test_security_features.py:81 | Possible jwt secret in history (commit 7541742295); removed from the current tree but still retrievable | Secrets (gitleaks) |
| low | gitleaks/jwt |
tests/test_core_auth.py:86 | Possible jwt secret in history (commit 9fa193de1c); removed from the current tree but still retrievable | Secrets (gitleaks) |
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.
| Analyzer | Pillar | Status | Version | Findings | Note |
|---|---|---|---|---|---|
| AI tool configuration | AI provenance | ok | signatures-v1 | 0 | |
| Explicit AI attribution | AI provenance | ok | signatures-v1 | 0 | |
| Release velocity | AI provenance | ok | prov-4 | 0 | |
| Coding style | AI provenance | ok | — | 0 | |
| Commit velocity | AI provenance | ok | prov-4 | 0 | |
| Findings in AI-written lines | AI provenance | ok | git-blame | 0 | |
| Complexity (lizard) | Code quality | ok | lizard 1.25.1 | 0 | |
| Documentation | Code quality | ok | — | 0 | |
| Duplication (jscpd) | Code quality | ok | repotrust-dup-w6 | 0 | |
| Lint | Code quality | ok | opengrep 1.33.1; rules f1d2b562b414 | 84 | |
| Tests and CI | Code quality | ok | — | 0 | |
| Type safety | Code quality | ok | — | 0 | |
| CI workflows (zizmor) | Security | skipped | — | 0 | |
| Dependencies (osv-scanner) | Security | ok | osv-scanner version: 2.7.1 | 181 | |
| Release downloads | Security | ok | — | 0 | |
| Security posture | Security | ok | — | 0 | |
| Package registries | Security | ok | — | 0 | |
| Static analysis (opengrep) | Security | ok | opengrep 1.33.1; rules f1d2b562b414 | 12 | |
| OpenSSF Scorecard | Security | skipped | — | 0 | no published OpenSSF Scorecard result for this repo |
| Secrets (gitleaks) | Security | ok | gitleaks 8.30.1 | 18 |
Score history
Scores from different scoring versions aren't directly comparable.
| Scored | Commit | Scoring | AI provenance | Quality | Security |
|---|---|---|---|---|---|
| 2026-11-14 | 2f641cca30c2 | prov-5+qual-2+sec-2 | 0% | 50 | 34 |
| 2026-11-14 | 2f641cca30c2 | prov-4+qual-2+sec-2 | 0% | 50 | 34 |
Full text report
- Repository: https://github.com/ccieblogger/netraven
- Commit:
2f641cca30c2238ba78c37dcd2c0fa1bea0189ce - Generated: 2026-11-14T14:52:03+00:00
- Scorer 0.1.0, scoring prov-5+qual-2+sec-2, report schema v2
Scores
| Pillar | Score | Signal | Confidence | Coverage |
|---|---|---|---|---|
| AI provenance (estimated AI-generated share) | 0 | possible | 65% | 100% |
| Code quality | 50 | weak | 90% | 100% |
| Security | 34 | poor | 85% | 100% |
AI provenance
Weak signals consistent with AI-assisted development. 2 commit(s) carry explicit AI attribution, too few to characterize the codebase. Comments and strings use phrasing typical of LLM-written code (see the coding style evidence).
- Explicitly attributed share (lower bound): 0.0%
- Unattributed share in AI-consistent velocity bursts: 60.2%
- Estimated AI-generated share: 0.0%
| AI tool | Attributed commits | Lines added |
|---|---|---|
| GitHub Copilot coding agent | 2 | 2 |
- AI tooling configured in repo: cursor, github-copilot
Current source lines last changed by AI-attributed commits: 2 of 24,961.
Too few lines in one group to compare finding densities.
- Stylometry index: 1.26 per 1,000 lines (narrated steps 1, placeholders 3, assistant phrasing 3, emoji 37). Reported as a signal, not scored.
| Month | Lines added | Attributed to AI |
|---|---|---|
| 2025-04 | 60,112 | 0% |
| 2025-05 | 9,917 | 0% |
Evidence
- GitHub Copilot coding agent: trailer 'Co-authored-by: Copilot' (d11ef0ede6d6)
- GitHub Copilot coding agent: trailer 'Co-authored-by: Copilot' (2e20607c7b07)
- 24,228 lines of first-party code in ~4.0h (6,057 lines/hour, 1 commit session) (759634d49243)
- 2,769 lines of first-party code in ~1.5h (1,824 lines/hour, 1 commit session) (588c77c07d33)
- 6,181 lines of first-party code in ~3.5h (1,783 lines/hour, 9 commit session) (d587e2101e4d)
- .cursor/rules/tech-stack.mdc (cursor configuration) (.cursor/rule)
- .cursor/rules/utility-scripts.mdc (cursor configuration) (.cursor/rule)
- .github/copilot-instructions.md (github-copilot configuration) (.github/copi)
- 1,289 lines of first-party code in ~1.0h (1,351 lines/hour, 1 commit session) (90f8cdcf0784)
- 4,392 lines of first-party code in ~5.0h (871 lines/hour, 6 commit session) (ac129623200e)
- 1,147 lines of first-party code in ~1.4h (801 lines/hour, 2 commit session) (243aa04bb62c)
- 2,122 lines of first-party code in ~3.1h (683 lines/hour, 18 commit session) (a74c06d0682a)
- placeholder or demo-only phrasing: icon: 'NetworkCheckIcon', // Placeholder, replace with actual icon component if needed (frontend/src)
- placeholder or demo-only phrasing: # In a real system, this would push config_data to the device. (netraven/api)
- step-by-step narration comment: # Next, try .password property (not a method) (netraven/ser)
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.29, no CI test run detected; 20% of function code in complex or long functions; 8% duplicated lines. Weakest area: type safety.
| Area | Score |
|---|---|
| Complexity (lizard) | 56 |
| Duplication | 61 |
| Code smells (Opengrep) | 61 |
| Tests and CI | 38 |
| Documentation | 65 |
| Type safety | 0 |
| Process (Scorecard review/maintenance) | n/a |
- Functions: 846; mean complexity 3.0, 90th percentile 6; 14 complex and 7 long functions
- Duplicated lines: 8.3% of 19,181 compared
- Tests: 7,288 test lines for 24,961 source lines (ratio 0.29); CI test commands: none detected; 9% of recent source commits also change tests
- Docs missing or thin: contributing, changelog
Most complex functions:
- dispatch_tasks in netraven/worker/dispatcher.py: complexity 29, 199 lines
- bulk_import_devices in netraven/api/routers/devices.py: complexity 25, 81 lines
- update_device in netraven/api/routers/devices.py: complexity 25, 79 lines
- run_job in netraven/worker/runner.py: complexity 24, 173 lines
- get_scheduled_jobs in netraven/api/routers/jobs.py: complexity 23, 33 lines
Security
Security posture is poor: 0 possible secret(s) in the tree, 3 only in history; 181 known vulnerabilities in 41 dependencies; 8 high-severity SAST findings. Weakest area: posture.
| Area | Score |
|---|---|
| Secrets (gitleaks, tree + history) | 37 |
| Static analysis (Opengrep) | 82 |
| Vulnerable dependencies (OSV) | 1 |
| CI workflows (zizmor) | n/a |
| Posture (policy, updates, signing, lockfiles) | 0 |
| OpenSSF Scorecard | n/a |
-
Known vulnerabilities: 181 in 41 packages (critical 8, high 99, medium 62, low 11)
-
Posture checks passed: none; missing: security policy, dependency updates, signed commits, lockfiles
Top findings
| Severity | Finding | Location |
|---|---|---|
| critical | osv/GHSA-fjxv-7rqg-78g4: [email protected] (npm) is affected by GHSA-fjxv-7rqg-78g4 |
frontend/package-lock.json |
| critical | osv/GHSA-wf6x-7x77-mvgw: [email protected] (npm) is affected by GHSA-wf6x-7x77-mvgw |
frontend/package-lock.json |
| critical | osv/GHSA-82r6-8w77-94w6: [email protected] (PyPI) is affected by PYSEC-2026-4025, GHSA-82r6-8w77-94w6 |
poetry.lock |
| critical | osv/GHSA-6q48-6c7w-9gw2: [email protected] (PyPI) is affected by PYSEC-2026-4320, GHSA-6q48-6c7w-9gw2 |
poetry.lock |
| critical | osv/GHSA-x2qx-6953-8485: [email protected] (PyPI) is affected by PYSEC-2026-2161, GHSA-x2qx-6953-8485 |
poetry.lock |
| critical | osv/GHSA-284h-m62q-gf8w: [email protected] (PyPI) is affected by PYSEC-2026-3786, GHSA-284h-m62q-gf8w |
poetry.lock |
| critical | osv/GHSA-vqfr-h8mv-ghfj: [email protected] (PyPI) is affected by PYSEC-2026-348, GHSA-vqfr-h8mv-ghfj |
poetry.lock |
| critical | osv/GHSA-3qf3-8w2g-rqmx: [email protected] (PyPI) is affected by PYSEC-2026-4298, GHSA-3qf3-8w2g-rqmx |
poetry.lock |
| high | opengrep/dockerfile.security.missing-user: 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] |
docker/api/Dockerfile:43 |
| 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] |
docker/api/Dockerfile:47 |
| high | opengrep/dockerfile.security.missing-user: 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] |
docker/frontend/Dockerfile:38 |
| high | opengrep/dockerfile.security.missing-user: 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] |
docker/frontend/Dockerfile:41 |
| 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] |
docker/rq_scheduler/Dockerfile:41 |
| 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] |
docker/scheduler/Dockerfile:41 |
| 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] |
docker/worker/Dockerfile:48 |
| 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] |
netraven/worker/jobs/reachability.py:51 |
| high | osv/GHSA-g2v6-rqmx-r4w6: @vue/[email protected] (npm) is affected by GHSA-g2v6-rqmx-r4w6 |
frontend/package-lock.json |
| high | osv/GHSA-35jp-ww65-95wh: [email protected] (npm) is affected by GHSA-35jp-ww65-95wh |
frontend/package-lock.json |
| high | osv/GHSA-3g43-6gmg-66jw: [email protected] (npm) is affected by GHSA-3g43-6gmg-66jw |
frontend/package-lock.json |
| high | osv/GHSA-43fc-jf86-j433: [email protected] (npm) is affected by GHSA-43fc-jf86-j433 |
frontend/package-lock.json |
| high | osv/GHSA-4hjh-wcwx-xvwj: [email protected] (npm) is affected by GHSA-4hjh-wcwx-xvwj |
frontend/package-lock.json |
| high | osv/GHSA-62hf-57xw-28j9: [email protected] (npm) is affected by GHSA-62hf-57xw-28j9 |
frontend/package-lock.json |
| high | osv/GHSA-6chq-wfr3-2hj9: [email protected] (npm) is affected by GHSA-6chq-wfr3-2hj9 |
frontend/package-lock.json |
| high | osv/GHSA-777c-7fjr-54vf: [email protected] (npm) is affected by GHSA-777c-7fjr-54vf |
frontend/package-lock.json |
| high | osv/GHSA-hfxv-24rg-xrqf: [email protected] (npm) is affected by GHSA-hfxv-24rg-xrqf |
frontend/package-lock.json |
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: 24,961; test lines: 7,288
| Language | Lines |
|---|---|
| Python | 17,841 |
| Vue | 9,877 |
| JavaScript | 2,621 |
| Shell | 1,910 |