← Legacy view v2 (rp.*)

alumnium-hq/alumnium

https://github.com/alumnium-hq/alumnium · lang: typescript · LOC: · source: user_submitted

Quality
85.8
Grade A-
Security
100.0
Findings
134
0 critical · 75 high
Status
completed
May 31, 2026 01:23
high: 75 info: 30 low: 20 medium: 9
Top rules by occurrence
RuleSeverityCount
MINED115 GitHub Action pinned to mutable ref (not 40-char SHA) high 25
MINED108 self.attribute used but never assigned in __init__ high 25
AIC003 Duplicated implementation block across source files low 13
MINED106 Phantom test coverage (assertion-free test) high 5
MINED050 Stub Only Function info 4
SEC132 String concat where the language has interpolation (AI styl… low 4
MINED044 Js Console Log Prod info 4
MINED054 Ts As Any info 4
MINED045 Ts Non Null Assertion info 4
COMP001 [COMP001] High cognitive complexity: Function `load_yfinanc… low 4
First 134 findings (severity-sorted)
high COMP001 [COMP001] High cognitive complexity: Function `load_yfinance_data` has cognitive complexity 9 (SonarSource scale). Cognitive complexity measures how hard the function is for a human to understand — nested branches, boolean chains, and recursion all weigh in. Breakdown: except=1, for=1, if=2, nested_bonus=3, or=2.
packages/python/src/alumnium/accessibility/chromium_accessibility_tree.py:65 · conf 0.95
[COMP001] High cognitive complexity: Function `_node_to_xml` has cognitive complexity 27 (SonarSource scale). Cognitive complexity measures how hard the function is for a human to understand — nested…
high MINED106 Phantom test coverage (assertion-free test) CWE-1126
packages/python/examples/pytest/drag_slider_test.py:11 · conf 1.00
[MINED106] Phantom test coverage: test_drag_slider: Test function `test_drag_slider` runs code but contains no assert / expect / should call — it passes regardless of behaviour. Adds line coverage wi…
high MINED106 Phantom test coverage (assertion-free test) CWE-1126
packages/python/examples/pytest/execute_javascript_test.py:7 · conf 1.00
[MINED106] Phantom test coverage: test_execute_javascript_to_scroll: Test function `test_execute_javascript_to_scroll` runs code but contains no assert / expect / should call — it passes regardless o…
high MINED106 Phantom test coverage (assertion-free test) CWE-1126
packages/python/examples/pytest/frames_test.py:21 · conf 1.00
[MINED106] Phantom test coverage: test_cross_origin_iframe: Test function `test_cross_origin_iframe` runs code but contains no assert / expect / should call — it passes regardless of behaviour. Adds …
high MINED106 Phantom test coverage (assertion-free test) CWE-1126
packages/python/examples/pytest/select_test.py:13 · conf 1.00
[MINED106] Phantom test coverage: test_select_option: Test function `test_select_option` runs code but contains no assert / expect / should call — it passes regardless of behaviour. Adds line coverag…
high MINED106 Phantom test coverage (assertion-free test) CWE-1126
packages/python/examples/pytest/waiting_test.py:19 · conf 1.00
[MINED106] Phantom test coverage: test_waiting_for_requests_and_form_updates: Test function `test_waiting_for_requests_and_form_updates` runs code but contains no assert / expect / should call — it p…
high MINED108 self.attribute used but never assigned in __init__ CWE-476
packages/python/src/alumnium/accessibility/chromium_accessibility_tree.py:53 · conf 1.00
[MINED108] `self._node_to_xml` used but never assigned in __init__: Method `to_str` of class `ChromiumAccessibilityTree` reads `self._node_to_xml`, but no assignment to it exists in __init__ (and no …
high MINED108 self.attribute used but never assigned in __init__ CWE-476
packages/python/src/alumnium/accessibility/chromium_accessibility_tree.py:89 · conf 1.00
[MINED108] `self._to_str` used but never assigned in __init__: Method `_node_to_xml` of class `ChromiumAccessibilityTree` reads `self._to_str`, but no assignment to it exists in __init__ (and no clas…
high MINED108 self.attribute used but never assigned in __init__ CWE-476
packages/python/src/alumnium/accessibility/chromium_accessibility_tree.py:101 · conf 1.00
[MINED108] `self._to_str` used but never assigned in __init__: Method `_node_to_xml` of class `ChromiumAccessibilityTree` reads `self._to_str`, but no assignment to it exists in __init__ (and no clas…
high MINED108 self.attribute used but never assigned in __init__ CWE-476
packages/python/src/alumnium/accessibility/chromium_accessibility_tree.py:106 · conf 1.00
[MINED108] `self._to_str` used but never assigned in __init__: Method `_node_to_xml` of class `ChromiumAccessibilityTree` reads `self._to_str`, but no assignment to it exists in __init__ (and no clas…
high MINED108 self.attribute used but never assigned in __init__ CWE-476
packages/python/src/alumnium/accessibility/chromium_accessibility_tree.py:112 · conf 1.00
[MINED108] `self._node_to_xml` used but never assigned in __init__: Method `_node_to_xml` of class `ChromiumAccessibilityTree` reads `self._node_to_xml`, but no assignment to it exists in __init__ (a…
high MINED108 self.attribute used but never assigned in __init__ CWE-476
packages/python/src/alumnium/accessibility/chromium_accessibility_tree.py:119 · conf 1.00
[MINED108] `self._node_to_xml` used but never assigned in __init__: Method `_node_to_xml` of class `ChromiumAccessibilityTree` reads `self._node_to_xml`, but no assignment to it exists in __init__ (a…
high MINED108 self.attribute used but never assigned in __init__ CWE-476
packages/python/src/alumnium/accessibility/chromium_accessibility_tree.py:141 · conf 1.00
[MINED108] `self.to_str` used but never assigned in __init__: Method `element_by_id` of class `ChromiumAccessibilityTree` reads `self.to_str`, but no assignment to it exists in __init__ (and no class…
high MINED108 self.attribute used but never assigned in __init__ CWE-476
packages/python/src/alumnium/accessibility/chromium_accessibility_tree.py:172 · conf 1.00
[MINED108] `self.to_str` used but never assigned in __init__: Method `scope_to_area` of class `ChromiumAccessibilityTree` reads `self.to_str`, but no assignment to it exists in __init__ (and no class…
high MINED108 self.attribute used but never assigned in __init__ CWE-476
packages/python/src/alumnium/accessibility/chromium_accessibility_tree.py:203 · conf 1.00
[MINED108] `self._from_xml` used but never assigned in __init__: Method `scope_to_area` of class `ChromiumAccessibilityTree` reads `self._from_xml`, but no assignment to it exists in __init__ (and no…
high MINED108 self.attribute used but never assigned in __init__ CWE-476
packages/python/src/alumnium/accessibility/uiautomator2_accessibility_tree.py:31 · conf 1.00
[MINED108] `self._add_raw_ids` used but never assigned in __init__: Method `to_str` of class `UIAutomator2AccessibilityTree` reads `self._add_raw_ids`, but no assignment to it exists in __init__ (and…
high MINED108 self.attribute used but never assigned in __init__ CWE-476
packages/python/src/alumnium/accessibility/uiautomator2_accessibility_tree.py:43 · conf 1.00
[MINED108] `self._add_raw_ids` used but never assigned in __init__: Method `_add_raw_ids` of class `UIAutomator2AccessibilityTree` reads `self._add_raw_ids`, but no assignment to it exists in __init_…
high MINED108 self.attribute used but never assigned in __init__ CWE-476
packages/python/src/alumnium/accessibility/uiautomator2_accessibility_tree.py:56 · conf 1.00
[MINED108] `self.to_str` used but never assigned in __init__: Method `element_by_id` of class `UIAutomator2AccessibilityTree` reads `self.to_str`, but no assignment to it exists in __init__ (and no c…
high MINED108 self.attribute used but never assigned in __init__ CWE-476
packages/python/src/alumnium/accessibility/uiautomator2_accessibility_tree.py:85 · conf 1.00
[MINED108] `self.to_str` used but never assigned in __init__: Method `scope_to_area` of class `UIAutomator2AccessibilityTree` reads `self.to_str`, but no assignment to it exists in __init__ (and no c…
high MINED108 self.attribute used but never assigned in __init__ CWE-476
packages/python/src/alumnium/accessibility/xcuitest_accessibility_tree.py:22 · conf 1.00
[MINED108] `self._add_raw_ids` used but never assigned in __init__: Method `to_str` of class `XCUITestAccessibilityTree` reads `self._add_raw_ids`, but no assignment to it exists in __init__ (and no …
high MINED108 self.attribute used but never assigned in __init__ CWE-476
packages/python/src/alumnium/accessibility/xcuitest_accessibility_tree.py:34 · conf 1.00
[MINED108] `self._add_raw_ids` used but never assigned in __init__: Method `_add_raw_ids` of class `XCUITestAccessibilityTree` reads `self._add_raw_ids`, but no assignment to it exists in __init__ (a…
high MINED108 self.attribute used but never assigned in __init__ CWE-476
packages/python/src/alumnium/accessibility/xcuitest_accessibility_tree.py:47 · conf 1.00
[MINED108] `self.to_str` used but never assigned in __init__: Method `element_by_id` of class `XCUITestAccessibilityTree` reads `self.to_str`, but no assignment to it exists in __init__ (and no class…
high MINED108 self.attribute used but never assigned in __init__ CWE-476
packages/python/src/alumnium/accessibility/xcuitest_accessibility_tree.py:75 · conf 1.00
[MINED108] `self.to_str` used but never assigned in __init__: Method `scope_to_area` of class `XCUITestAccessibilityTree` reads `self.to_str`, but no assignment to it exists in __init__ (and no class…
high MINED108 self.attribute used but never assigned in __init__ CWE-476
packages/python/src/alumnium/clients/http_client.py:86 · conf 1.00
[MINED108] `self._stop_server` used but never assigned in __init__: Method `quit` of class `HttpClient` reads `self._stop_server`, but no assignment to it exists in __init__ (and no class-level fallb…
high MINED108 self.attribute used but never assigned in __init__ CWE-476
packages/python/src/alumnium/clients/http_client.py:229 · conf 1.00
[MINED108] `self._build_server_pid_name` used but never assigned in __init__: Method `_resolve_url` of class `HttpClient` reads `self._build_server_pid_name`, but no assignment to it exists in __init…
high MINED108 self.attribute used but never assigned in __init__ CWE-476
packages/python/src/alumnium/clients/http_client.py:242 · conf 1.00
[MINED108] `self._stop_server` used but never assigned in __init__: Method `_resolve_url` of class `HttpClient` reads `self._stop_server`, but no assignment to it exists in __init__ (and no class-lev…
high MINED108 self.attribute used but never assigned in __init__ CWE-476
packages/python/src/alumnium/drivers/selenium_driver.py:59 · conf 1.00
[MINED108] `self._wait_for_page_to_load` used but never assigned in __init__: Method `accessibility_tree` of class `SeleniumDriver` reads `self._wait_for_page_to_load`, but no assignment to it exists…
high MINED108 self.attribute used but never assigned in __init__ CWE-476
packages/python/src/alumnium/drivers/selenium_driver.py:63 · conf 1.00
[MINED108] `self._get_all_frame_ids` used but never assigned in __init__: Method `accessibility_tree` of class `SeleniumDriver` reads `self._get_all_frame_ids`, but no assignment to it exists in __in…
high MINED108 self.attribute used but never assigned in __init__ CWE-476
packages/python/src/alumnium/drivers/selenium_driver.py:71 · conf 1.00
[MINED108] `self._build_frame_hierarchy` used but never assigned in __init__: Method `accessibility_tree` of class `SeleniumDriver` reads `self._build_frame_hierarchy`, but no assignment to it exists…
high MINED108 self.attribute used but never assigned in __init__ CWE-476
packages/python/src/alumnium/drivers/selenium_driver.py:85 · conf 1.00
[MINED108] `self._get_frame_chain` used but never assigned in __init__: Method `accessibility_tree` of class `SeleniumDriver` reads `self._get_frame_chain`, but no assignment to it exists in __init__…
high MINED108 self.attribute used but never assigned in __init__ CWE-476
packages/python/src/alumnium/tools/upload_tool.py:22 · conf 1.00
[MINED108] `self._normalize_paths` used but never assigned in __init__: Method `invoke` of class `UploadTool` reads `self._normalize_paths`, but no assignment to it exists in __init__ (and no class-l…
high MINED115 GitHub Action pinned to mutable ref (not 40-char SHA) CWE-829
.github/workflows/ci-java.yml:57 · conf 0.90
[MINED115] Action `actions/checkout` pinned to mutable ref `@v6`: `uses: actions/checkout@v6` resolves at workflow-run time. Tags and branches can be re-pushed by the action owner; that made the tj-a…
high MINED115 GitHub Action pinned to mutable ref (not 40-char SHA) CWE-829
.github/workflows/ci-java.yml:81 · conf 0.90
[MINED115] Action `mxschmitt/action-tmate` pinned to mutable ref `@v3`: `uses: mxschmitt/action-tmate@v3` resolves at workflow-run time. Tags and branches can be re-pushed by the action owner; that m…
high MINED115 GitHub Action pinned to mutable ref (not 40-char SHA) CWE-829
.github/workflows/ci-java.yml:91 · conf 0.90
[MINED115] Action `actions/checkout` pinned to mutable ref `@v6`: `uses: actions/checkout@v6` resolves at workflow-run time. Tags and branches can be re-pushed by the action owner; that made the tj-a…
high MINED115 GitHub Action pinned to mutable ref (not 40-char SHA) CWE-829
.github/workflows/ci-java.yml:106 · conf 0.90
[MINED115] Action `mxschmitt/action-tmate` pinned to mutable ref `@v3`: `uses: mxschmitt/action-tmate@v3` resolves at workflow-run time. Tags and branches can be re-pushed by the action owner; that m…
high MINED115 GitHub Action pinned to mutable ref (not 40-char SHA) CWE-829
.github/workflows/ci.yml:30 · conf 0.90
[MINED115] Action `actions/checkout` pinned to mutable ref `@v6`: `uses: actions/checkout@v6` resolves at workflow-run time. Tags and branches can be re-pushed by the action owner; that made the tj-a…
high MINED115 GitHub Action pinned to mutable ref (not 40-char SHA) CWE-829
.github/workflows/ci.yml:41 · conf 0.90
[MINED115] Action `actions-cool/check-user-permission` pinned to mutable ref `@v2`: `uses: actions-cool/check-user-permission@v2` resolves at workflow-run time. Tags and branches can be re-pushed by …
high MINED115 GitHub Action pinned to mutable ref (not 40-char SHA) CWE-829
.github/workflows/ci.yml:93 · conf 0.90
[MINED115] Action `mxschmitt/action-tmate` pinned to mutable ref `@v3`: `uses: mxschmitt/action-tmate@v3` resolves at workflow-run time. Tags and branches can be re-pushed by the action owner; that m…
high MINED115 GitHub Action pinned to mutable ref (not 40-char SHA) CWE-829
.github/workflows/deployment.yml:25 · conf 0.90
[MINED115] Action `actions/checkout` pinned to mutable ref `@v6`: `uses: actions/checkout@v6` resolves at workflow-run time. Tags and branches can be re-pushed by the action owner; that made the tj-a…
high MINED115 GitHub Action pinned to mutable ref (not 40-char SHA) CWE-829
.github/workflows/deployment.yml:26 · conf 0.90
[MINED115] Action `jdx/mise-action` pinned to mutable ref `@v4`: `uses: jdx/mise-action@v4` resolves at workflow-run time. Tags and branches can be re-pushed by the action owner; that made the tj-act…
high MINED115 GitHub Action pinned to mutable ref (not 40-char SHA) CWE-829
.github/workflows/deployment.yml:33 · conf 0.90
[MINED115] Action `actions/upload-pages-artifact` pinned to mutable ref `@v5`: `uses: actions/upload-pages-artifact@v5` resolves at workflow-run time. Tags and branches can be re-pushed by the action…
high MINED115 GitHub Action pinned to mutable ref (not 40-char SHA) CWE-829
.github/workflows/deployment.yml:47 · conf 0.90
[MINED115] Action `actions/deploy-pages` pinned to mutable ref `@v5`: `uses: actions/deploy-pages@v5` resolves at workflow-run time. Tags and branches can be re-pushed by the action owner; that made …
high MINED115 GitHub Action pinned to mutable ref (not 40-char SHA) CWE-829
.github/workflows/release.yml:45 · conf 0.90
[MINED115] Action `actions/checkout` pinned to mutable ref `@v6`: `uses: actions/checkout@v6` resolves at workflow-run time. Tags and branches can be re-pushed by the action owner; that made the tj-a…
high MINED115 GitHub Action pinned to mutable ref (not 40-char SHA) CWE-829
.github/workflows/release.yml:59 · conf 0.90
[MINED115] Action `pypa/gh-action-pypi-publish` pinned to mutable ref `@release/v1`: `uses: pypa/gh-action-pypi-publish@release/v1` resolves at workflow-run time. Tags and branches can be re-pushed b…
high MINED115 GitHub Action pinned to mutable ref (not 40-char SHA) CWE-829
.github/workflows/release.yml:64 · conf 0.90
[MINED115] Action `pypa/gh-action-pypi-publish` pinned to mutable ref `@release/v1`: `uses: pypa/gh-action-pypi-publish@release/v1` resolves at workflow-run time. Tags and branches can be re-pushed b…
high MINED115 GitHub Action pinned to mutable ref (not 40-char SHA) CWE-829
.github/workflows/release.yml:70 · conf 0.90
[MINED115] Action `mxschmitt/action-tmate` pinned to mutable ref `@v3`: `uses: mxschmitt/action-tmate@v3` resolves at workflow-run time. Tags and branches can be re-pushed by the action owner; that m…
high MINED115 GitHub Action pinned to mutable ref (not 40-char SHA) CWE-829
.github/workflows/release.yml:85 · conf 0.90
[MINED115] Action `actions/checkout` pinned to mutable ref `@v6`: `uses: actions/checkout@v6` resolves at workflow-run time. Tags and branches can be re-pushed by the action owner; that made the tj-a…
high MINED115 GitHub Action pinned to mutable ref (not 40-char SHA) CWE-829
.github/workflows/release.yml:101 · conf 0.90
[MINED115] Action `mxschmitt/action-tmate` pinned to mutable ref `@v3`: `uses: mxschmitt/action-tmate@v3` resolves at workflow-run time. Tags and branches can be re-pushed by the action owner; that m…
high MINED115 GitHub Action pinned to mutable ref (not 40-char SHA) CWE-829
.github/workflows/release.yml:115 · conf 0.90
[MINED115] Action `actions/checkout` pinned to mutable ref `@v6`: `uses: actions/checkout@v6` resolves at workflow-run time. Tags and branches can be re-pushed by the action owner; that made the tj-a…
high MINED115 GitHub Action pinned to mutable ref (not 40-char SHA) CWE-829
.github/workflows/release.yml:133 · conf 0.90
[MINED115] Action `mxschmitt/action-tmate` pinned to mutable ref `@v3`: `uses: mxschmitt/action-tmate@v3` resolves at workflow-run time. Tags and branches can be re-pushed by the action owner; that m…
high MINED115 GitHub Action pinned to mutable ref (not 40-char SHA) CWE-829
.github/workflows/release.yml:149 · conf 0.90
[MINED115] Action `actions/checkout` pinned to mutable ref `@v6`: `uses: actions/checkout@v6` resolves at workflow-run time. Tags and branches can be re-pushed by the action owner; that made the tj-a…
high MINED115 GitHub Action pinned to mutable ref (not 40-char SHA) CWE-829
.github/workflows/release.yml:199 · conf 0.90
[MINED115] Action `actions/attest-build-provenance` pinned to mutable ref `@v3`: `uses: actions/attest-build-provenance@v3` resolves at workflow-run time. Tags and branches can be re-pushed by the ac…
high MINED115 GitHub Action pinned to mutable ref (not 40-char SHA) CWE-829
.github/workflows/release.yml:207 · conf 0.90
[MINED115] Action `mxschmitt/action-tmate` pinned to mutable ref `@v3`: `uses: mxschmitt/action-tmate@v3` resolves at workflow-run time. Tags and branches can be re-pushed by the action owner; that m…
high MINED115 GitHub Action pinned to mutable ref (not 40-char SHA) CWE-829
.github/workflows/release.yml:223 · conf 0.90
[MINED115] Action `actions/checkout` pinned to mutable ref `@v6`: `uses: actions/checkout@v6` resolves at workflow-run time. Tags and branches can be re-pushed by the action owner; that made the tj-a…
high MINED115 GitHub Action pinned to mutable ref (not 40-char SHA) CWE-829
.github/workflows/release.yml:241 · conf 0.90
[MINED115] Action `actions/attest` pinned to mutable ref `@v4`: `uses: actions/attest@v4` resolves at workflow-run time. Tags and branches can be re-pushed by the action owner; that made the tj-actio…
high MINED115 GitHub Action pinned to mutable ref (not 40-char SHA) CWE-829
.github/workflows/release.yml:282 · conf 0.90
[MINED115] Action `mxschmitt/action-tmate` pinned to mutable ref `@v3`: `uses: mxschmitt/action-tmate@v3` resolves at workflow-run time. Tags and branches can be re-pushed by the action owner; that m…
high MINED118 Dockerfile FROM not pinned by sha256 digest CWE-829
Dockerfile:1 · conf 0.90
[MINED118] Dockerfile FROM `debian:bookworm-slim` not pinned by digest: `FROM debian:bookworm-slim` resolves the tag at build time. The registry CAN re-push a different image for the same tag, so eve…
high MINED119 Dockerfile ADD pulls remote URL with no integrity check CWE-829CWE-494
Dockerfile:6 · conf 0.90
[MINED119] Dockerfile `ADD https://github.com/krallin/tini/releases/download/v0.19.0/tini-${TARGETARCH}`: Dockerfile `ADD <url>` downloads a remote artifact into the image with no integrity check. If…
high MINED122 package.json dep pulled from git URL or tarball CWE-829
packages/typescript/tests/npm/cjs/package.json:1 · conf 0.90
[MINED122] package.json dep `alumnium` pulled from URL/Git: `dependencies.alumnium` = `file:../../../dist/npm-alumnium` bypasses the npm registry. No integrity hash, no version locking, no registry-s…
high MINED122 package.json dep pulled from git URL or tarball CWE-829
packages/typescript/tests/npm/esm/package.json:1 · conf 0.90
[MINED122] package.json dep `alumnium` pulled from URL/Git: `dependencies.alumnium` = `file:../../../dist/npm-alumnium` bypasses the npm registry. No integrity hash, no version locking, no registry-s…
high MINED134 [MINED134] Binary file `bin/ref/ScriptoriaCommonDefs.dll` committed in source repo: `bin/ref/ScriptoriaCommonDefs.dll` is a .dll binary (29,208 bytes) committed to a repo that otherwise has 1643 source files. Trojan binaries inside otherwise-normal source repos are a known supply-chain attack: a compromised dependency or PR slips in a binary that gets executed by build scripts.
packages/java/gradle/wrapper/gradle-wrapper.jar:1 · conf 0.90
[MINED134] Binary file `packages/java/gradle/wrapper/gradle-wrapper.jar` committed in source repo: `packages/java/gradle/wrapper/gradle-wrapper.jar` is a .jar binary (48,966 bytes) committed to a rep…
high SEC020 Secret Printed to Logs
packages/typescript/src/server/LlmFactory.ts:335 · conf 0.92
[SEC020] Secret Printed to Logs: Debug or diagnostic code appears to print a credential-bearing value. This is a frequent AI-assisted coding failure: the helper exposes the exact value needed for tro…
high SEC024 XML External Entity (XXE) — Java parser default
packages/java/src/main/java/ai/alumnium/accessibility/ChromiumAccessibilityTree.java:245 · conf 1.00
[SEC024] XML External Entity (XXE) — Java parser default: Java XML parsers accept external entity references by default. An attacker can craft XML input that reads server files (file://), exfiltrates…
high SEC029 Server-Side Request Forgery (SSRF) — outbound HTTP from user input
packages/python/src/alumnium/clients/http_client.py:33 · conf 1.00
[SEC029] Server-Side Request Forgery (SSRF) — outbound HTTP from user input: Outbound HTTP request to a user-controlled URL without allowlist validation. Attackers can probe internal services (169.25…
high SEC029 Server-Side Request Forgery (SSRF) — outbound HTTP from user input
packages/python/src/alumnium/drivers/appium_driver.py:123 · conf 1.00
[SEC029] Server-Side Request Forgery (SSRF) — outbound HTTP from user input: Outbound HTTP request to a user-controlled URL without allowlist validation. Attackers can probe internal services (169.25…
high SEC029 Server-Side Request Forgery (SSRF) — outbound HTTP from user input
packages/python/src/alumnium/drivers/base_driver.py:62 · conf 1.00
[SEC029] Server-Side Request Forgery (SSRF) — outbound HTTP from user input: Outbound HTTP request to a user-controlled URL without allowlist validation. Attackers can probe internal services (169.25…
high SEC040 innerHTML XSS — template literal with server-supplied data
packages/typescript/src/drivers/AppiumDriver.ts:205 · conf 1.00
[SEC040] innerHTML XSS — template literal with server-supplied data: Setting .innerHTML with a template literal that interpolates server-supplied or user-supplied data is the canonical stored/reflect…
high SEC040 innerHTML XSS — template literal with server-supplied data
packages/typescript/src/server/agents/PlannerAgent.ts:155 · conf 1.00
[SEC040] innerHTML XSS — template literal with server-supplied data: Setting .innerHTML with a template literal that interpolates server-supplied or user-supplied data is the canonical stored/reflect…
high SEC040 innerHTML XSS — template literal with server-supplied data
packages/typescript/src/tools/BaseTool.ts:30 · conf 1.00
[SEC040] innerHTML XSS — template literal with server-supplied data: Setting .innerHTML with a template literal that interpolates server-supplied or user-supplied data is the canonical stored/reflect…
high SEC083 JS: new RegExp() with non-literal
packages/typescript/src/server/agents/RetrieverAgent.ts:156 · conf 1.00
[SEC083] JS: new RegExp() with non-literal: new RegExp(<variable>) — variable input can craft a ReDoS pattern. Ported from eslint-plugin-security detect-non-literal-regexp (Apache-2.0).
high SEC085 JS: child_process.exec with non-literal
packages/typescript/src/server/cache/ElementsCache/ElementsCacheMask.ts:127 · conf 1.00
[SEC085] JS: child_process.exec with non-literal: child_process.exec with user-derived input enables command injection. Ported from eslint-plugin-security detect-child-process (Apache-2.0).
high SEC114 path.join / Path() on user-controlled segment without containment check
packages/typescript/src/mcp/tools/startMcpTool.ts:81 · conf 1.00
[SEC114] path.join / Path() on user-controlled segment without containment check: filepath.Clean / path.Join on attacker-supplied segments does NOT prevent escape from the base directory. `../../../e…
high SEC114 path.join / Path() on user-controlled segment without containment check
packages/typescript/src/standalone/setupEmbeddedDependencies.ts:188 · conf 1.00
[SEC114] path.join / Path() on user-controlled segment without containment check: filepath.Clean / path.Join on attacker-supplied segments does NOT prevent escape from the base directory. `../../../e…
high SEC128 Async function without await — fire-and-forget Promise (AI mistake)
packages/python/src/alumnium/drivers/scripts/waiter.js:227 · conf 1.00
[SEC128] Async function without await — fire-and-forget Promise (AI mistake): Async call invoked without `await` returns an unhandled Promise. The outer function resolves before the inner work comple…
high SEC128 Async function without await — fire-and-forget Promise (AI mistake)
packages/typescript/src/drivers/scripts/waiter.js:227 · conf 1.00
[SEC128] Async function without await — fire-and-forget Promise (AI mistake): Async call invoked without `await` returns an unhandled Promise. The outer function resolves before the inner work comple…
medium AGT015 Remote install command pipes network code directly to a shell
websites/docs/src/content/blog/2026-05-13-release-0.20.0.md:27 · conf 0.70
Remote install command pipes network code directly to a shell
medium COMP001 [COMP001] High cognitive complexity: Function `load_yfinance_data` has cognitive complexity 9 (SonarSource scale). Cognitive complexity measures how hard the function is for a human to understand — nested branches, boolean chains, and recursion all weigh in. Breakdown: except=1, for=1, if=2, nested_bonus=3, or=2.
packages/python/examples/behave/features/environment.py:235 · conf 0.95
[COMP001] High cognitive complexity: Function `after_scenario` has cognitive complexity 16 (SonarSource scale). Cognitive complexity measures how hard the function is for a human to understand — nest…
medium DKR001 Docker final stage has no non-root USER
Dockerfile:1 · conf 0.82
Docker final stage has no non-root USER
medium DKR003 Dockerfile base image uses the latest tag
telemetry/docker-compose.yml:1 · conf 0.94
Compose service `lgtm` image uses the latest tag
medium DKR013 Dockerfile ADD downloads remote content
Dockerfile:7 · conf 0.84
Dockerfile ADD downloads remote content
medium ERR002 [ERR002] Empty Catch Block: Empty catch blocks hide errors.
packages/typescript/src/server/ServerCommand.ts:281 · conf 1.00
[ERR002] Empty Catch Block: Empty catch blocks hide errors.
medium MINED111 Bare except continues silently
packages/python/src/alumnium/accessibility/chromium_accessibility_tree.py:178 · conf 1.00
[MINED111] Bare except continues silently: Bare `except:` (or `except Exception:`) that runs code without re-raising or logging the exception. Hides real failures and makes bugs hard to diagnose.
medium SEC045 eval()/exec() on stored or user-supplied data
packages/typescript/src/server/cache/ElementsCache/ElementsCacheMask.ts:127 · conf 1.00
[SEC045] eval()/exec() on stored or user-supplied data: eval() and exec() on data — even admin-stored data — is a lateral-movement vector after any one credential compromise. Sandboxes (__builtins__ …
medium SEC127 AI agent stub — TODO: implement / pass placeholder body
packages/python/src/alumnium/drivers/appium_driver.py:64 · conf 1.00
[SEC127] AI agent stub — TODO: implement / pass placeholder body: Function body left as TODO/pass/raise NotImplementedError after an AI scaffolding pass. The route appears to exist (and may even pass…
low AIC003 Duplicated implementation block across source files
packages/java/src/main/java/ai/alumnium/accessibility/XCUITestAccessibilityTree.java:14 · conf 0.86
Duplicated implementation block across source files
low AIC003 Duplicated implementation block across source files
packages/java/src/main/java/ai/alumnium/Area.java:96 · conf 0.86
Duplicated implementation block across source files
low AIC003 Duplicated implementation block across source files
packages/java/src/main/java/ai/alumnium/driver/SeleniumDriver.java:54 · conf 0.86
Duplicated implementation block across source files
low AIC003 Duplicated implementation block across source files
packages/java/src/main/java/ai/alumnium/driver/SeleniumDriver.java:144 · conf 0.86
Duplicated implementation block across source files
low AIC003 Duplicated implementation block across source files
packages/python/src/alumnium/accessibility/xcuitest_accessibility_tree.py:7 · conf 0.86
Duplicated implementation block across source files
low AIC003 Duplicated implementation block across source files
packages/python/src/alumnium/drivers/playwright_driver.py:66 · conf 0.86
Duplicated implementation block across source files
low AIC003 Duplicated implementation block across source files
packages/typescript/src/accessibility/XCUITestAccessibilityTree.ts:38 · conf 0.86
Duplicated implementation block across source files
low AIC003 Duplicated implementation block across source files
packages/typescript/src/client/Area.ts:53 · conf 0.86
Duplicated implementation block across source files
low AIC003 Duplicated implementation block across source files
packages/typescript/src/drivers/scripts/waiter.js:1 · conf 0.86
Duplicated implementation block across source files
low AIC003 Duplicated implementation block across source files
packages/typescript/src/server/agents/LocatorAgent.ts:59 · conf 0.86
Duplicated implementation block across source files
low AIC003 Duplicated implementation block across source files
packages/typescript/src/server/cache/ResponseCache.ts:111 · conf 0.86
Duplicated implementation block across source files
low AIC003 Duplicated implementation block across source files
packages/typescript/src/tools/HoverTool.ts:7 · conf 0.86
Duplicated implementation block across source files
low AIC003 Duplicated implementation block across source files
packages/typescript/src/tools/ScrollTool.ts:6 · conf 0.86
Duplicated implementation block across source files
low COMP001 [COMP001] High cognitive complexity: Function `load_yfinance_data` has cognitive complexity 9 (SonarSource scale). Cognitive complexity measures how hard the function is for a human to understand — nested branches, boolean chains, and recursion all weigh in. Breakdown: except=1, for=1, if=2, nested_bonus=3, or=2.
packages/python/examples/behave/features/environment.py:26 · conf 0.95
[COMP001] High cognitive complexity: Function `driver` has cognitive complexity 11 (SonarSource scale). Cognitive complexity measures how hard the function is for a human to understand — nested branc…
low DKC006 Compose service does not declare a runtime user
telemetry/docker-compose.yml:1 · conf 0.56
Compose service does not declare a runtime user
low DKC010 Compose service lacks no-new-privileges hardening
telemetry/docker-compose.yml:1 · conf 0.62
Compose service lacks no-new-privileges hardening
low DKR008 .dockerignore misses sensitive defaults
.dockerignore · conf 0.72
.dockerignore misses sensitive defaults
low SEC132 String concat where the language has interpolation (AI style drift)
packages/java/src/main/java/ai/alumnium/accessibility/ChromiumAccessibilityTree.java:183 · conf 1.00
[SEC132] String concat where the language has interpolation (AI style drift): String built by concatenation where the language has cleaner interpolation (Python f-strings since 3.6, JS template liter…
low SEC132 String concat where the language has interpolation (AI style drift)
packages/java/src/main/java/ai/alumnium/accessibility/UIAutomator2AccessibilityTree.java:63 · conf 1.00
[SEC132] String concat where the language has interpolation (AI style drift): String built by concatenation where the language has cleaner interpolation (Python f-strings since 3.6, JS template liter…
low SEC132 String concat where the language has interpolation (AI style drift)
packages/java/src/main/java/ai/alumnium/accessibility/XCUITestAccessibilityTree.java:52 · conf 1.00
[SEC132] String concat where the language has interpolation (AI style drift): String built by concatenation where the language has cleaner interpolation (Python f-strings since 3.6, JS template liter…
info COMP001 [COMP001] High cognitive complexity: Function `load_yfinance_data` has cognitive complexity 9 (SonarSource scale). Cognitive complexity measures how hard the function is for a human to understand — nested branches, boolean chains, and recursion all weigh in. Breakdown: except=1, for=1, if=2, nested_bonus=3, or=2.
· conf 0.20
[COMP001] High cognitive complexity (and 7 more): Same pattern found in 7 additional files. Review if needed.
info MINED043 Http Not Https CWE-319
· conf 0.20
[MINED043] Http Not Https (and 2 more): Same pattern found in 2 additional files. Review if needed.
info MINED043 Http Not Https CWE-319
packages/java/src/main/java/ai/alumnium/accessibility/ChromiumAccessibilityTree.java:257 · conf 1.00
[MINED043] Http Not Https: Hardcoded http:// (not localhost) for endpoints that handle credentials or data.
info MINED043 Http Not Https CWE-319
packages/python/src/alumnium/clients/http_client.py:245 · conf 1.00
[MINED043] Http Not Https: Hardcoded http:// (not localhost) for endpoints that handle credentials or data.
info MINED043 Http Not Https CWE-319
packages/typescript/src/server/ServerCommand.ts:151 · conf 1.00
[MINED043] Http Not Https: Hardcoded http:// (not localhost) for endpoints that handle credentials or data.
info MINED044 Js Console Log Prod CWE-532
· conf 0.20
[MINED044] Js Console Log Prod (and 4 more): Same pattern found in 4 additional files. Review if needed.
info MINED044 Js Console Log Prod CWE-532
packages/python/src/alumnium/drivers/scripts/waiter.js:54 · conf 1.00
[MINED044] Js Console Log Prod: console.log left in code. Should be replaced with logger or removed.
info MINED044 Js Console Log Prod CWE-532
packages/typescript/src/cli/CliCommand.ts:49 · conf 1.00
[MINED044] Js Console Log Prod: console.log left in code. Should be replaced with logger or removed.
info MINED044 Js Console Log Prod CWE-532
packages/typescript/src/Env.ts:319 · conf 1.00
[MINED044] Js Console Log Prod: console.log left in code. Should be replaced with logger or removed.
info MINED045 Ts Non Null Assertion CWE-476
· conf 0.20
[MINED045] Ts Non Null Assertion (and 4 more): Same pattern found in 4 additional files. Review if needed.
info MINED045 Ts Non Null Assertion CWE-476
packages/typescript/src/cli/CliCommand.ts:114 · conf 1.00
[MINED045] Ts Non Null Assertion: x! asserts not null - bypasses null checks - TypeError if wrong.
info MINED045 Ts Non Null Assertion CWE-476
packages/typescript/src/Env.ts:309 · conf 1.00
[MINED045] Ts Non Null Assertion: x! asserts not null - bypasses null checks - TypeError if wrong.
info MINED045 Ts Non Null Assertion CWE-476
packages/typescript/src/mcp/tools/checkMcpTool.ts:37 · conf 1.00
[MINED045] Ts Non Null Assertion: x! asserts not null - bypasses null checks - TypeError if wrong.
info MINED050 Stub Only Function CWE-1188
· conf 0.20
[MINED050] Stub Only Function (and 4 more): Same pattern found in 4 additional files. Review if needed.
info MINED050 Stub Only Function CWE-1188
packages/python/examples/behave/features/environment.py:140 · conf 1.00
[MINED050] Stub Only Function: Function declared but body is just pass, return None, raise NotImplementedError, or TODO comment.
info MINED050 Stub Only Function CWE-1188
packages/python/src/alumnium/accessibility/base_accessibility_tree.py:9 · conf 1.00
[MINED050] Stub Only Function: Function declared but body is just pass, return None, raise NotImplementedError, or TODO comment.
info MINED050 Stub Only Function CWE-1188
packages/python/src/alumnium/alumni.py:55 · conf 1.00
[MINED050] Stub Only Function: Function declared but body is just pass, return None, raise NotImplementedError, or TODO comment.
info MINED052 Ts Any Typed CWE-704
· conf 0.20
[MINED052] Ts Any Typed (and 4 more): Same pattern found in 4 additional files. Review if needed.
info MINED052 Ts Any Typed CWE-704
packages/typescript/src/client/Alumni.ts:64 · conf 1.00
[MINED052] Ts Any Typed: : any used as type annotation. Defeats TypeScript type safety.
info MINED052 Ts Any Typed CWE-704
packages/typescript/src/mcp/McpServer.ts:53 · conf 1.00
[MINED052] Ts Any Typed: : any used as type annotation. Defeats TypeScript type safety.
info MINED052 Ts Any Typed CWE-704
packages/typescript/src/server/ServerTelemetry.ts:30 · conf 1.00
[MINED052] Ts Any Typed: : any used as type annotation. Defeats TypeScript type safety.
info MINED054 Ts As Any CWE-704
· conf 0.20
[MINED054] Ts As Any (and 2 more): Same pattern found in 2 additional files. Review if needed.
info MINED054 Ts As Any CWE-704
packages/typescript/src/client/Alumni.ts:247 · conf 1.00
[MINED054] Ts As Any: Casting to any (as any) bypasses type checking entirely.
info MINED054 Ts As Any CWE-704
packages/typescript/src/mcp/McpServer.ts:52 · conf 1.00
[MINED054] Ts As Any: Casting to any (as any) bypasses type checking entirely.
info MINED054 Ts As Any CWE-704
packages/typescript/src/Xml.ts:16 · conf 1.00
[MINED054] Ts As Any: Casting to any (as any) bypasses type checking entirely.
info MINED062 Python Dataclass No Fields
packages/python/src/alumnium/result.py:4 · conf 1.00
[MINED062] Python Dataclass No Fields: @dataclass over an empty class — unfinished model.
info SEC020 Secret Printed to Logs
packages/typescript/src/mcp/McpState.ts:113 · conf 0.15
[SEC020] Secret Printed to Logs: Debug or diagnostic code appears to print a credential-bearing value. This is a frequent AI-assisted coding failure: the helper exposes the exact value needed for tro…
info SEC029 Server-Side Request Forgery (SSRF) — outbound HTTP from user input
· conf 0.20
[SEC029] Server-Side Request Forgery (SSRF) — outbound HTTP from user input (and 5 more): Same pattern found in 5 additional files. Review if needed.
info SEC118 UUIDv1 / UUIDv3 used for security-sensitive identifier
packages/typescript/src/server/session/Session.ts:171 · conf 0.10
[SEC118] UUIDv1 / UUIDv3 used for security-sensitive identifier: UUIDv1 encodes the MAC address and timestamp, making it predictable. Used as a session token or password-reset key, it's enumerable.
info SEC132 String concat where the language has interpolation (AI style drift)
· conf 0.20
[SEC132] String concat where the language has interpolation (AI style drift) (and 1 more): Same pattern found in 1 additional files. Review if needed.

Reading from rp.scan + rp.finding + rp.rule (unified schema, R78 series). Legacy data path unchanged. Compare with /scan/53d869c3-eb18-4fe6-aa71-30c3aa648529/.