← Legacy view v2 (rp.*)

home-assistant/frontend

https://github.com/home-assistant/frontend · lang: typescript · LOC: · source: user_submitted

Quality
76.2
Grade B+
Security
100.0
Findings
122
7 critical · 17 high
Status
completed
May 21, 2026 18:12
medium: 58 info: 33 high: 17 critical: 7 low: 7
Top rules by occurrence
RuleSeverityCount
JRN003 Frontend API reference is not matched by discovered backend… medium 15
AUC004 [AUC004] Admin route does not show super_admin separation: … medium 10
AUC009 [AUC009] Sensitive function route lacks elevated authorizat… medium 9
MINED045 Ts Non Null Assertion info 4
SEC006 XSS Risk high 4
SEC040 innerHTML XSS — template literal with server-supplied data high 4
SEC087 JS: weak Math.random for crypto medium 4
MINED044 Js Console Log Prod info 4
MINED054 Ts As Any info 4
MINED043 Http Not Https info 4
First 122 findings (severity-sorted)
critical MINED018 Unsafe Deserialization Pickle CWE-502
build-scripts/gulp/gallery.js:50 · conf 1.00
[MINED018] Unsafe Deserialization Pickle: pickle.loads / yaml.load (without Loader=SafeLoader) / unmarshal of network/file data — RCE.
critical MINED019 Ssti Jinja From String CWE-94
build-scripts/gulp/entry-html.js:107 · conf 1.00
[MINED019] Ssti Jinja From String: jinja2.Environment().from_string(user_input) — full RCE via templates.
critical MINED116 GHA pull_request workflow leaks secrets to forks CWE-829
.github/workflows/design_preview.yaml:51 · conf 0.90
[MINED116] Workflow uses `secrets.NETLIFY_AUTH_TOKEN` on a `pull_request` trigger: This workflow triggers on `pull_request`, which checks out the FORK's code. Referencing `${ secrets.NETLIFY_AUTH_TOK…
critical MINED116 GHA pull_request workflow leaks secrets to forks CWE-829
.github/workflows/design_preview.yaml:52 · conf 0.90
[MINED116] Workflow uses `secrets.NETLIFY_GALLERY_SITE_ID` on a `pull_request` trigger: This workflow triggers on `pull_request`, which checks out the FORK's code. Referencing `${ secrets.NETLIFY_GAL…
critical SEC079 Python: yaml.load without SafeLoader
build-scripts/gulp/gallery.js:50 · conf 1.00
[SEC079] Python: yaml.load without SafeLoader: yaml.load() without explicit SafeLoader can execute arbitrary Python objects (CVE-2017-18342). Ported from bandit B506 / dlint DUO109 (Apache-2.0 / BSD-…
critical SEC084 JS: require() with non-literal
build-scripts/babel-plugins/inline-constants-plugin.cjs:31 · conf 1.00
[SEC084] JS: require() with non-literal: require(<variable>) loads arbitrary modules — equivalent to eval at module scope. Ported from eslint-plugin-security detect-non-literal-require (Apache-2.0).
critical SEC116 Ruby YAML.load / Marshal.load on untrusted input
build-scripts/gulp/gallery.js:50 · conf 1.00
[SEC116] Ruby YAML.load / Marshal.load on untrusted input: `YAML.load` (pre-3.1) and `Marshal.load` instantiate arbitrary Ruby classes — direct RCE on untrusted input. `unsafe_load` is even more dang…
high JRN004 Consent is collected in UI without visible backend audit persistence
build-scripts/gulp/fetch-nightly-translations.js:78 · conf 0.78
Consent is collected in UI without visible backend audit persistence
high MINED004 Weak Crypto CWE-327
build-scripts/gulp/translations.js:195 · conf 1.00
[MINED004] Weak Crypto: MD5/SHA1/DES/RC4 used for security context (not just checksums).
high MINED118 Dockerfile FROM not pinned by sha256 digest CWE-829
.devcontainer/Dockerfile:1 · conf 0.90
[MINED118] Dockerfile FROM `mcr.microsoft.com/devcontainers/python:3.14` not pinned by digest: `FROM mcr.microsoft.com/devcontainers/python:3.14` resolves the tag at build time. The registry CAN re-p…
high SEC006 XSS Risk
src/panels/lovelace/cards/hui-light-card.ts:194 · conf 1.00
[SEC006] XSS Risk: Direct HTML injection without sanitization.
high SEC029 Server-Side Request Forgery (SSRF) — outbound HTTP from user input
cast/src/launcher/layout/hc-connect.ts:223 · 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
src/auth/ha-authorize.ts:227 · 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
src/common/integrations/protocolIntegrationPicked.ts:59 · 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
build-scripts/gulp/entry-html.js:111 · 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
src/data/selector/format_selector_value.ts:25 · 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
src/dialogs/more-info/components/lights/light-color-temp-picker.ts:44 · 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
src/common/string/is_date.ts:4 · 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 SEC083 JS: new RegExp() with non-literal
src/common/string/slugify.ts:6 · 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
src/components/ha-ansi-to-html.ts:185 · 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 SEC085 JS: child_process.exec with non-literal
src/components/ha-markdown-element.ts:138 · 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 SEC128 Async function without await — fire-and-forget Promise (AI mistake)
build-scripts/gulp/service-worker.js:38 · 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)
gallery/src/components/demo-card.ts:64 · 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)
src/common/url/search-params.ts:35 · 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 AGT007 localStorage write failures are swallowed silently
landing-page/src/ha-landing-page.ts:200 · conf 0.80
localStorage write failures are swallowed silently
medium AGT007 localStorage write failures are swallowed silently
src/auth/ha-authorize.ts:326 · conf 0.80
localStorage write failures are swallowed silently
medium AUC001 [AUC001] No Repobility access matrix policy found: The repository uses web/API frameworks but does not define .repobility/access.yml or equivalent authorization documentation.
· conf 0.92
[AUC001] No Repobility access matrix policy found: The repository uses web/API frameworks but does not define .repobility/access.yml or equivalent authorization documentation.
medium AUC002 [AUC002] Low visible authorization coverage in route inventory: Only 0.0% of discovered routes show nearby authentication, authorization, middleware, or public-route evidence.
· conf 0.74
[AUC002] Low visible authorization coverage in route inventory: Only 0.0% of discovered routes show nearby authentication, authorization, middleware, or public-route evidence.
medium AUC004 [AUC004] Admin route does not show super_admin separation: An administrative route was detected without nearby evidence that platform super_admin access is separated from tenant/application admin access. Endpoint: ANY /plugins/<slug:plugin_slug>/.
gallery/src/pages/components/ha-list.ts:320 · conf 0.66
[AUC004] Admin route does not show super_admin separation: An administrative route was detected without nearby evidence that platform super_admin access is separated from tenant/application admin acc…
medium AUC004 [AUC004] Admin route does not show super_admin separation: An administrative route was detected without nearby evidence that platform super_admin access is separated from tenant/application admin access. Endpoint: ANY /plugins/<slug:plugin_slug>/.
src/data/quick_bar.ts:163 · conf 0.66
[AUC004] Admin route does not show super_admin separation: An administrative route was detected without nearby evidence that platform super_admin access is separated from tenant/application admin acc…
medium AUC004 [AUC004] Admin route does not show super_admin separation: An administrative route was detected without nearby evidence that platform super_admin access is separated from tenant/application admin access. Endpoint: ANY /plugins/<slug:plugin_slug>/.
src/panels/config/ha-panel-config.ts:61 · conf 0.66
[AUC004] Admin route does not show super_admin separation: An administrative route was detected without nearby evidence that platform super_admin access is separated from tenant/application admin acc…
medium AUC004 [AUC004] Admin route does not show super_admin separation: An administrative route was detected without nearby evidence that platform super_admin access is separated from tenant/application admin access. Endpoint: ANY /plugins/<slug:plugin_slug>/.
src/panels/config/ha-panel-config.ts:69 · conf 0.66
[AUC004] Admin route does not show super_admin separation: An administrative route was detected without nearby evidence that platform super_admin access is separated from tenant/application admin acc…
medium AUC004 [AUC004] Admin route does not show super_admin separation: An administrative route was detected without nearby evidence that platform super_admin access is separated from tenant/application admin access. Endpoint: ANY /plugins/<slug:plugin_slug>/.
src/panels/config/ha-panel-config.ts:77 · conf 0.66
[AUC004] Admin route does not show super_admin separation: An administrative route was detected without nearby evidence that platform super_admin access is separated from tenant/application admin acc…
medium AUC004 [AUC004] Admin route does not show super_admin separation: An administrative route was detected without nearby evidence that platform super_admin access is separated from tenant/application admin access. Endpoint: ANY /plugins/<slug:plugin_slug>/.
src/panels/config/ha-panel-config.ts:85 · conf 0.66
[AUC004] Admin route does not show super_admin separation: An administrative route was detected without nearby evidence that platform super_admin access is separated from tenant/application admin acc…
medium AUC004 [AUC004] Admin route does not show super_admin separation: An administrative route was detected without nearby evidence that platform super_admin access is separated from tenant/application admin access. Endpoint: ANY /plugins/<slug:plugin_slug>/.
src/panels/config/ha-panel-config.ts:93 · conf 0.66
[AUC004] Admin route does not show super_admin separation: An administrative route was detected without nearby evidence that platform super_admin access is separated from tenant/application admin acc…
medium AUC004 [AUC004] Admin route does not show super_admin separation: An administrative route was detected without nearby evidence that platform super_admin access is separated from tenant/application admin access. Endpoint: ANY /plugins/<slug:plugin_slug>/.
src/panels/config/ha-panel-config.ts:101 · conf 0.66
[AUC004] Admin route does not show super_admin separation: An administrative route was detected without nearby evidence that platform super_admin access is separated from tenant/application admin acc…
medium AUC004 [AUC004] Admin route does not show super_admin separation: An administrative route was detected without nearby evidence that platform super_admin access is separated from tenant/application admin access. Endpoint: ANY /plugins/<slug:plugin_slug>/.
src/panels/config/ha-panel-config.ts:110 · conf 0.66
[AUC004] Admin route does not show super_admin separation: An administrative route was detected without nearby evidence that platform super_admin access is separated from tenant/application admin acc…
medium AUC004 [AUC004] Admin route does not show super_admin separation: An administrative route was detected without nearby evidence that platform super_admin access is separated from tenant/application admin access. Endpoint: ANY /plugins/<slug:plugin_slug>/.
src/panels/config/ha-panel-config.ts:128 · conf 0.66
[AUC004] Admin route does not show super_admin separation: An administrative route was detected without nearby evidence that platform super_admin access is separated from tenant/application admin acc…
medium AUC009 [AUC009] Sensitive function route lacks elevated authorization evidence: A route appears to perform a sensitive function such as export, invite, role, token, billing, or destructive action without elevated policy evidence. Endpoint: DELETE /items/{item_id}.
src/fake_data/demo_panels.ts:9 · conf 0.68
[AUC009] Sensitive function route lacks elevated authorization evidence: A route appears to perform a sensitive function such as export, invite, role, token, billing, or destructive action without el…
medium AUC009 [AUC009] Sensitive function route lacks elevated authorization evidence: A route appears to perform a sensitive function such as export, invite, role, token, billing, or destructive action without elevated policy evidence. Endpoint: DELETE /items/{item_id}.
src/panels/climate/ha-panel-climate.ts:152 · conf 0.68
[AUC009] Sensitive function route lacks elevated authorization evidence: A route appears to perform a sensitive function such as export, invite, role, token, billing, or destructive action without el…
medium AUC009 [AUC009] Sensitive function route lacks elevated authorization evidence: A route appears to perform a sensitive function such as export, invite, role, token, billing, or destructive action without elevated policy evidence. Endpoint: DELETE /items/{item_id}.
src/panels/config/voice-assistants/ha-config-voice-assistants.ts:15 · conf 0.68
[AUC009] Sensitive function route lacks elevated authorization evidence: A route appears to perform a sensitive function such as export, invite, role, token, billing, or destructive action without el…
medium AUC009 [AUC009] Sensitive function route lacks elevated authorization evidence: A route appears to perform a sensitive function such as export, invite, role, token, billing, or destructive action without elevated policy evidence. Endpoint: DELETE /items/{item_id}.
src/panels/energy/ha-panel-energy.ts:97 · conf 0.68
[AUC009] Sensitive function route lacks elevated authorization evidence: A route appears to perform a sensitive function such as export, invite, role, token, billing, or destructive action without el…
medium AUC009 [AUC009] Sensitive function route lacks elevated authorization evidence: A route appears to perform a sensitive function such as export, invite, role, token, billing, or destructive action without elevated policy evidence. Endpoint: DELETE /items/{item_id}.
src/panels/home/ha-panel-home.ts:351 · conf 0.68
[AUC009] Sensitive function route lacks elevated authorization evidence: A route appears to perform a sensitive function such as export, invite, role, token, billing, or destructive action without el…
medium AUC009 [AUC009] Sensitive function route lacks elevated authorization evidence: A route appears to perform a sensitive function such as export, invite, role, token, billing, or destructive action without elevated policy evidence. Endpoint: DELETE /items/{item_id}.
src/panels/light/ha-panel-light.ts:152 · conf 0.68
[AUC009] Sensitive function route lacks elevated authorization evidence: A route appears to perform a sensitive function such as export, invite, role, token, billing, or destructive action without el…
medium AUC009 [AUC009] Sensitive function route lacks elevated authorization evidence: A route appears to perform a sensitive function such as export, invite, role, token, billing, or destructive action without elevated policy evidence. Endpoint: DELETE /items/{item_id}.
src/panels/maintenance/ha-panel-maintenance.ts:154 · conf 0.68
[AUC009] Sensitive function route lacks elevated authorization evidence: A route appears to perform a sensitive function such as export, invite, role, token, billing, or destructive action without el…
medium AUC009 [AUC009] Sensitive function route lacks elevated authorization evidence: A route appears to perform a sensitive function such as export, invite, role, token, billing, or destructive action without elevated policy evidence. Endpoint: DELETE /items/{item_id}.
src/panels/profile/ha-panel-profile.ts:13 · conf 0.68
[AUC009] Sensitive function route lacks elevated authorization evidence: A route appears to perform a sensitive function such as export, invite, role, token, billing, or destructive action without el…
medium AUC009 [AUC009] Sensitive function route lacks elevated authorization evidence: A route appears to perform a sensitive function such as export, invite, role, token, billing, or destructive action without elevated policy evidence. Endpoint: DELETE /items/{item_id}.
src/panels/security/ha-panel-security.ts:152 · conf 0.68
[AUC009] Sensitive function route lacks elevated authorization evidence: A route appears to perform a sensitive function such as export, invite, role, token, billing, or destructive action without el…
medium DKR001 Docker final stage has no non-root USER
.devcontainer/Dockerfile:1 · conf 0.82
Docker final stage has no non-root USER
medium DKR007 Docker build context has no .dockerignore
.dockerignore · conf 0.90
Docker build context has no .dockerignore
medium ERR002 [ERR002] Empty Catch Block: Empty catch blocks hide errors.
src/panels/config/entities/entity-registry-settings.ts:74 · conf 1.00
[ERR002] Empty Catch Block: Empty catch blocks hide errors.
medium JRN002 Browser storage is used for session token material
src/common/auth/token_storage.ts:44 · conf 0.82
Browser storage is used for session token material
medium JRN002 Browser storage is used for session token material
src/common/auth/token_storage.ts:67 · conf 0.82
Browser storage is used for session token material
medium JRN003 Frontend API reference is not matched by discovered backend routes
gallery/src/data/demo_states.js:324 · conf 0.74
Frontend API reference is not matched by discovered backend routes
medium JRN003 Frontend API reference is not matched by discovered backend routes
gallery/src/data/demo_states.js:348 · conf 0.74
Frontend API reference is not matched by discovered backend routes
medium JRN003 Frontend API reference is not matched by discovered backend routes
gallery/src/data/demo_states.js:372 · conf 0.74
Frontend API reference is not matched by discovered backend routes
medium JRN003 Frontend API reference is not matched by discovered backend routes
gallery/src/data/demo_states.js:396 · conf 0.74
Frontend API reference is not matched by discovered backend routes
medium JRN003 Frontend API reference is not matched by discovered backend routes
gallery/src/data/demo_states.js:552 · conf 0.74
Frontend API reference is not matched by discovered backend routes
medium JRN003 Frontend API reference is not matched by discovered backend routes
gallery/src/pages/lovelace/glance-card.ts:39 · conf 0.74
Frontend API reference is not matched by discovered backend routes
medium JRN003 Frontend API reference is not matched by discovered backend routes
gallery/src/pages/lovelace/picture-elements-card.ts:33 · conf 0.74
Frontend API reference is not matched by discovered backend routes
medium JRN003 Frontend API reference is not matched by discovered backend routes
src/components/ha-addon-picker.ts:106 · conf 0.74
Frontend API reference is not matched by discovered backend routes
medium JRN003 Frontend API reference is not matched by discovered backend routes
src/data/camera.ts:82 · conf 0.74
Frontend API reference is not matched by discovered backend routes
medium JRN003 Frontend API reference is not matched by discovered backend routes
src/data/camera.ts:104 · conf 0.74
Frontend API reference is not matched by discovered backend routes
medium JRN003 Frontend API reference is not matched by discovered backend routes
src/data/diagnostics.ts:28 · conf 0.74
Frontend API reference is not matched by discovered backend routes
medium JRN003 Frontend API reference is not matched by discovered backend routes
src/data/diagnostics.ts:33 · conf 0.74
Frontend API reference is not matched by discovered backend routes
medium JRN003 Frontend API reference is not matched by discovered backend routes
src/data/error_log.ts:18 · conf 0.74
Frontend API reference is not matched by discovered backend routes
medium JRN003 Frontend API reference is not matched by discovered backend routes
src/data/error_log.ts:19 · conf 0.74
Frontend API reference is not matched by discovered backend routes
medium JRN003 Frontend API reference is not matched by discovered backend routes
src/data/file_upload.ts:6 · conf 0.74
Frontend API reference is not matched by discovered backend routes
medium SEC007 Unsafe Deserialization
build-scripts/gulp/gallery.js:50 · conf 1.00
[SEC007] Unsafe Deserialization: Unsafe deserialization can execute arbitrary code.
medium SEC041 Tabnabbing — target="_blank" without rel="noopener noreferrer"
cast/src/launcher/layout/hc-layout.ts:32 · conf 1.00
[SEC041] Tabnabbing — target="_blank" without rel="noopener noreferrer": <a target="_blank"> without rel="noopener noreferrer" leaks window.opener to the opened page. The opened page can then run win…
medium SEC041 Tabnabbing — target="_blank" without rel="noopener noreferrer"
demo/src/custom-cards/ha-demo-card.ts:57 · conf 1.00
[SEC041] Tabnabbing — target="_blank" without rel="noopener noreferrer": <a target="_blank"> without rel="noopener noreferrer" leaks window.opener to the opened page. The opened page can then run win…
medium SEC041 Tabnabbing — target="_blank" without rel="noopener noreferrer"
gallery/src/ha-gallery.ts:117 · conf 1.00
[SEC041] Tabnabbing — target="_blank" without rel="noopener noreferrer": <a target="_blank"> without rel="noopener noreferrer" leaks window.opener to the opened page. The opened page can then run win…
medium SEC045 eval()/exec() on stored or user-supplied data
script/version_bump.js:78 · 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 SEC045 eval()/exec() on stored or user-supplied data
src/components/ha-ansi-to-html.ts:185 · 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 SEC045 eval()/exec() on stored or user-supplied data
src/components/ha-markdown-element.ts:138 · 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 SEC087 JS: weak Math.random for crypto
demo/src/custom-cards/card-tools.js:149 · conf 1.00
[SEC087] JS: weak Math.random for crypto: Math.random() is not cryptographically secure; using it for tokens/keys/nonces is predictable. Ported from gosec G404 / eslint detect-pseudoRandomBytes conce…
medium SEC087 JS: weak Math.random for crypto
src/components/entity/ha-entity-states-picker.ts:42 · conf 1.00
[SEC087] JS: weak Math.random for crypto: Math.random() is not cryptographically secure; using it for tokens/keys/nonces is predictable. Ported from gosec G404 / eslint detect-pseudoRandomBytes conce…
medium SEC087 JS: weak Math.random for crypto
src/panels/config/automation/ha-automation-sortable-list-mixin.ts:51 · conf 1.00
[SEC087] JS: weak Math.random for crypto: Math.random() is not cryptographically secure; using it for tokens/keys/nonces is predictable. Ported from gosec G404 / eslint detect-pseudoRandomBytes conce…
medium SEC134 AI scaffold leftover — Lorem ipsum / example.com / John Doe in code
gallery/src/pages/components/ha-faded.ts:9 · conf 1.00
[SEC134] AI scaffold leftover — Lorem ipsum / example.com / John Doe in code: Lorem ipsum / John Doe / example.com left in non-test code. AI agents emit these as 'reasonable defaults' when they don't…
medium SEC134 AI scaffold leftover — Lorem ipsum / example.com / John Doe in code
gallery/src/pages/more-info/update.ts:21 · conf 1.00
[SEC134] AI scaffold leftover — Lorem ipsum / example.com / John Doe in code: Lorem ipsum / John Doe / example.com left in non-test code. AI agents emit these as 'reasonable defaults' when they don't…
medium WEB003 Public web service has no security.txt
.well-known/security.txt · conf 0.78
Public web service has no security.txt
medium WEB004 robots.txt blocks the full public site
public/robots.txt · conf 0.86
robots.txt blocks the full public site
medium WEB015 Public web app has no Content Security Policy
index.html · conf 0.70
Public web app has no Content Security Policy
low AUC005 [AUC005] No authorization-focused tests detected: No test files with common authorization, ownership, 403, admin, or super_admin assertions were found.
· conf 0.76
[AUC005] No authorization-focused tests detected: No test files with common authorization, ownership, 403, admin, or super_admin assertions were found.
low SEC006 XSS Risk
cast/src/receiver/entrypoint.ts:73 · conf 0.40
[SEC006] XSS Risk: Direct HTML injection without sanitization.
low SEC006 XSS Risk
src/components/ha-absolute-time.ts:66 · conf 0.40
[SEC006] XSS Risk: Direct HTML injection without sanitization.
low WEB002 Public web app has no sitemap
sitemap.xml · conf 0.72
Public web app has no sitemap
low WEB005 robots.txt does not advertise a sitemap
public/robots.txt · conf 0.74
robots.txt does not advertise a sitemap
low WEB008 Public docs site has no llms.txt
llms.txt · conf 0.64
Public docs site has no llms.txt
low WEB011 Public web app has no humans.txt
humans.txt · conf 0.50
Public web app has no humans.txt
info MINED043 Http Not Https CWE-319
· conf 0.20
[MINED043] Http Not Https (and 3 more): Same pattern found in 3 additional files. Review if needed.
info MINED043 Http Not Https CWE-319
cast/src/launcher/layout/hc-connect.ts:43 · 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
gallery/src/pages/lovelace/entities-card.ts:408 · 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
gallery/src/pages/lovelace/markdown-card.ts:163 · 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 67 more): Same pattern found in 67 additional files. Review if needed.
info MINED044 Js Console Log Prod CWE-532
build-scripts/gulp/download-translations.js:115 · 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
build-scripts/gulp/fetch-nightly-translations.js:33 · 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
build-scripts/gulp/gallery.js:103 · 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 514 more): Same pattern found in 514 additional files. Review if needed.
info MINED045 Ts Non Null Assertion CWE-476
cast/src/launcher/layout/hc-connect.ts:83 · 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
demo/src/ha-demo.ts:46 · 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
gallery/src/components/demo-black-white-row.ts:56 · conf 1.00
[MINED045] Ts Non Null Assertion: x! asserts not null - bypasses null checks - TypeError if wrong.
info MINED047 Emoji In Source
src/common/string/slugify.ts:4 · conf 1.00
[MINED047] Emoji In Source: Emoji ✅ ❌ 🚀 in code/comments — common AI output unless explicitly requested.
info MINED049 Print Pii CWE-532
build-scripts/gulp/fetch-nightly-translations.js:69 · conf 1.00
[MINED049] Print Pii: Logging password/token/email/ssn directly to stdout.
info MINED052 Ts Any Typed CWE-704
· conf 0.20
[MINED052] Ts Any Typed (and 254 more): Same pattern found in 254 additional files. Review if needed.
info MINED052 Ts Any Typed CWE-704
cast/src/launcher/layout/hc-cast.ts:223 · conf 1.00
[MINED052] Ts Any Typed: : any used as type annotation. Defeats TypeScript type safety.
info MINED052 Ts Any Typed CWE-704
cast/src/launcher/layout/hc-connect.ts:224 · conf 1.00
[MINED052] Ts Any Typed: : any used as type annotation. Defeats TypeScript type safety.
info MINED052 Ts Any Typed CWE-704
gallery/src/components/demo-black-white-row.ts:15 · 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 120 more): Same pattern found in 120 additional files. Review if needed.
info MINED054 Ts As Any CWE-704
cast/src/receiver/layout/hc-lovelace.ts:14 · conf 1.00
[MINED054] Ts As Any: Casting to any (as any) bypasses type checking entirely.
info MINED054 Ts As Any CWE-704
demo/src/custom-cards/ha-demo-card.ts:122 · conf 1.00
[MINED054] Ts As Any: Casting to any (as any) bypasses type checking entirely.
info MINED054 Ts As Any CWE-704
demo/src/ha-demo.ts:36 · conf 1.00
[MINED054] Ts As Any: Casting to any (as any) bypasses type checking entirely.
info MINED098 Global Scope Pollution
demo/src/custom-cards/card-tools.js:196 · conf 1.00
[MINED098] Global Scope Pollution: Attaching libraries/objects directly to the global window scope (e.g., `window.axios = axios;`) makes the code harder to test and increases the risk of naming colli…
info SEC006 XSS Risk
· conf 0.20
[SEC006] XSS Risk (and 3 more): Same pattern found in 3 additional files. Review if needed.
info SEC020 Secret Printed to Logs
build-scripts/gulp/fetch-nightly-translations.js:69 · 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 SEC020 Secret Printed to Logs
src/common/auth/token_storage.ts:52 · 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 SEC020 Secret Printed to Logs
src/panels/lovelace/create-element/create-element-base.ts:252 · conf 0.10
[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 66 more): Same pattern found in 66 additional files. Review if needed.
info SEC040 innerHTML XSS — template literal with server-supplied data
· conf 0.20
[SEC040] innerHTML XSS — template literal with server-supplied data (and 6 more): Same pattern found in 6 additional files. Review if needed.
info SEC041 Tabnabbing — target="_blank" without rel="noopener noreferrer"
· conf 0.20
[SEC041] Tabnabbing — target="_blank" without rel="noopener noreferrer" (and 3 more): Same pattern found in 3 additional files. Review if needed.
info SEC087 JS: weak Math.random for crypto
· conf 0.20
[SEC087] JS: weak Math.random for crypto (and 6 more): Same pattern found in 6 additional files. Review if needed.
info SEC118 UUIDv1 / UUIDv3 used for security-sensitive identifier
src/common/util/uuid.ts:4 · 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 SEC128 Async function without await — fire-and-forget Promise (AI mistake)
· conf 0.20
[SEC128] Async function without await — fire-and-forget Promise (AI mistake) (and 53 more): Same pattern found in 53 additional files. Review if needed.

Reading from rp.scan + rp.finding + rp.rule (unified schema, R78 series). Legacy data path unchanged. Compare with /scan/c5fbe1f2-2dac-4c77-947a-f406588dcb31/.