← Back to scan
File as GitHub Issue repo: Logical-Byte/endfield-essence-recognizer

Push this scan report to Logical-Byte/endfield-essence-recognizer

Click the green button below to open GitHub’s new-issue form, pre-filled with the report title, summary table, top findings, and an embedded score-card image. No authentication needed — you review on GitHub before submitting. Repobility is credited as the scanner.

Embedded score card image

This image will render at the top of the issue body. Hosted on Repobility, refreshes automatically after re-scans.

Repobility score card

Issue title

Server-Side Request Forgery (SSRF) — outbound HTTP from user input

Curate findings to include

Pick exactly which findings appear in the issue body. By default the top 5 are included. Uncheck noise, check what matters.

Top 5 (default)
Severity Rule Title File:line
CRIT MINED107 Missing import: `queue` used but not imported src/endfield_essence_recognizer/service…:27
HIGH SEC135 [SEC135] Auth/permission check missing on AI-generated endpoint: Mutating HTTP endpoint g… src/endfield_essence_recognizer/server.…:156
HIGH SEC128 [SEC128] Async function without await — fire-and-forget Promise (AI mistake): Async call … src/endfield_essence_recognizer/hotkey_…:194
HIGH SEC128 [SEC128] Async function without await — fire-and-forget Promise (AI mistake): Async call … scripts/generate_templates.py:23
HIGH SEC029 [SEC029] Server-Side Request Forgery (SSRF) — outbound HTTP from user input: Outbound HTT… src/endfield_essence_recognizer/core/co…:88
HIGH SEC029 [SEC029] Server-Side Request Forgery (SSRF) — outbound HTTP from user input: Outbound HTT… frontend/src/utils/gameData/item.ts:12
HIGH SEC029 [SEC029] Server-Side Request Forgery (SSRF) — outbound HTTP from user input: Outbound HTT… frontend/src/utils/gameData/gameData.ts:25
HIGH MINED108 `self._get_window` used but never assigned in __init__ src/endfield_essence_recognizer/core/wi…:56
HIGH MINED108 `self._get_window` used but never assigned in __init__ src/endfield_essence_recognizer/core/wi…:48
HIGH MINED108 `self._get_window` used but never assigned in __init__ src/endfield_essence_recognizer/core/wi…:43
HIGH MINED108 `self._check_window_and_scene` used but never assigned in __init__ src/endfield_essence_recognizer/core/de…:102
HIGH MINED108 `self._check_window_and_scene` used but never assigned in __init__ src/endfield_essence_recognizer/core/de…:85
HIGH MINED108 `self._scan_for_reward` used but never assigned in __init__ src/endfield_essence_recognizer/core/de…:89
HIGH MINED108 `self._check_scene` used but never assigned in __init__ src/endfield_essence_recognizer/core/de…:63
HIGH MINED108 `self._execute` used but never assigned in __init__ src/endfield_essence_recognizer/core/de…:56
HIGH MINED108 `self.update_from_model` used but never assigned in __init__ src/endfield_essence_recognizer/models/…:52
HIGH MINED108 `self.save_user_setting` used but never assigned in __init__ src/endfield_essence_recognizer/service…:141
HIGH MINED108 `self.save_user_setting` used but never assigned in __init__ src/endfield_essence_recognizer/service…:131
HIGH MINED108 `self.save_user_setting` used but never assigned in __init__ src/endfield_essence_recognizer/service…:111
HIGH MINED108 `self.stop` used but never assigned in __init__ src/endfield_essence_recognizer/service…:206
HIGH MINED108 `self.start` used but never assigned in __init__ src/endfield_essence_recognizer/service…:199
HIGH MINED108 `self.log_sink` used but never assigned in __init__ src/endfield_essence_recognizer/service…:191
HIGH MINED108 `self.broadcast_loop` used but never assigned in __init__ src/endfield_essence_recognizer/service…:158
HIGH MINED108 `self.remove_connection` used but never assigned in __init__ src/endfield_essence_recognizer/service…:143
HIGH MINED108 `self.start_scan` used but never assigned in __init__ src/endfield_essence_recognizer/service…:108
HIGH MINED108 `self.stop_scan` used but never assigned in __init__ src/endfield_essence_recognizer/service…:106
HIGH MINED108 `self.is_running` used but never assigned in __init__ src/endfield_essence_recognizer/service…:105
HIGH MINED108 `self.is_running` used but never assigned in __init__ src/endfield_essence_recognizer/service…:71
HIGH MINED108 `self.is_running` used but never assigned in __init__ src/endfield_essence_recognizer/service…:42
HIGH MINED108 `self._safe_play` used but never assigned in __init__ src/endfield_essence_recognizer/service…:95
HIGH MINED108 `self._safe_play` used but never assigned in __init__ src/endfield_essence_recognizer/service…:90
HIGH MINED108 `self._get_webview_prod_url` used but never assigned in __init__ src/endfield_essence_recognizer/core/co…:96
HIGH MINED115 Action `mikepenz/action-junit-report` pinned to mutable ref `@v6` .github/workflows/backend-ci.yml:74
HIGH MINED115 Action `astral-sh/setup-uv` pinned to mutable ref `@v7` .github/workflows/backend-ci.yml:60
HIGH MINED115 Action `actions/checkout` pinned to mutable ref `@v5` .github/workflows/backend-ci.yml:57
HIGH MINED115 Action `astral-sh/setup-uv` pinned to mutable ref `@v7` .github/workflows/backend-ci.yml:38
HIGH MINED115 Action `actions/checkout` pinned to mutable ref `@v5` .github/workflows/backend-ci.yml:35
HIGH MINED115 Action `softprops/action-gh-release` pinned to mutable ref `@v2` .github/workflows/build-and-release.yml:60
HIGH MINED115 Action `astral-sh/setup-uv` pinned to mutable ref `@v7` .github/workflows/build-and-release.yml:39
HIGH MINED115 Action `actions/setup-python` pinned to mutable ref `@v6` .github/workflows/build-and-release.yml:35
HIGH MINED115 Action `actions/setup-node` pinned to mutable ref `@v4` .github/workflows/build-and-release.yml:24
HIGH MINED115 Action `actions/checkout` pinned to mutable ref `@v5` .github/workflows/build-and-release.yml:21
HIGH MINED131 pre-commit hook `https://github.com/astral-sh/ruff-pre-commit` pinned to mutable rev `v0.… .pre-commit-config.yaml:15
HIGH MINED131 pre-commit hook `https://github.com/astral-sh/uv-pre-commit` pinned to mutable rev `0.9.2… .pre-commit-config.yaml:10
HIGH MINED131 pre-commit hook `https://github.com/pre-commit/pre-commit-hooks` pinned to mutable rev `v… .pre-commit-config.yaml:4
HIGH PYSEC-2026-142 urllib3: PYSEC-2026-142 uv.lock
HIGH PYSEC-2026-141 urllib3: PYSEC-2026-141 uv.lock
HIGH PYSEC-2026-161 starlette: PYSEC-2026-161 uv.lock
HIGH GHSA-pp6c-gr5w-3c5g python-multipart: GHSA-pp6c-gr5w-3c5g uv.lock
HIGH GHSA-whj4-6x5x-4v2j pillow: GHSA-whj4-6x5x-4v2j uv.lock
HIGH GHSA-pwv6-vv43-88gr pillow: GHSA-pwv6-vv43-88gr uv.lock
HIGH GHSA-cfh3-3jmp-rvhc pillow: GHSA-cfh3-3jmp-rvhc uv.lock
HIGH PYSEC-2026-165 pillow: PYSEC-2026-165 uv.lock
HIGH GHSA-v2wj-q39q-566r vite: GHSA-v2wj-q39q-566r frontend/package-lock.json
HIGH GHSA-p9ff-h696-f583 vite: GHSA-p9ff-h696-f583 frontend/package-lock.json
HIGH GHSA-mw96-cpmx-2vgc rollup: GHSA-mw96-cpmx-2vgc frontend/package-lock.json
HIGH GHSA-c2c7-rcm5-vvqj picomatch: GHSA-c2c7-rcm5-vvqj frontend/package-lock.json
HIGH GHSA-7r86-cg39-jmmj minimatch: GHSA-7r86-cg39-jmmj frontend/package-lock.json
HIGH GHSA-3ppc-4f35-3m26 minimatch: GHSA-3ppc-4f35-3m26 frontend/package-lock.json
HIGH GHSA-23c5-xmqv-rm74 minimatch: GHSA-23c5-xmqv-rm74 frontend/package-lock.json
HIGH GHSA-wf6x-7x77-mvgw immutable: GHSA-wf6x-7x77-mvgw frontend/package-lock.json
HIGH GHSA-rf6f-7fwh-wjgh flatted: GHSA-rf6f-7fwh-wjgh frontend/package-lock.json
HIGH GHSA-25h7-pfq9-p65f flatted: GHSA-25h7-pfq9-p65f frontend/package-lock.json
HIGH MINED112 FastAPI POST /api/open_logs_folder has no auth src/endfield_essence_recognizer/server.…:235
MED MINED111 Bare except continues silently src/endfield_essence_recognizer/utils/l…:107
MED MINED111 Bare except continues silently src/endfield_essence_recognizer/service…:46
MED COMP001 [COMP001] High cognitive complexity: Function `recognize_roi` has cognitive complexity 15… src/endfield_essence_recognizer/core/re…:52
MED COMP001 [COMP001] High cognitive complexity: Function `_execute` has cognitive complexity 15 (Son… src/endfield_essence_recognizer/core/de…:68
MED AUC001 [AUC001] No Repobility access matrix policy found: The repository uses web/API frameworks…
MED DEPCUR-GHA GitHub Action `astral-sh/setup-uv@v7` is 1 major version(s) behind (latest v8.2.0) .github/workflows/backend-ci.yml:38
MED DEPCUR-GHA GitHub Action `actions/checkout@v5` is 1 major version(s) behind (latest v6.0.3) .github/workflows/backend-ci.yml:35
MED DEPCUR-GHA GitHub Action `softprops/action-gh-release@v2` is 1 major version(s) behind (latest v3.0.… .github/workflows/build-and-release.yml:60
MED DEPCUR-GHA GitHub Action `astral-sh/setup-uv@v7` is 1 major version(s) behind (latest v8.2.0) .github/workflows/build-and-release.yml:39
MED DEPCUR-GHA GitHub Action `actions/setup-node@v4` is 2 major version(s) behind (latest v6.4.0) .github/workflows/build-and-release.yml:24
MED DEPCUR-GHA GitHub Action `actions/checkout@v5` is 1 major version(s) behind (latest v6.0.3) .github/workflows/build-and-release.yml:21
MED DEPCUR-NPM npm package `npm-run-all2` is 1 major version(s) behind (8.0.4 -> 9.0.1) frontend/package.json
MED DEPCUR-NPM npm package `vue-router` is 1 major version(s) behind (4.6.4 -> 5.1.0) frontend/package.json
MED GHSA-mj87-hwqh-73pj python-multipart: GHSA-mj87-hwqh-73pj uv.lock
MED GHSA-mf9w-mj56-hr94 python-dotenv: GHSA-mf9w-mj56-hr94 uv.lock
MED GHSA-6w46-j5rx-g56g pytest: GHSA-6w46-j5rx-g56g uv.lock
MED GHSA-r73j-pqj5-w3x7 pillow: GHSA-r73j-pqj5-w3x7 uv.lock
MED GHSA-5xmw-vc9v-4wf2 pillow: GHSA-5xmw-vc9v-4wf2 uv.lock
MED GHSA-65pc-fj4g-8rjx idna: GHSA-65pc-fj4g-8rjx uv.lock
MED GHSA-48c2-rrv3-qjmp yaml: GHSA-48c2-rrv3-qjmp frontend/package-lock.json
MED GHSA-4w7w-66w2-5vf9 vite: GHSA-4w7w-66w2-5vf9 frontend/package-lock.json
MED GHSA-qx2v-qp2m-jg93 postcss: GHSA-qx2v-qp2m-jg93 frontend/package-lock.json
MED GHSA-3v7f-55p6-f55p picomatch: GHSA-3v7f-55p6-f55p frontend/package-lock.json
MED GHSA-f886-m6hf-6m8v brace-expansion: GHSA-f886-m6hf-6m8v frontend/package-lock.json
MED GHSA-2g4f-4pwh-qvx6 ajv: GHSA-2g4f-4pwh-qvx6 frontend/package-lock.json
MED WEB003 Public web service has no security.txt .well-known/security.txt
MED JRN003 Frontend API reference is not matched by discovered backend routes frontend/src/utils/gameData/gameData.ts:26
MED AUC002 [AUC002] Low visible authorization coverage in route inventory: Only 0.0% of discovered r…
MED AUC012 [AUC012] FastAPI interactive docs may be exposed by framework defaults: FastAPI exposes /…
MED AUC004 [AUC004] Admin route does not show super_admin separation: An administrative route was de… src/endfield_essence_recognizer/server.…:168
MED AUC004 [AUC004] Admin route does not show super_admin separation: An administrative route was de… src/endfield_essence_recognizer/server.…:156
MED AUC004 [AUC004] Admin route does not show super_admin separation: An administrative route was de… src/endfield_essence_recognizer/server.…:149
LOW COMP001 [COMP001] High cognitive complexity: Function `decide_actions` has cognitive complexity 1… src/endfield_essence_recognizer/core/sc…:29
LOW DEPCUR-GHA GitHub Action `mikepenz/action-junit-report@v6` is minor version(s) behind (latest v6.4.1) .github/workflows/backend-ci.yml:74
LOW DEPCUR-GHA GitHub Action `actions/setup-python@v6` is minor version(s) behind (latest v6.2.0) .github/workflows/build-and-release.yml:35
LOW DEPCUR-NPM npm package `vue-tsc` is minor version(s) behind (3.2.1 -> 3.3.3) frontend/package.json
LOW DEPCUR-NPM npm package `vite-plugin-vue-devtools` is minor version(s) behind (8.0.5 -> 8.1.2) frontend/package.json
LOW DEPCUR-NPM npm package `sass-embedded` is minor version(s) behind (1.97.1 -> 1.100.0) frontend/package.json
LOW DEPCUR-NPM npm package `prettier` is minor version(s) behind (3.7.4 -> 3.8.3) frontend/package.json
LOW DEPCUR-NPM npm package `eslint-config-vuetify` is minor version(s) behind (4.3.4 -> 4.6.2) frontend/package.json
LOW DEPCUR-NPM npm package `@vue/tsconfig` is minor version(s) behind (0.8.1 -> 0.9.1) frontend/package.json
LOW GHSA-5239-wwwm-4pmq pygments: GHSA-5239-wwwm-4pmq uv.lock
LOW AIC003 Duplicated implementation block across source files frontend/src/utils/gameData/gameData.ts:49
INFO MINED062 [MINED062] Python Dataclass No Fields: @dataclass over an empty class — unfinished model. src/endfield_essence_recognizer/core/re…:16
INFO MINED062 [MINED062] Python Dataclass No Fields: @dataclass over an empty class — unfinished model. src/endfield_essence_recognizer/core/re…:18
INFO MINED062 [MINED062] Python Dataclass No Fields: @dataclass over an empty class — unfinished model. src/endfield_essence_recognizer/core/re…:9
INFO MINED050 [MINED050] Stub Only Function: Function declared but body is just pass, return None, rais… src/endfield_essence_recognizer/excepti…:8
INFO MINED050 [MINED050] Stub Only Function: Function declared but body is just pass, return None, rais… src/endfield_essence_recognizer/core/la…:41
INFO MINED050 [MINED050] Stub Only Function: Function declared but body is just pass, return None, rais… src/endfield_essence_recognizer/core/in…:22
INFO MINED042 [MINED042] Cpp New Without Delete: C++ raw new without RAII / unique_ptr — memory leak ri… frontend/vite.config.mts:31
INFO MINED045 [MINED045] Ts Non Null Assertion: x! asserts not null - bypasses null checks - TypeError … frontend/src/utils/gameData/weapon.ts:42
INFO MINED044 [MINED044] Js Console Log Prod: console.log left in code. Should be replaced with logger … frontend/src/utils/autoFontSizing.ts:31
INFO MINED044 [MINED044] Js Console Log Prod: console.log left in code. Should be replaced with logger … frontend/src/composables/useUpdateCheck…:67
INFO MINED044 [MINED044] Js Console Log Prod: console.log left in code. Should be replaced with logger … frontend/src/composables/useLogs.ts:32
INFO DEPCUR-NPM npm package `vite-plugin-vuetify` is patch version(s) behind (2.1.2 -> 2.1.3) frontend/package.json
INFO DEPCUR-NPM npm package `@vitejs/plugin-vue` is patch version(s) behind (6.0.3 -> 6.0.7) frontend/package.json
Reset to top 5 120 findings available (after auto-suppression of test files + won't-fix)

Issue body (markdown)

## Code-quality scan: `Logical-Byte/endfield-essence-recognizer`

**Score: 70/100 (B+)**  ·  135 findings  ·  scanned 2026-06-05 13:12 UTC  ·  9,686 LOC

| Severity | Count |
|---|---|
| CRITICAL | 1 |
| HIGH | 63 |
| MEDIUM | 32 |
| LOW | 11 |

📊 [Full filterable report](https://repobility.com/scan/0491da20-f5eb-44df-a491-2ebc3b77fdd3/)  ·  ![scorecard](https://repobility.com/scan/0491da20-f5eb-44df-a491-2ebc3b77fdd3/report.png?v=1780665169-s2)

### Top findings

1. **CRITICAL** `MINED107` — Missing import: `queue` used but not imported
   `src/endfield_essence_recognizer/services/log_service.py:27` · ✓ Repobility
2. **HIGH** `SEC135` — Auth/permission check missing on AI-generated endpoint
   `src/endfield_essence_recognizer/server.py:156` · CWE-862
3. **HIGH** `SEC128` — Async function without await — fire-and-forget Promise (AI mistake)
   `src/endfield_essence_recognizer/hotkey_entrypoints.py:194`
4. **HIGH** `SEC128` — Async function without await — fire-and-forget Promise (AI mistake)
   `scripts/generate_templates.py:23`
5. **HIGH** `SEC029` — Server-Side Request Forgery (SSRF) — outbound HTTP from user input
   `src/endfield_essence_recognizer/core/config.py:88` · A10:2021 SSRF

---

**Security note**: this issue is public. If any flagged finding is a real, exploitable vulnerability, please redirect to your `SECURITY.md` policy or open a [private security advisory](https://docs.github.com/en/code-security/security-advisories/guidance-on-reporting-and-writing-information-about-vulnerabilities/privately-reporting-a-security-vulnerability) instead. We're happy to close this and re-submit privately.

---

_Filed automatically. Close this issue if not useful — we won't refile. Full report: https://repobility.com/scan/0491da20-f5eb-44df-a491-2ebc3b77fdd3/_
Megaproject â high spam risk
Could not determine 'Logical-Byte/endfield-essence-recognizer' star count (GitHub API rate-limited or unreachable). When in doubt about repo size, prefer opening a focused PR or a discussion rather than an issue.

The button opens GitHubâs new-issue page in a new tab. You will see the title + body pre-filled â review, edit if you want, then click GitHubâs "Submit new issue" button. Repobility never posts anything on your behalf.

For real security findings on big repos: use the project's SECURITY.md or private advisory flow instead of a public issue.