← Legacy view v2 (rp.*)

home-assistant/core

https://github.com/home-assistant/core · lang: python · LOC: · source: user_submitted

Quality
89.7
Grade A-
Security
100.0
Findings
198
28 critical · 100 high
Status
completed
May 21, 2026 18:15
high: 100 info: 29 critical: 28 low: 25 medium: 16
Top rules by occurrence
RuleSeverityCount
MINED108 self.attribute used but never assigned in __init__ high 25
MINED106 Phantom test coverage (assertion-free test) high 25
MINED107 Missing Python import (NameError at runtime) critical 23
MINED110 Blocking call inside async function high 19
AIC003 Duplicated implementation block across source files low 14
MINED131 pre-commit hook pinned to branch/tag instead of SHA high 7
MINED067 Python Requests No Timeout info 4
SEC001 Hardcoded Password critical 4
SEC020 Secret Printed to Logs high 4
MINED001 Bare Except Pass high 4
First 198 findings (severity-sorted)
critical MINED107 Missing Python import (NameError at runtime) CWE-1075
homeassistant/const.py:29 · conf 1.00
[MINED107] Missing import: `platform` used but not imported: The file uses `platform.something(...)` but never imports `platform`. This raises NameError at runtime the first time the line executes.
critical MINED107 Missing Python import (NameError at runtime) CWE-1075
pylint/plugins/pylint_home_assistant/helpers/module_info.py:71 · conf 1.00
[MINED107] Missing import: `platform` used but not imported: The file uses `platform.something(...)` but never imports `platform`. This raises NameError at runtime the first time the line executes.
critical MINED107 Missing Python import (NameError at runtime) CWE-1075
tests/common.py:1947 · conf 1.00
[MINED107] Missing import: `platform` used but not imported: The file uses `platform.something(...)` but never imports `platform`. This raises NameError at runtime the first time the line executes.
critical MINED107 Missing Python import (NameError at runtime) CWE-1075
tests/components/arcam_fmj/conftest.py:76 · conf 1.00
[MINED107] Missing import: `queue` used but not imported: The file uses `queue.something(...)` but never imports `queue`. This raises NameError at runtime the first time the line executes.
critical MINED107 Missing Python import (NameError at runtime) CWE-1075
tests/components/broadlink/test_select.py:45 · conf 1.00
[MINED107] Missing import: `select` used but not imported: The file uses `select.something(...)` but never imports `select`. This raises NameError at runtime the first time the line executes.
critical MINED107 Missing Python import (NameError at runtime) CWE-1075
tests/components/broadlink/test_time.py:45 · conf 1.00
[MINED107] Missing import: `time` used but not imported: The file uses `time.something(...)` but never imports `time`. This raises NameError at runtime the first time the line executes.
critical MINED107 Missing Python import (NameError at runtime) CWE-1075
tests/components/hassio/test_discovery.py:95 · conf 1.00
[MINED107] Missing import: `uuid` used but not imported: The file uses `uuid.something(...)` but never imports `uuid`. This raises NameError at runtime the first time the line executes.
critical MINED107 Missing Python import (NameError at runtime) CWE-1075
tests/components/hassio/test_issues.py:405 · conf 1.00
[MINED107] Missing import: `uuid` used but not imported: The file uses `uuid.something(...)` but never imports `uuid`. This raises NameError at runtime the first time the line executes.
critical MINED107 Missing Python import (NameError at runtime) CWE-1075
tests/components/litterrobot/test_select.py:93 · conf 1.00
[MINED107] Missing import: `select` used but not imported: The file uses `select.something(...)` but never imports `select`. This raises NameError at runtime the first time the line executes.
critical MINED107 Missing Python import (NameError at runtime) CWE-1075
tests/components/mqtt_statestream/test_init.py:157 · conf 1.00
[MINED107] Missing import: `platform` used but not imported: The file uses `platform.something(...)` but never imports `platform`. This raises NameError at runtime the first time the line executes.
critical MINED107 Missing Python import (NameError at runtime) CWE-1075
tests/components/qbus/test_climate.py:187 · conf 1.00
[MINED107] Missing import: `platform` used but not imported: The file uses `platform.something(...)` but never imports `platform`. This raises NameError at runtime the first time the line executes.
critical MINED107 Missing Python import (NameError at runtime) CWE-1075
tests/components/rss_feed_template/test_init.py:57 · conf 1.00
[MINED107] Missing import: `xml` used but not imported: The file uses `xml.something(...)` but never imports `xml`. This raises NameError at runtime the first time the line executes.
critical MINED107 Missing Python import (NameError at runtime) CWE-1075
tests/components/samsungtv/test_trigger.py:178 · conf 1.00
[MINED107] Missing import: `platform` used but not imported: The file uses `platform.something(...)` but never imports `platform`. This raises NameError at runtime the first time the line executes.
critical MINED107 Missing Python import (NameError at runtime) CWE-1075
tests/components/unifiprotect/utils.py:116 · conf 1.00
[MINED107] Missing import: `platform` used but not imported: The file uses `platform.something(...)` but never imports `platform`. This raises NameError at runtime the first time the line executes.
critical MINED107 Missing Python import (NameError at runtime) CWE-1075
tests/helpers/test_dispatcher.py:69 · conf 1.00
[MINED107] Missing import: `signal` used but not imported: The file uses `signal.something(...)` but never imports `signal`. This raises NameError at runtime the first time the line executes.
critical MINED107 Missing Python import (NameError at runtime) CWE-1075
tests/helpers/test_entity_platform.py:238 · conf 1.00
[MINED107] Missing import: `platform` used but not imported: The file uses `platform.something(...)` but never imports `platform`. This raises NameError at runtime the first time the line executes.
critical MINED107 Missing Python import (NameError at runtime) CWE-1075
tests/helpers/test_entity.py:838 · conf 1.00
[MINED107] Missing import: `platform` used but not imported: The file uses `platform.something(...)` but never imports `platform`. This raises NameError at runtime the first time the line executes.
critical MINED107 Missing Python import (NameError at runtime) CWE-1075
tests/helpers/test_group.py:125 · conf 1.00
[MINED107] Missing import: `platform` used but not imported: The file uses `platform.something(...)` but never imports `platform`. This raises NameError at runtime the first time the line executes.
critical MINED107 Missing Python import (NameError at runtime) CWE-1075
tests/helpers/test_reload.py:61 · conf 1.00
[MINED107] Missing import: `platform` used but not imported: The file uses `platform.something(...)` but never imports `platform`. This raises NameError at runtime the first time the line executes.
critical MINED107 Missing Python import (NameError at runtime) CWE-1075
tests/helpers/test_restore_state.py:518 · conf 1.00
[MINED107] Missing import: `platform` used but not imported: The file uses `platform.something(...)` but never imports `platform`. This raises NameError at runtime the first time the line executes.
critical MINED107 Missing Python import (NameError at runtime) CWE-1075
tests/scripts/test_check_config.py:658 · conf 1.00
[MINED107] Missing import: `warnings` used but not imported: The file uses `warnings.something(...)` but never imports `warnings`. This raises NameError at runtime the first time the line executes.
critical MINED107 Missing Python import (NameError at runtime) CWE-1075
tests/syrupy.py:349 · conf 1.00
[MINED107] Missing import: `collections` used but not imported: The file uses `collections.something(...)` but never imports `collections`. This raises NameError at runtime the first time the line ex…
critical MINED107 Missing Python import (NameError at runtime) CWE-1075
tests/test_loader.py:133 · conf 1.00
[MINED107] Missing import: `platform` used but not imported: The file uses `platform.something(...)` but never imports `platform`. This raises NameError at runtime the first time the line executes.
critical MINED116 GHA pull_request workflow leaks secrets to forks CWE-829
.github/workflows/ci.yaml:1428 · conf 0.90
[MINED116] Workflow uses `secrets.CODECOV_TOKEN` on a `pull_request` trigger: This workflow triggers on `pull_request`, which checks out the FORK's code. Referencing `${ secrets.CODECOV_TOKEN }` lets…
critical MINED116 GHA pull_request workflow leaks secrets to forks CWE-829
.github/workflows/ci.yaml:1598 · conf 0.90
[MINED116] Workflow uses `secrets.CODECOV_TOKEN` on a `pull_request` trigger: This workflow triggers on `pull_request`, which checks out the FORK's code. Referencing `${ secrets.CODECOV_TOKEN }` lets…
critical SEC002 Hardcoded API Key
homeassistant/components/aladdin_connect/api.py:11 · conf 0.90
[SEC002] Hardcoded API Key: Hardcoded API key found in source code.
critical SEC099 JWT decoded without signature verification
homeassistant/components/aladdin_connect/config_flow.py:58 · conf 1.00
[SEC099] JWT decoded without signature verification: JWT token is parsed without verifying its signature. The token body can be tampered with arbitrarily by an attacker.
critical SEC099 JWT decoded without signature verification
homeassistant/components/august/config_flow.py:38 · conf 1.00
[SEC099] JWT decoded without signature verification: JWT token is parsed without verifying its signature. The token body can be tampered with arbitrarily by an attacker.
high DKR006 Dockerfile pipes a remote script into a shell
Dockerfile.dev:57 · conf 0.92
Dockerfile pipes a remote script into a shell
high MINED001 Bare Except Pass CWE-755
homeassistant/components/arcam_fmj/__init__.py:76 · conf 1.00
[MINED001] Bare Except Pass: except: pass or except Exception: pass — silently swallows everything including KeyboardInterrupt and bugs.
high MINED001 Bare Except Pass CWE-755
homeassistant/components/backup/http.py:54 · conf 1.00
[MINED001] Bare Except Pass: except: pass or except Exception: pass — silently swallows everything including KeyboardInterrupt and bugs.
high MINED001 Bare Except Pass CWE-755
homeassistant/components/datadog/__init__.py:78 · conf 1.00
[MINED001] Bare Except Pass: except: pass or except Exception: pass — silently swallows everything including KeyboardInterrupt and bugs.
high MINED004 Weak Crypto CWE-327
homeassistant/components/ecovacs/config_flow.py:14 · conf 1.00
[MINED004] Weak Crypto: MD5/SHA1/DES/RC4 used for security context (not just checksums).
high MINED004 Weak Crypto CWE-327
homeassistant/components/ecovacs/controller.py:16 · conf 1.00
[MINED004] Weak Crypto: MD5/SHA1/DES/RC4 used for security context (not just checksums).
high MINED014 Disabled Tls Verify CWE-295
homeassistant/components/august/config_flow.py:41 · conf 1.00
[MINED014] Disabled Tls Verify: verify=False in requests, rejectUnauthorized:false in node, InsecureSkipVerify:true in Go.
high MINED034 Python Subprocess Shell True CWE-78
homeassistant/components/command_line/notify.py:55 · conf 1.00
[MINED034] Python Subprocess Shell True: subprocess(..., shell=True) enables command injection.
high MINED106 Phantom test coverage (assertion-free test) CWE-1126
tests/test_config_entries.py:2547 · conf 1.00
[MINED106] Phantom test coverage: test_entry_options_unknown_config_entry: Test function `test_entry_options_unknown_config_entry` runs code but contains no assert / expect / should call — it passes …
high MINED106 Phantom test coverage (assertion-free test) CWE-1126
tests/test_config_entries.py:2736 · conf 1.00
[MINED106] Phantom test coverage: test_entry_subentry_non_string: Test function `test_entry_subentry_non_string` runs code but contains no assert / expect / should call — it passes regardless of beha…
high MINED106 Phantom test coverage (assertion-free test) CWE-1126
tests/test_config_entries.py:2778 · conf 1.00
[MINED106] Phantom test coverage: test_entry_subentry_no_context: Test function `test_entry_subentry_no_context` runs code but contains no assert / expect / should call — it passes regardless of beha…
high MINED106 Phantom test coverage (assertion-free test) CWE-1126
tests/test_config_entries.py:2810 · conf 1.00
[MINED106] Phantom test coverage: test_entry_subentry_duplicate: Test function `test_entry_subentry_duplicate` runs code but contains no assert / expect / should call — it passes regardless of behavi…
high MINED106 Phantom test coverage (assertion-free test) CWE-1126
tests/test_config_entries.py:2900 · conf 1.00
[MINED106] Phantom test coverage: test_entry_subentry_unknown_config_entry: Test function `test_entry_subentry_unknown_config_entry` runs code but contains no assert / expect / should call — it passe…
high MINED106 Phantom test coverage (assertion-free test) CWE-1126
tests/test_config_entries.py:2913 · conf 1.00
[MINED106] Phantom test coverage: test_entry_subentry_deleted_config_entry: Test function `test_entry_subentry_deleted_config_entry` runs code but contains no assert / expect / should call — it passe…
high MINED106 Phantom test coverage (assertion-free test) CWE-1126
tests/test_config_entries.py:2956 · conf 1.00
[MINED106] Phantom test coverage: test_entry_subentry_unsupported_subentry_type: Test function `test_entry_subentry_unsupported_subentry_type` runs code but contains no assert / expect / should call …
high MINED106 Phantom test coverage (assertion-free test) CWE-1126
tests/test_config_entries.py:2992 · conf 1.00
[MINED106] Phantom test coverage: test_entry_subentry_unsupported: Test function `test_entry_subentry_unsupported` runs code but contains no assert / expect / should call — it passes regardless of be…
high MINED106 Phantom test coverage (assertion-free test) CWE-1126
tests/test_config_entries.py:3528 · conf 1.00
[MINED106] Phantom test coverage: test_init_custom_integration: Test function `test_init_custom_integration` runs code but contains no assert / expect / should call — it passes regardless of behaviou…
high MINED106 Phantom test coverage (assertion-free test) CWE-1126
tests/test_config_entries.py:3546 · conf 1.00
[MINED106] Phantom test coverage: test_init_custom_integration_with_missing_handler: Test function `test_init_custom_integration_with_missing_handler` runs code but contains no assert / expect / shou…
high MINED106 Phantom test coverage (assertion-free test) CWE-1126
tests/test_config_entries.py:3736 · conf 1.00
[MINED106] Phantom test coverage: test_entry_id_existing_entry: Test function `test_entry_id_existing_entry` runs code but contains no assert / expect / should call — it passes regardless of behaviou…
high MINED106 Phantom test coverage (assertion-free test) CWE-1126
tests/test_config_entries.py:5830 · conf 1.00
[MINED106] Phantom test coverage: test_scheduling_reload_unknown_entry: Test function `test_scheduling_reload_unknown_entry` runs code but contains no assert / expect / should call — it passes regard…
high MINED106 Phantom test coverage (assertion-free test) CWE-1126
tests/test_config_entries.py:6106 · conf 1.00
[MINED106] Phantom test coverage: test_deprecated_disabled_by_str_ctor: Test function `test_deprecated_disabled_by_str_ctor` runs code but contains no assert / expect / should call — it passes regard…
high MINED106 Phantom test coverage (assertion-free test) CWE-1126
tests/test_config_entries.py:6114 · conf 1.00
[MINED106] Phantom test coverage: test_deprecated_disabled_by_str_set: Test function `test_deprecated_disabled_by_str_set` runs code but contains no assert / expect / should call — it passes regardle…
high MINED106 Phantom test coverage (assertion-free test) CWE-1126
tests/test_core_config.py:51 · conf 1.00
[MINED106] Phantom test coverage: test_core_config_schema: Test function `test_core_config_schema` runs code but contains no assert / expect / should call — it passes regardless of behaviour. Adds li…
high MINED106 Phantom test coverage (assertion-free test) CWE-1126
tests/test_core_config.py:533 · conf 1.00
[MINED106] Phantom test coverage: test_loading_configuration_from_packages: Test function `test_loading_configuration_from_packages` runs code but contains no assert / expect / should call — it passe…
high MINED106 Phantom test coverage (assertion-free test) CWE-1126
tests/test_core_config.py:666 · conf 1.00
[MINED106] Phantom test coverage: test_disallowed_auth_provider_config: Test function `test_disallowed_auth_provider_config` runs code but contains no assert / expect / should call — it passes regard…
high MINED106 Phantom test coverage (assertion-free test) CWE-1126
tests/test_core_config.py:692 · conf 1.00
[MINED106] Phantom test coverage: test_disallowed_duplicated_auth_provider_config: Test function `test_disallowed_duplicated_auth_provider_config` runs code but contains no assert / expect / should c…
high MINED106 Phantom test coverage (assertion-free test) CWE-1126
tests/test_core_config.py:707 · conf 1.00
[MINED106] Phantom test coverage: test_disallowed_auth_mfa_module_config: Test function `test_disallowed_auth_mfa_module_config` runs code but contains no assert / expect / should call — it passes re…
high MINED106 Phantom test coverage (assertion-free test) CWE-1126
tests/test_core_config.py:727 · conf 1.00
[MINED106] Phantom test coverage: test_disallowed_duplicated_auth_mfa_module_config: Test function `test_disallowed_duplicated_auth_mfa_module_config` runs code but contains no assert / expect / shou…
high MINED106 Phantom test coverage (assertion-free test) CWE-1126
tests/test_core_config.py:1019 · conf 1.00
[MINED106] Phantom test coverage: test_bad_timezone_raises_value_error: Test function `test_bad_timezone_raises_value_error` runs code but contains no assert / expect / should call — it passes regard…
high MINED106 Phantom test coverage (assertion-free test) CWE-1126
tests/test_loader.py:1076 · conf 1.00
[MINED106] Phantom test coverage: test_custom_integration_missing_version: Test function `test_custom_integration_missing_version` runs code but contains no assert / expect / should call — it passes …
high MINED106 Phantom test coverage (assertion-free test) CWE-1126
tests/test_loader.py:1085 · conf 1.00
[MINED106] Phantom test coverage: test_custom_integration_missing: Test function `test_custom_integration_missing` runs code but contains no assert / expect / should call — it passes regardless of be…
high MINED106 Phantom test coverage (assertion-free test) CWE-1126
tests/test_loader.py:1097 · conf 1.00
[MINED106] Phantom test coverage: test_validation: Test function `test_validation` runs code but contains no assert / expect / should call — it passes regardless of behaviour. Adds line coverage with…
high MINED106 Phantom test coverage (assertion-free test) CWE-1126
tests/test_loader.py:1292 · conf 1.00
[MINED106] Phantom test coverage: test_config_folder_not_in_path: Test function `test_config_folder_not_in_path` runs code but contains no assert / expect / should call — it passes regardless of beha…
high MINED108 self.attribute used but never assigned in __init__ CWE-476
homeassistant/bootstrap.py:1017 · conf 1.00
[MINED108] `self._async_dispatch` used but never assigned in __init__: Method `_async_watch` of class `_WatchPendingSetups` reads `self._async_dispatch`, but no assignment to it exists in __init__ (a…
high MINED108 self.attribute used but never assigned in __init__ CWE-476
homeassistant/bootstrap.py:1030 · conf 1.00
[MINED108] `self._async_schedule_next` used but never assigned in __init__: Method `_async_watch` of class `_WatchPendingSetups` reads `self._async_schedule_next`, but no assignment to it exists in _…
high MINED108 self.attribute used but never assigned in __init__ CWE-476
homeassistant/bootstrap.py:1043 · conf 1.00
[MINED108] `self._async_watch` used but never assigned in __init__: Method `_async_schedule_next` of class `_WatchPendingSetups` reads `self._async_watch`, but no assignment to it exists in __init__ …
high MINED108 self.attribute used but never assigned in __init__ CWE-476
homeassistant/bootstrap.py:1048 · conf 1.00
[MINED108] `self._async_schedule_next` used but never assigned in __init__: Method `async_start` of class `_WatchPendingSetups` reads `self._async_schedule_next`, but no assignment to it exists in __…
high MINED108 self.attribute used but never assigned in __init__ CWE-476
homeassistant/bootstrap.py:1052 · conf 1.00
[MINED108] `self._async_dispatch` used but never assigned in __init__: Method `async_stop` of class `_WatchPendingSetups` reads `self._async_dispatch`, but no assignment to it exists in __init__ (and…
high MINED108 self.attribute used but never assigned in __init__ CWE-476
homeassistant/data_entry_flow.py:233 · conf 1.00
[MINED108] `self._async_flow_handler_to_flow_result` used but never assigned in __init__: Method `async_get` of class `FlowManager` reads `self._async_flow_handler_to_flow_result`, but no assignment …
high MINED108 self.attribute used but never assigned in __init__ CWE-476
homeassistant/data_entry_flow.py:238 · conf 1.00
[MINED108] `self._async_flow_handler_to_flow_result` used but never assigned in __init__: Method `async_progress` of class `FlowManager` reads `self._async_flow_handler_to_flow_result`, but no assign…
high MINED108 self.attribute used but never assigned in __init__ CWE-476
homeassistant/data_entry_flow.py:254 · conf 1.00
[MINED108] `self._async_flow_handler_to_flow_result` used but never assigned in __init__: Method `async_progress_by_handler` of class `FlowManager` reads `self._async_flow_handler_to_flow_result`, bu…
high MINED108 self.attribute used but never assigned in __init__ CWE-476
homeassistant/exceptions.py:151 · conf 1.00
[MINED108] `self.output` used but never assigned in __init__: Method `__str__` of class `ConditionError` reads `self.output`, but no assignment to it exists in __init__ (and no class-level fallback).…
high MINED108 self.attribute used but never assigned in __init__ CWE-476
homeassistant/exceptions.py:168 · conf 1.00
[MINED108] `self._indent` used but never assigned in __init__: Method `output` of class `ConditionErrorMessage` reads `self._indent`, but no assignment to it exists in __init__ (and no class-level fa…
high MINED108 self.attribute used but never assigned in __init__ CWE-476
homeassistant/exceptions.py:168 · conf 1.00
[MINED108] `self.type` used but never assigned in __init__: Method `output` of class `ConditionErrorMessage` reads `self.type`, but no assignment to it exists in __init__ (and no class-level fallback…
high MINED108 self.attribute used but never assigned in __init__ CWE-476
homeassistant/exceptions.py:199 · conf 1.00
[MINED108] `self._indent` used but never assigned in __init__: Method `output` of class `ConditionErrorIndex` reads `self._indent`, but no assignment to it exists in __init__ (and no class-level fall…
high MINED108 self.attribute used but never assigned in __init__ CWE-476
homeassistant/exceptions.py:200 · conf 1.00
[MINED108] `self.type` used but never assigned in __init__: Method `output` of class `ConditionErrorIndex` reads `self.type`, but no assignment to it exists in __init__ (and no class-level fallback).…
high MINED108 self.attribute used but never assigned in __init__ CWE-476
homeassistant/exceptions.py:203 · conf 1.00
[MINED108] `self._indent` used but never assigned in __init__: Method `output` of class `ConditionErrorIndex` reads `self._indent`, but no assignment to it exists in __init__ (and no class-level fall…
high MINED108 self.attribute used but never assigned in __init__ CWE-476
homeassistant/exceptions.py:203 · conf 1.00
[MINED108] `self.type` used but never assigned in __init__: Method `output` of class `ConditionErrorIndex` reads `self.type`, but no assignment to it exists in __init__ (and no class-level fallback).…
high MINED108 self.attribute used but never assigned in __init__ CWE-476
homeassistant/requirements.py:166 · conf 1.00
[MINED108] `self._async_process_integration` used but never assigned in __init__: Method `async_get_integration_with_requirements` of class `RequirementsManager` reads `self._async_process_integratio…
high MINED108 self.attribute used but never assigned in __init__ CWE-476
homeassistant/requirements.py:189 · conf 1.00
[MINED108] `self.async_process_requirements` used but never assigned in __init__: Method `_async_process_integration` of class `RequirementsManager` reads `self.async_process_requirements`, but no as…
high MINED108 self.attribute used but never assigned in __init__ CWE-476
homeassistant/requirements.py:236 · conf 1.00
[MINED108] `self.async_get_integration_with_requirements` used but never assigned in __init__: Method `_async_process_integration` of class `RequirementsManager` reads `self.async_get_integration_wit…
high MINED108 self.attribute used but never assigned in __init__ CWE-476
homeassistant/requirements.py:299 · conf 1.00
[MINED108] `self._find_missing_requirements` used but never assigned in __init__: Method `async_process_requirements` of class `RequirementsManager` reads `self._find_missing_requirements`, but no as…
high MINED108 self.attribute used but never assigned in __init__ CWE-476
homeassistant/requirements.py:301 · conf 1.00
[MINED108] `self._raise_for_failed_requirements` used but never assigned in __init__: Method `async_process_requirements` of class `RequirementsManager` reads `self._raise_for_failed_requirements`, b…
high MINED108 self.attribute used but never assigned in __init__ CWE-476
homeassistant/requirements.py:305 · conf 1.00
[MINED108] `self._find_missing_requirements` used but never assigned in __init__: Method `async_process_requirements` of class `RequirementsManager` reads `self._find_missing_requirements`, but no as…
high MINED108 self.attribute used but never assigned in __init__ CWE-476
homeassistant/requirements.py:306 · conf 1.00
[MINED108] `self._async_process_requirements` used but never assigned in __init__: Method `async_process_requirements` of class `RequirementsManager` reads `self._async_process_requirements`, but no …
high MINED108 self.attribute used but never assigned in __init__ CWE-476
homeassistant/runner.py:187 · conf 1.00
[MINED108] `self._loop_factory` used but never assigned in __init__: Method `loop_name` of class `HassEventLoopPolicy` reads `self._loop_factory`, but no assignment to it exists in __init__ (and no c…
high MINED108 self.attribute used but never assigned in __init__ CWE-476
script/split_tests.py:126 · conf 1.00
[MINED108] `self.added_to_bucket` used but never assigned in __init__: Method `add_to_bucket` of class `TestFolder` reads `self.added_to_bucket`, but no assignment to it exists in __init__ (and no cl…
high MINED108 self.attribute used but never assigned in __init__ CWE-476
script/split_tests.py:134 · conf 1.00
[MINED108] `self.total_tests` used but never assigned in __init__: Method `__repr__` of class `TestFolder` reads `self.total_tests`, but no assignment to it exists in __init__ (and no class-level fal…
high MINED110 Blocking call inside async function CWE-833
tests/components/backblaze_b2/test_backup.py:918 · conf 1.00
[MINED110] Blocking call `time.sleep` inside async function `test_metadata_downloads_are_sequential`: `time.sleep` is a synchronous (blocking) call. When invoked inside an `async def` it stalls the e…
high MINED110 Blocking call inside async function CWE-833
tests/components/guntamatic/test_init.py:32 · conf 1.00
[MINED110] Blocking call `requests.exceptions.ConnectionError` inside async function `test_setup_entry_fails`: `requests.exceptions.ConnectionError` is a synchronous (blocking) call. When invoked ins…
high MINED110 Blocking call inside async function CWE-833
tests/components/guntamatic/test_sensor.py:45 · conf 1.00
[MINED110] Blocking call `requests.exceptions.ConnectionError` inside async function `test_state_unavailable`: `requests.exceptions.ConnectionError` is a synchronous (blocking) call. When invoked ins…
high MINED110 Blocking call inside async function CWE-833
tests/components/upcloud/test_config_flow.py:42 · conf 1.00
[MINED110] Blocking call `requests.exceptions.ConnectionError` inside async function `test_connection_error`: `requests.exceptions.ConnectionError` is a synchronous (blocking) call. When invoked insi…
high MINED110 Blocking call inside async function CWE-833
tests/helpers/test_importlib.py:94 · conf 1.00
[MINED110] Blocking call `time.sleep` inside async function `test_async_import_module_concurrency`: `time.sleep` is a synchronous (blocking) call. When invoked inside an `async def` it stalls the eve…
high MINED110 Blocking call inside async function CWE-833
tests/test_block_async_io.py:48 · conf 1.00
[MINED110] Blocking call `time.sleep` inside async function `test_protect_loop_debugger_sleep`: `time.sleep` is a synchronous (blocking) call. When invoked inside an `async def` it stalls the event l…
high MINED110 Blocking call inside async function CWE-833
tests/test_block_async_io.py:75 · conf 1.00
[MINED110] Blocking call `time.sleep` inside async function `test_protect_loop_sleep`: `time.sleep` is a synchronous (blocking) call. When invoked inside an `async def` it stalls the event loop, prev…
high MINED110 Blocking call inside async function CWE-833
tests/test_block_async_io.py:101 · conf 1.00
[MINED110] Blocking call `time.sleep` inside async function `test_protect_loop_sleep_get_current_frame_raises`: `time.sleep` is a synchronous (blocking) call. When invoked inside an `async def` it st…
high MINED110 Blocking call inside async function CWE-833
tests/test_core.py:595 · conf 1.00
[MINED110] Blocking call `time.sleep` inside async function `test_async_add_executor_job_background`: `time.sleep` is a synchronous (blocking) call. When invoked inside an `async def` it stalls the e…
high MINED110 Blocking call inside async function CWE-833
tests/test_core.py:616 · conf 1.00
[MINED110] Blocking call `time.sleep` inside async function `test_async_add_executor_job`: `time.sleep` is a synchronous (blocking) call. When invoked inside an `async def` it stalls the event loop, …
high MINED110 Blocking call inside async function CWE-833
tests/util/test_executor.py:22 · conf 1.00
[MINED110] Blocking call `time.sleep` inside async function `test_executor_shutdown_can_interrupt_threads`: `time.sleep` is a synchronous (blocking) call. When invoked inside an `async def` it stalls…
high MINED110 Blocking call inside async function CWE-833
tests/util/test_executor.py:44 · conf 1.00
[MINED110] Blocking call `time.sleep` inside async function `test_executor_shutdown_only_logs_max_attempts`: `time.sleep` is a synchronous (blocking) call. When invoked inside an `async def` it stall…
high MINED110 Blocking call inside async function CWE-833
tests/util/test_executor.py:78 · conf 1.00
[MINED110] Blocking call `time.sleep` inside async function `test_overall_timeout_reached`: `time.sleep` is a synchronous (blocking) call. When invoked inside an `async def` it stalls the event loop,…
high MINED110 Blocking call inside async function CWE-833
tests/util/test_timeout.py:59 · conf 1.00
[MINED110] Blocking call `time.sleep` inside async function `test_simple_zone_timeout_freeze_inside_executor_job`: `time.sleep` is a synchronous (blocking) call. When invoked inside an `async def` it…
high MINED110 Blocking call inside async function CWE-833
tests/util/test_timeout.py:76 · conf 1.00
[MINED110] Blocking call `time.sleep` inside async function `test_simple_global_timeout_freeze_inside_executor_job`: `time.sleep` is a synchronous (blocking) call. When invoked inside an `async def` …
high MINED110 Blocking call inside async function CWE-833
tests/util/test_timeout.py:90 · conf 1.00
[MINED110] Blocking call `time.sleep` inside async function `test_mix_global_timeout_freeze_and_zone_freeze_inside_executor_job`: `time.sleep` is a synchronous (blocking) call. When invoked inside an…
high MINED110 Blocking call inside async function CWE-833
tests/util/test_timeout.py:107 · conf 1.00
[MINED110] Blocking call `time.sleep` inside async function `test_mix_global_timeout_freeze_and_zone_freeze_different_order`: `time.sleep` is a synchronous (blocking) call. When invoked inside an `as…
high MINED110 Blocking call inside async function CWE-833
tests/util/test_timeout.py:123 · conf 1.00
[MINED110] Blocking call `time.sleep` inside async function `test_mix_global_timeout_freeze_and_zone_freeze_other_zone_inside_executor_job`: `time.sleep` is a synchronous (blocking) call. When invoke…
high MINED110 Blocking call inside async function CWE-833
tests/util/test_timeout.py:142 · conf 1.00
[MINED110] Blocking call `time.sleep` inside async function `test_mix_global_timeout_freeze_and_zone_freeze_executor_2nd_outside_zone`: `time.sleep` is a synchronous (blocking) call. When invoked ins…
high MINED118 Dockerfile FROM not pinned by sha256 digest CWE-829
Dockerfile.dev:2 · conf 0.90
[MINED118] Dockerfile FROM `mcr.microsoft.com/vscode/devcontainers/base:debian` not pinned by digest: `FROM mcr.microsoft.com/vscode/devcontainers/base:debian` resolves the tag at build time. The reg…
high MINED118 Dockerfile FROM not pinned by sha256 digest CWE-829
script/hassfest/docker/Dockerfile:5 · conf 0.90
[MINED118] Dockerfile FROM `python:3.14.5-alpine` not pinned by digest: `FROM python:3.14.5-alpine` resolves the tag at build time. The registry CAN re-push a different image for the same tag, so eve…
high MINED131 pre-commit hook pinned to branch/tag instead of SHA CWE-829
.pre-commit-config.yaml:2 · conf 0.90
[MINED131] pre-commit hook `https://github.com/astral-sh/ruff-pre-commit` pinned to mutable rev `v0.15.13`: `.pre-commit-config.yaml` references `https://github.com/astral-sh/ruff-pre-commit` at `rev…
high MINED131 pre-commit hook pinned to branch/tag instead of SHA CWE-829
.pre-commit-config.yaml:10 · conf 0.90
[MINED131] pre-commit hook `https://github.com/codespell-project/codespell` pinned to mutable rev `v2.4.2`: `.pre-commit-config.yaml` references `https://github.com/codespell-project/codespell` at `r…
high MINED131 pre-commit hook pinned to branch/tag instead of SHA CWE-829
.pre-commit-config.yaml:20 · conf 0.90
[MINED131] pre-commit hook `https://github.com/zizmorcore/zizmor-pre-commit` pinned to mutable rev `v1.24.1`: `.pre-commit-config.yaml` references `https://github.com/zizmorcore/zizmor-pre-commit` at…
high MINED131 pre-commit hook pinned to branch/tag instead of SHA CWE-829
.pre-commit-config.yaml:27 · conf 0.90
[MINED131] pre-commit hook `https://github.com/pre-commit/pre-commit-hooks` pinned to mutable rev `v6.0.0`: `.pre-commit-config.yaml` references `https://github.com/pre-commit/pre-commit-hooks` at `r…
high MINED131 pre-commit hook pinned to branch/tag instead of SHA CWE-829
.pre-commit-config.yaml:39 · conf 0.90
[MINED131] pre-commit hook `https://github.com/adrienverge/yamllint.git` pinned to mutable rev `v1.38.0`: `.pre-commit-config.yaml` references `https://github.com/adrienverge/yamllint.git` at `rev: v…
high MINED131 pre-commit hook pinned to branch/tag instead of SHA CWE-829
.pre-commit-config.yaml:43 · conf 0.90
[MINED131] pre-commit hook `https://github.com/rbubley/mirrors-prettier` pinned to mutable rev `v3.6.2`: `.pre-commit-config.yaml` references `https://github.com/rbubley/mirrors-prettier` at `rev: v3…
high MINED131 pre-commit hook pinned to branch/tag instead of SHA CWE-829
.pre-commit-config.yaml:51 · conf 0.90
[MINED131] pre-commit hook `https://github.com/cdce8p/python-typing-update` pinned to mutable rev `v0.6.0`: `.pre-commit-config.yaml` references `https://github.com/cdce8p/python-typing-update` at `r…
high SEC020 Secret Printed to Logs
homeassistant/components/aquacell/coordinator.py:78 · conf 0.85
[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 SEC029 Server-Side Request Forgery (SSRF) — outbound HTTP from user input
homeassistant/components/abode/camera.py:79 · 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
homeassistant/components/accuweather/system_health.py:31 · 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
homeassistant/components/acer_projector/switch.py:101 · 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 SEC078 Python: requests without timeout
homeassistant/components/abode/camera.py:79 · conf 1.00
[SEC078] Python: requests without timeout: requests.get/post without a timeout will hang indefinitely on a non-responsive server, causing thread exhaustion and ReDoS. Ported from bandit B113 (Apache-…
high SEC078 Python: requests without timeout
homeassistant/components/clicksend/notify.py:81 · conf 1.00
[SEC078] Python: requests without timeout: requests.get/post without a timeout will hang indefinitely on a non-responsive server, causing thread exhaustion and ReDoS. Ported from bandit B113 (Apache-…
high SEC078 Python: requests without timeout
homeassistant/components/clicksend_tts/notify.py:98 · conf 1.00
[SEC078] Python: requests without timeout: requests.get/post without a timeout will hang indefinitely on a non-responsive server, causing thread exhaustion and ReDoS. Ported from bandit B113 (Apache-…
high SEC080 Python: tarfile.extractall without filter
homeassistant/backup_restore.py:93 · conf 1.00
[SEC080] Python: tarfile.extractall without filter: tarfile.extract*() without filter='data' allows path-traversal (CVE-2007-4559, fixed via PEP 706 in 3.12). Ported from bandit B202 (Apache-2.0).
high SEC103 LDAP injection — non-constant search filter
homeassistant/components/acer_projector/switch.py:121 · conf 1.00
[SEC103] LDAP injection — non-constant search filter: User input concatenated into an LDAP search filter. Attackers inject `*)(uid=*` style payloads to bypass auth or enumerate accounts.
high SEC103 LDAP injection — non-constant search filter
homeassistant/components/dovado/sensor.py:121 · conf 1.00
[SEC103] LDAP injection — non-constant search filter: User input concatenated into an LDAP search filter. Attackers inject `*)(uid=*` style payloads to bypass auth or enumerate accounts.
high SEC103 LDAP injection — non-constant search filter
homeassistant/components/downloader/services.py:77 · conf 1.00
[SEC103] LDAP injection — non-constant search filter: User input concatenated into an LDAP search filter. Attackers inject `*)(uid=*` style payloads to bypass auth or enumerate accounts.
high SEC128 Async function without await — fire-and-forget Promise (AI mistake)
homeassistant/components/airq/coordinator.py:61 · 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)
homeassistant/components/airvisual/sensor.py:167 · 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)
homeassistant/components/airzone/binary_sensor.py:106 · 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 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 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.
homeassistant/auth/permissions/merge.py:24 · conf 0.95
[COMP001] High cognitive complexity: Function `_merge_policies` has cognitive complexity 15 (SonarSource scale). Cognitive complexity measures how hard the function is for a human to understand — nes…
medium DKR001 Docker final stage has no non-root USER
Dockerfile:6 · conf 0.82
Docker final stage has no non-root USER
medium DKR001 Docker final stage has no non-root USER
script/hassfest/docker/Dockerfile:5 · conf 0.82
Docker final stage has no non-root USER
medium MINED111 Bare except continues silently
homeassistant/requirements.py:243 · 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 MINED111 Bare except continues silently
tests/test_config_entries.py:7019 · 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 MINED111 Bare except continues silently
tests/test_config_entries.py:7306 · 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 SEC001 Hardcoded Password
homeassistant/components/edimax/switch.py:21 · conf 0.30
[SEC001] Hardcoded Password: Hardcoded password found in source code.
medium SEC001 Hardcoded Password
homeassistant/components/enigma2/const.py:15 · conf 0.30
[SEC001] Hardcoded Password: Hardcoded password found in source code.
medium SEC003 Hardcoded Secret
homeassistant/components/baidu/tts.py:25 · conf 0.30
[SEC003] Hardcoded Secret: Hardcoded secret key found in source code.
medium SEC005 Command Injection Risk
homeassistant/components/command_line/notify.py:55 · conf 0.50
[SEC005] Command Injection Risk: Unsafe shell execution or eval of user input.
medium SEC012 ZipSlip — Archive Path Traversal
homeassistant/backup_restore.py:93 · conf 1.00
[SEC012] ZipSlip — Archive Path Traversal: Archive extraction without path validation allows writing files outside the target directory.
medium SEC014 SSL Verification Disabled
homeassistant/components/august/config_flow.py:41 · conf 1.00
[SEC014] SSL Verification Disabled: SSL certificate verification is disabled, allowing man-in-the-middle attacks.
medium SEC014 SSL Verification Disabled
homeassistant/components/elmax/common.py:20 · conf 1.00
[SEC014] SSL Verification Disabled: SSL certificate verification is disabled, allowing man-in-the-middle attacks.
medium SEC127 AI agent stub — TODO: implement / pass placeholder body
homeassistant/components/bond/entity.py:151 · 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…
medium SEC134 AI scaffold leftover — Lorem ipsum / example.com / John Doe in code
homeassistant/components/demo/update.py:36 · 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…
low AIC002 Source file name looks like an AI patch artifact
homeassistant/components/zwave_js/triggers/value_updated.py:1 · conf 0.62
Source file name looks like an AI patch artifact
low AIC003 Duplicated implementation block across source files
homeassistant/auth/providers/homeassistant.py:322 · conf 0.86
Duplicated implementation block across source files
low AIC003 Duplicated implementation block across source files
homeassistant/auth/providers/insecure_example.py:45 · conf 0.86
Duplicated implementation block across source files
low AIC003 Duplicated implementation block across source files
homeassistant/components/acmeda/sensor.py:6 · conf 0.86
Duplicated implementation block across source files
low AIC003 Duplicated implementation block across source files
homeassistant/components/airly/config_flow.py:60 · conf 0.86
Duplicated implementation block across source files
low AIC003 Duplicated implementation block across source files
homeassistant/components/airnow/config_flow.py:74 · conf 0.86
Duplicated implementation block across source files
low AIC003 Duplicated implementation block across source files
homeassistant/components/air_quality/trigger.py:2 · conf 0.86
Duplicated implementation block across source files
low AIC003 Duplicated implementation block across source files
homeassistant/components/airthings_ble/sensor.py:91 · conf 0.86
Duplicated implementation block across source files
low AIC003 Duplicated implementation block across source files
homeassistant/components/airzone_cloud/binary_sensor.py:142 · conf 0.86
Duplicated implementation block across source files
low AIC003 Duplicated implementation block across source files
homeassistant/components/airzone_cloud/climate.py:36 · conf 0.86
Duplicated implementation block across source files
low AIC003 Duplicated implementation block across source files
homeassistant/components/airzone_cloud/sensor.py:183 · conf 0.86
Duplicated implementation block across source files
low AIC003 Duplicated implementation block across source files
homeassistant/components/airzone_cloud/water_heater.py:127 · conf 0.86
Duplicated implementation block across source files
low AIC003 Duplicated implementation block across source files
homeassistant/components/altruist/sensor.py:5 · conf 0.86
Duplicated implementation block across source files
low AIC003 Duplicated implementation block across source files
homeassistant/components/amberelectric/services.py:43 · conf 0.86
Duplicated implementation block across source files
low AIC003 Duplicated implementation block across source files
homeassistant/components/androidtv_remote/config_flow.py:258 · conf 0.86
Duplicated implementation block across source files
low AIC005 Duplicate top-level symbol appears in a patch-style file
homeassistant/components/zwave_js/triggers/value_updated.py:1 · conf 0.64
Duplicate top-level symbol appears in a patch-style file
low AIC009 Multiple AI-agent scaffold marker files are present
.github/copilot-instructions.md:1 · conf 0.68
Multiple AI-agent scaffold marker files are present
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.
homeassistant/auth/permissions/util.py:23 · conf 0.95
[COMP001] High cognitive complexity: Function `compile_policy` has cognitive complexity 8 (SonarSource scale). Cognitive complexity measures how hard the function is for a human to understand — neste…
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.
homeassistant/__main__.py:37 · conf 0.95
[COMP001] High cognitive complexity: Function `ensure_config_path` has cognitive complexity 12 (SonarSource scale). Cognitive complexity measures how hard the function is for a human to understand — …
low DKR008 .dockerignore misses sensitive defaults
.dockerignore · conf 0.72
.dockerignore misses sensitive defaults
low DKR012 Dockerfile keeps pip download cache
Dockerfile:43 · conf 0.72
Dockerfile keeps pip download cache
low DKR012 Dockerfile keeps pip download cache
Dockerfile:53 · conf 0.72
Dockerfile keeps pip download cache
low DKR012 Dockerfile keeps pip download cache
Dockerfile.dev:46 · conf 0.72
Dockerfile keeps pip download cache
low DKR012 Dockerfile keeps pip download cache
Dockerfile.dev:50 · conf 0.72
Dockerfile keeps pip download cache
low SEC124 TOCTOU file access (os.access then open)
homeassistant/components/downloader/services.py:133 · conf 1.00
[SEC124] TOCTOU file access (os.access then open): Check-then-use file pattern (access/exists then open) lets an attacker swap the file between check and use (symlink attack). `mktemp` is deprecated …
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 303 more): Same pattern found in 303 additional files. Review if needed.
info DKR002 Dockerfile base image has no explicit tag
Dockerfile:6 · conf 0.48
Dockerfile base image is selected through a build variable
info MINED001 Bare Except Pass CWE-755
· conf 0.20
[MINED001] Bare Except Pass (and 1 more): Same pattern found in 1 additional files. Review if needed.
info MINED043 Http Not Https CWE-319
· conf 0.20
[MINED043] Http Not Https (and 24 more): Same pattern found in 24 additional files. Review if needed.
info MINED043 Http Not Https CWE-319
homeassistant/components/accuweather/coordinator.py:215 · 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
homeassistant/components/adguard/entity.py:57 · 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
homeassistant/components/agent_dvr/helpers.py:8 · conf 1.00
[MINED043] Http Not Https: Hardcoded http:// (not localhost) for endpoints that handle credentials or data.
info MINED050 Stub Only Function CWE-1188
· conf 0.20
[MINED050] Stub Only Function (and 35 more): Same pattern found in 35 additional files. Review if needed.
info MINED050 Stub Only Function CWE-1188
homeassistant/auth/mfa_modules/__init__.py:70 · 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
homeassistant/auth/permissions/__init__.py:49 · 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
homeassistant/auth/providers/__init__.py:111 · conf 1.00
[MINED050] Stub Only Function: Function declared but body is just pass, return None, raise NotImplementedError, or TODO comment.
info MINED062 Python Dataclass No Fields
· conf 0.20
[MINED062] Python Dataclass No Fields (and 228 more): Same pattern found in 228 additional files. Review if needed.
info MINED062 Python Dataclass No Fields
homeassistant/backup_restore.py:29 · conf 1.00
[MINED062] Python Dataclass No Fields: @dataclass over an empty class — unfinished model.
info MINED062 Python Dataclass No Fields
homeassistant/block_async_io.py:59 · conf 1.00
[MINED062] Python Dataclass No Fields: @dataclass over an empty class — unfinished model.
info MINED062 Python Dataclass No Fields
homeassistant/components/abode/__init__.py:58 · conf 1.00
[MINED062] Python Dataclass No Fields: @dataclass over an empty class — unfinished model.
info MINED064 Python Input Call
homeassistant/components/aquostv/media_player.py:154 · conf 1.00
[MINED064] Python Input Call: input() blocks for stdin. Inappropriate in services.
info MINED067 Python Requests No Timeout CWE-400
· conf 0.20
[MINED067] Python Requests No Timeout (and 9 more): Same pattern found in 9 additional files. Review if needed.
info MINED067 Python Requests No Timeout CWE-400
homeassistant/components/abode/camera.py:79 · conf 1.00
[MINED067] Python Requests No Timeout: requests.get/post/etc. without timeout= can hang forever.
info MINED067 Python Requests No Timeout CWE-400
homeassistant/components/arest/binary_sensor.py:48 · conf 1.00
[MINED067] Python Requests No Timeout: requests.get/post/etc. without timeout= can hang forever.
info MINED067 Python Requests No Timeout CWE-400
homeassistant/components/arest/sensor.py:71 · conf 1.00
[MINED067] Python Requests No Timeout: requests.get/post/etc. without timeout= can hang forever.
info MINED079 Off By One Slice CWE-193
homeassistant/components/axis/config_flow.py:152 · conf 1.00
[MINED079] Off By One Slice: range(len(x)+1), arr[i+1:i+n+1], or while i<=len(arr) — off-by-one risk.
info SEC001 Hardcoded Password
· conf 0.20
[SEC001] Hardcoded Password (and 3 more): Same pattern found in 3 additional files. Review if needed.
info SEC001 Hardcoded Password
homeassistant/components/alexa/const.py:44 · conf 0.15
[SEC001] Hardcoded Password: Hardcoded password found in source code.
info SEC020 Secret Printed to Logs
· conf 0.20
[SEC020] Secret Printed to Logs (and 13 more): Same pattern found in 13 additional files. Review if needed.
info SEC020 Secret Printed to Logs
homeassistant/components/actron_air/config_flow.py:38 · 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
homeassistant/components/adax/config_flow.py:144 · 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 40 more): Same pattern found in 40 additional files. Review if needed.
info SEC078 Python: requests without timeout
· conf 0.20
[SEC078] Python: requests without timeout (and 9 more): Same pattern found in 9 additional files. Review if needed.
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 75 more): Same pattern found in 75 additional files. Review if needed.

Reading from rp.scan + rp.finding + rp.rule (unified schema, R78 series). Legacy data path unchanged. Compare with /scan/ca1385e6-ca8b-4803-a946-80232c7fd7cd/.