Prowler is the world’s most widely used open-source cloud security platform that automates security and compliance across any cloud environment.
This report summarizes scanner evidence for prowler-cloud/prowler, a Python project with 14,998 GitHub stars. SynthScan examined 1,699,053 lines of code across 11273 source files, recording 19384 pattern matches distributed across 24 syntactic categories. The legacy adjusted pattern signal is 13.7 (Moderate pattern signal); it is not an authorship estimate.
Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.
Use each vector to guide manual verification of the underlying findings.
Can maintainers explain intent, assumptions, and trade-offs? 16195 finding(s).
Are imports declared and package/API names verified? 426 finding(s).
Are wrappers, guards, and repeated structures necessary? 16616 finding(s).
Which changes need focused human review? 19384 finding(s).
This chart tracks the legacy adjusted pattern score across scan runs. Changes can reflect source changes, scan coverage, or detector/scoring versions; they do not measure AI adoption or prove that a team refactored code. Compare runs only when their scoring versions are compatible. The dashed line tracks the raw pattern-hit count.
Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.
This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.
The scanner identified 19384 distinct pattern matches across 24 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.
Reading the findings table: The Severity column indicates the configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | ui/types/providers-table.ts | 112 | export function isProvidersOrganizationRow( | CODE |
| LOW | …rowler)/attack-paths/(workflow)/query-builder/page.tsx | 22 | export default async function AttackPathsQueryBuilderRedirectPage({ | CODE |
| LOW | …telist/_components/simple/mute-rule-target-previews.ts | 14 | export function formatMuteRuleTargetPreview( | CODE |
| LOW | …telist/_components/simple/mute-rule-target-previews.ts | 31 | export async function hydrateMuteRuleTargetPreviews( | CODE |
| LOW | …ans/config/_components/scan-configurations-manager.tsx | 34 | export function ScanConfigurationsManager({ | CODE |
| LOW | ui/app/(prowler)/providers/providers-page.utils.ts | 226 | function getRelationshipProviderIds( | CODE |
| LOW | ui/app/(prowler)/providers/providers-page.utils.ts | 238 | function getOrganizationNodeParentId( | CODE |
| LOW | ui/app/(prowler)/providers/providers-page.utils.ts | 260 | function resolveProviderRowsAndIds({ | CODE |
| LOW | ui/app/(prowler)/providers/providers-page.utils.ts | 300 | function collectOrganizationRowProviderIds( | CODE |
| LOW | ui/app/(prowler)/providers/providers-page.utils.ts | 306 | function getOrganizationNodeRelationshipId( | CODE |
| LOW | ui/app/(prowler)/providers/providers-page.utils.ts | 317 | function buildOrganizationNodeRows({ | CODE |
| LOW | ui/app/(prowler)/providers/providers-page.utils.ts | 522 | function collectAssignedProviderIds(rows: ProvidersTableRow[]) { | CODE |
| LOW | ui/app/(prowler)/providers/providers-page.utils.ts | 541 | export async function loadProvidersAccountsViewData({ | CODE |
| LOW | …r)/_overview/threat-score/_components/threat-score.tsx | 63 | function convertSectionScoresToTooltipData( | CODE |
| LOW | …me/_components/finding-severity-over-time.skeleton.tsx | 3 | export function FindingSeverityOverTimeSkeleton() { | CODE |
| LOW | ui/app/(prowler)/_overview/_lib/lighthouse-banner.ts | 21 | export function resolveLighthouseOverviewBannerHref( | CODE |
| LOW | ui/app/(prowler)/_overview/_lib/lighthouse-banner.ts | 31 | export async function getLighthouseOverviewBannerHref( | CODE |
| LOW | …prowler)/_overview/_lib/lighthouse-provider-context.ts | 24 | export function buildOverviewProviderContextItems({ | CODE |
| LOW | …w/resources-inventory/resources-inventory-skeleton.tsx | 37 | export function ResourcesInventorySkeleton() { | CODE |
| LOW | …nventory/_components/resources-inventory-card-item.tsx | 13 | export function ResourcesInventoryCardItem({ | CODE |
| LOW | …-severity/_components/risk-severity-chart.skeleton.tsx | 3 | export function RiskSeverityChartSkeleton() { | CODE |
| LOW | ui/app/(prowler)/lighthouse/config/page.tsx | 5 | export default function LighthouseConfigRedirectPage() { | CODE |
| LOW | …/app/(prowler)/lighthouse/config/select-model/page.tsx | 3 | export default async function LighthouseConfigSelectModelRedirectPage({ | CODE |
| LOW | ui/app/(prowler)/lighthouse/config/connect/page.tsx | 3 | export default async function LighthouseConfigConnectRedirectPage({ | CODE |
| LOW | ui/app/(prowler)/lighthouse/_lib/chat-store.ts | 102 | function findLastPersistedUserMessageId( | CODE |
| LOW | ui/app/(prowler)/lighthouse/_lib/chat-store.ts | 117 | export function selectLighthouseChatCanSend( | CODE |
| LOW | ui/app/(prowler)/lighthouse/_lib/chat-store.ts | 136 | export function selectLighthouseChatActiveSkill( | CODE |
| LOW | ui/app/(prowler)/lighthouse/_lib/chat-store.ts | 147 | export function createLighthouseChatStore( | CODE |
| LOW | ui/app/(prowler)/lighthouse/_lib/chat-store.ts | 594 | function resolveInitialModelSelection( | CODE |
| LOW | …/(prowler)/lighthouse/_lib/panel-chat-message-state.ts | 11 | export function subscribePanelChatHasMessages( | CODE |
| LOW | …/(prowler)/lighthouse/_lib/panel-chat-message-state.ts | 18 | export function getPanelChatActiveSessionId(): string | null { | CODE |
| LOW | …/(prowler)/lighthouse/_lib/panel-chat-message-state.ts | 42 | export function resetPanelChatMessageState(): void { | CODE |
| LOW | ui/app/(prowler)/lighthouse/_lib/panel-chat-store.ts | 20 | export function getOrCreatePanelChatStore( | CODE |
| LOW | ui/app/(prowler)/lighthouse/_lib/panel-chat-store.ts | 20 | export function getOrCreatePanelChatStore( | CODE |
| LOW | ui/app/(prowler)/lighthouse/_lib/panel-chat-store.ts | 55 | function requestPanelChatSubmission( | CODE |
| LOW | ui/app/(prowler)/lighthouse/_lib/panel-chat-store.ts | 81 | export function flushPendingPanelChatMessage(): void { | CODE |
| LOW | ui/app/(prowler)/lighthouse/_lib/panel-chat-store.ts | 94 | export function getPanelChatStoreForSession( | CODE |
| LOW | ui/app/(prowler)/lighthouse/_lib/panel-chat-store.ts | 116 | export function resetPanelChatStoreForTests(): void { | CODE |
| LOW | …/_components/panel/lighthouse-panel-header-actions.tsx | 22 | export function LighthousePanelHeaderActions() { | CODE |
| LOW | …lighthouse/_components/panel/lighthouse-panel-chat.tsx | 86 | export function resetPanelChatConfigCacheForTests(): void { | CODE |
| LOW | …e/_components/panel/lighthouse-panel-chat-skeleton.tsx | 8 | export function LighthousePanelChatSkeleton() { | CODE |
| LOW | …se/_components/chat/lighthouse-chat-store-provider.tsx | 20 | export function LighthouseChatStoreProvider({ | CODE |
| LOW | …r)/lighthouse/_components/chat/decrypted-text-hooks.ts | 116 | export function useDecryptedTextController({ | CODE |
| LOW | …ighthouse/_components/chat/lighthouse-v2-chat-view.tsx | 300 | function useLighthouseOutcomeFeedbackSurvey(): LighthouseFeedbackSurvey | null { | CODE |
| LOW | …rowler)/lighthouse/_components/chat/message-bubble.tsx | 226 | function getAssistantPartGroupType( | CODE |
| LOW | …rowler)/lighthouse/_components/chat/message-bubble.tsx | 278 | export function LighthouseOutcomeFeedbackControls({ | CODE |
| LOW | …ler)/lighthouse/_components/chat/streaming-message.tsx | 46 | export function StreamingAssistantMessage({ | CODE |
| LOW | …ler)/lighthouse/_components/chat/streaming-message.tsx | 157 | function StreamingReconnectActivity() { | CODE |
| LOW | …ler)/lighthouse/_components/chat/streaming-message.tsx | 201 | function groupStreamingActivityItems( | CODE |
| LOW | …hthouse/_components/chat/lighthouse-feedback-survey.ts | 72 | export function resolveLighthouseFeedbackSurvey( | CODE |
| LOW | …hthouse/_components/chat/lighthouse-feedback-survey.ts | 111 | export function buildLighthouseFeedbackSurveyEvents( | CODE |
| LOW | …ighthouse/_components/ai-elements/chain-of-thought.tsx | 164 | export function ChainOfThoughtSearchResults({ | CODE |
| LOW | …ighthouse/_components/ai-elements/chain-of-thought.tsx | 178 | export function ChainOfThoughtSearchResult({ | CODE |
| LOW | ui/app/(auth)/invitation/_lib/invitation-errors.ts | 61 | export function getInvitationErrorDisplay( | CODE |
| LOW | ui/components/layout/app-sidebar/sidebar-navigation.tsx | 54 | function getCollapsibleActivationKey(item: NavigationCollapsible) { | CODE |
| LOW | ui/components/layout/app-sidebar/sidebar-navigation.tsx | 181 | function CollapsibleNavigationItem({ | CODE |
| LOW | …omponents/layout/app-sidebar/app-sidebar-mode-store.ts | 63 | export function useHydratedAppSidebarMode(): AppSidebarMode { | CODE |
| LOW | ui/components/layout/app-sidebar/navigation-config.ts | 86 | export function filterNavigationByPermissions( | CODE |
| LOW | ui/components/scans/scans.utils.ts | 68 | export function getScanTriggerFilterOptions( | CODE |
| LOW | ui/components/scans/scans.utils.ts | 185 | export function getScanStatusFilterOptions( | CODE |
| 13721 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | …/objectstorage/openstack_objectstorage_service_test.py | 0 | test that a failing region doesn't prevent other regions from being listed. | STRING |
| HIGH | …es/blockstorage/openstack_blockstorage_service_test.py | 0 | test that a failing region doesn't prevent other regions from being listed. | STRING |
| HIGH | …rvices/networking/openstack_networking_service_test.py | 0 | test that a failing region doesn't prevent other regions from being listed. | STRING |
| HIGH | …oviders/openstack/services/image/image_service_test.py | 0 | test that a failing region doesn't prevent other regions from being listed. | STRING |
| HIGH | …ack/services/compute/openstack_compute_service_test.py | 0 | test that a failing region doesn't prevent other regions from being listed. | STRING |
| HIGH | …bjectstorage_container_metadata_sensitive_data_test.py | 0 | test that a confirmed live secret escalates the finding to critical (fail). | STRING |
| HIGH | …/blockstorage_snapshot_metadata_sensitive_data_test.py | 0 | test that a confirmed live secret escalates the finding to critical (fail). | STRING |
| HIGH | …ta/blockstorage_volume_metadata_sensitive_data_test.py | 0 | test that a confirmed live secret escalates the finding to critical (fail). | STRING |
| HIGH | …_data/compute_instance_metadata_sensitive_data_test.py | 0 | test that a confirmed live secret escalates the finding to critical (fail). | STRING |
| HIGH | …/blockstorage_snapshot_metadata_sensitive_data_test.py | 0 | test that secrets are correctly attributed to the right metadata keys. | STRING |
| HIGH | …ta/blockstorage_volume_metadata_sensitive_data_test.py | 0 | test that secrets are correctly attributed to the right metadata keys. | STRING |
| HIGH | …_data/compute_instance_metadata_sensitive_data_test.py | 0 | test that secrets are correctly attributed to the right metadata keys. | STRING |
| HIGH | …leworkspace/services/calendar/calendar_service_test.py | 0 | test early return when _build_service fails to construct the client | STRING |
| HIGH | …ers/googleworkspace/services/chat/chat_service_test.py | 0 | test early return when _build_service fails to construct the client | STRING |
| HIGH | …space/services/marketplace/marketplace_service_test.py | 0 | test early return when _build_service fails to construct the client | STRING |
| HIGH | …/additionalservices/additionalservices_service_test.py | 0 | test early return when _build_service fails to construct the client | STRING |
| HIGH | …googleworkspace/services/groups/groups_service_test.py | 0 | test early return when _build_service fails to construct the client | STRING |
| HIGH | …s/googleworkspace/services/sites/sites_service_test.py | 0 | test early return when _build_service fails to construct the client | STRING |
| HIGH | …s/googleworkspace/services/drive/drive_service_test.py | 0 | test early return when _build_service fails to construct the client | STRING |
| HIGH | …s/googleworkspace/services/gmail/gmail_service_test.py | 0 | test early return when _build_service fails to construct the client | STRING |
| HIGH | …leworkspace/services/calendar/calendar_service_test.py | 0 | test inner except handler when request.execute() raises during pagination | STRING |
| HIGH | …ers/googleworkspace/services/chat/chat_service_test.py | 0 | test inner except handler when request.execute() raises during pagination | STRING |
| HIGH | …ices/security/googleworkspace_security_service_test.py | 0 | test inner except handler when request.execute() raises during pagination | STRING |
| HIGH | …space/services/marketplace/marketplace_service_test.py | 0 | test inner except handler when request.execute() raises during pagination | STRING |
| HIGH | …/additionalservices/additionalservices_service_test.py | 0 | test inner except handler when request.execute() raises during pagination | STRING |
| HIGH | …googleworkspace/services/groups/groups_service_test.py | 0 | test inner except handler when request.execute() raises during pagination | STRING |
| HIGH | …s/googleworkspace/services/sites/sites_service_test.py | 0 | test inner except handler when request.execute() raises during pagination | STRING |
| HIGH | …s/googleworkspace/services/drive/drive_service_test.py | 0 | test inner except handler when request.execute() raises during pagination | STRING |
| HIGH | …s/googleworkspace/services/gmail/gmail_service_test.py | 0 | test inner except handler when request.execute() raises during pagination | STRING |
| HIGH | …leworkspace/services/calendar/calendar_service_test.py | 0 | test that ou-level and group-level policies are skipped, only customer-level used | STRING |
| HIGH | …ers/googleworkspace/services/chat/chat_service_test.py | 0 | test that ou-level and group-level policies are skipped, only customer-level used | STRING |
| HIGH | …googleworkspace/services/groups/groups_service_test.py | 0 | test that ou-level and group-level policies are skipped, only customer-level used | STRING |
| HIGH | …s/googleworkspace/services/drive/drive_service_test.py | 0 | test that ou-level and group-level policies are skipped, only customer-level used | STRING |
| HIGH | …s/googleworkspace/services/gmail/gmail_service_test.py | 0 | test that ou-level and group-level policies are skipped, only customer-level used | STRING |
| HIGH | …_warning/calendar_external_invitations_warning_test.py | 0 | test pass when no explicit policy is set (none) — google default is secure | STRING |
| HIGH | …dar/calendar_external_sharing_primary_calendar_test.py | 0 | test pass when no explicit policy is set (none) — google default is secure | STRING |
| HIGH | …ns/drive_warn_sharing_with_allowlisted_domains_test.py | 0 | test pass when no explicit policy is set (none) — google default is secure | STRING |
| HIGH | …drive_shared_drive_disable_download_print_copy_test.py | 0 | test pass when no explicit policy is set (none) — google default is secure | STRING |
| HIGH | …on_allowed/drive_shared_drive_creation_allowed_test.py | 0 | test pass when no explicit policy is set (none) — google default is secure | STRING |
| HIGH | …g_warn_users/drive_external_sharing_warn_users_test.py | 0 | test pass when no explicit policy is set (none) — google default is secure | STRING |
| HIGH | …_warning/calendar_external_invitations_warning_test.py | 0 | test no findings returned when the api fetch failed | STRING |
| HIGH | …dar/calendar_external_sharing_primary_calendar_test.py | 0 | test no findings returned when the api fetch failed | STRING |
| HIGH | …r/calendar_external_sharing_secondary_calendar_test.py | 0 | test no findings returned when the api fetch failed | STRING |
| HIGH | …tion_limited/security_session_duration_limited_test.py | 0 | test no findings returned when the api fetch failed | STRING |
| HIGH | …igured/security_advanced_protection_configured_test.py | 0 | test no findings returned when the api fetch failed | STRING |
| HIGH | …cess_restricted/security_app_access_restricted_test.py | 0 | test no findings returned when the api fetch failed | STRING |
| HIGH | …_policy_strong/security_password_policy_strong_test.py | 0 | test no findings returned when the api fetch failed | STRING |
| HIGH | …configured/security_dlp_drive_rules_configured_test.py | 0 | test no findings returned when the api fetch failed | STRING |
| HIGH | …ps_disabled/security_less_secure_apps_disabled_test.py | 0 | test no findings returned when the api fetch failed | STRING |
| HIGH | …ecovery_enabled/security_user_recovery_enabled_test.py | 0 | test no findings returned when the api fetch failed | STRING |
| HIGH | …al_apps_trusted/security_internal_apps_trusted_test.py | 0 | test no findings returned when the api fetch failed | STRING |
| HIGH | …onfigured/security_login_challenges_configured_test.py | 0 | test no findings returned when the api fetch failed | STRING |
| HIGH | …isabled/security_super_admin_recovery_disabled_test.py | 0 | test no findings returned when the api fetch failed | STRING |
| HIGH | …_restricted/marketplace_apps_access_restricted_test.py | 0 | test no findings returned when the api fetch failed | STRING |
| HIGH | …ed/additionalservices_external_groups_disabled_test.py | 0 | test no findings returned when the api fetch failed | STRING |
| HIGH | …creation_restricted/groups_creation_restricted_test.py | 0 | test no findings returned when the api fetch failed | STRING |
| HIGH | …estricted/groups_view_conversations_restricted_test.py | 0 | test no findings returned when the api fetch failed | STRING |
| HIGH | …s_restricted/groups_external_access_restricted_test.py | 0 | test no findings returned when the api fetch failed | STRING |
| HIGH | …/sites_service_disabled/sites_service_disabled_test.py | 0 | test no findings returned when the api fetch failed | STRING |
| HIGH | …_access/drive_shared_drive_members_only_access_test.py | 0 | test no findings returned when the api fetch failed | STRING |
| 426 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | util/update_oci_regions.py | 63 | except Exception as e: | CODE |
| LOW | util/update_oci_regions.py | 80 | except Exception as e: | CODE |
| LOW | util/update_oci_regions.py | 120 | except Exception as e: | CODE |
| LOW | util/update_oci_regions.py | 141 | except Exception as e: | CODE |
| LOW | util/update_oci_regions.py | 174 | except Exception as e: | CODE |
| LOW | util/update_oci_regions.py | 245 | except Exception as e: | CODE |
| LOW | util/compliance/ccc/from_yaml_to_json.py | 17 | except Exception as e: | CODE |
| MEDIUM | util/compliance/ccc/from_yaml_to_json.py | 18 | print(f"Error loading YAML file: {e}") | CODE |
| LOW | util/compliance/ccc/from_yaml_to_json.py | 120 | except Exception as e: | CODE |
| MEDIUM | util/compliance/ccc/from_yaml_to_json.py | 121 | print(f"Error saving JSON file: {e}") | CODE |
| MEDIUM | util/compliance/ccc/from_yaml_to_json.py | 135 | print(f"Error: File {input_file} does not exist.") | CODE |
| MEDIUM | util/compliance/ccc/from_yaml_to_json.py | 154 | print("Error saving JSON file.") | CODE |
| LOW⚡ | util/compliance/compliance_mapper/compliance_mapper.py | 818 | except Exception as e: | CODE |
| LOW | util/compliance/compliance_mapper/compliance_mapper.py | 132 | except Exception as e: | CODE |
| LOW | util/compliance/compliance_mapper/compliance_mapper.py | 291 | except Exception as e: | CODE |
| LOW | util/compliance/compliance_mapper/compliance_mapper.py | 329 | except Exception as e: | CODE |
| LOW | util/compliance/compliance_mapper/compliance_mapper.py | 348 | except Exception as e: | CODE |
| LOW | util/compliance/compliance_mapper/compliance_mapper.py | 361 | except Exception as e: | CODE |
| LOW | util/compliance/compliance_mapper/compliance_mapper.py | 429 | except Exception as e: | CODE |
| LOW | util/compliance/compliance_mapper/compliance_mapper.py | 541 | except Exception as e: | CODE |
| LOW | util/compliance/compliance_mapper/compliance_mapper.py | 699 | except Exception as e: | CODE |
| LOW | util/compliance/compliance_mapper/compliance_mapper.py | 891 | except Exception as e: | CODE |
| MEDIUM | util/prowler_check_kreator/prowler_check_kreator.py | 300 | print(f"Error: {e}") | CODE |
| LOW | util/prowler_check_kreator/prowler_check_kreator.py | 302 | except Exception as e: | CODE |
| LOW | util/prowler_check_kreator/lib/llms/gemini.py | 57 | except Exception as e: | CODE |
| LOW | util/prowler_check_kreator/lib/llms/gemini.py | 73 | except Exception as e: | CODE |
| LOW | util/prowler-bulk-provisioning/aws_org_generator.py | 93 | except Exception as e: | CODE |
| MEDIUM | util/prowler-bulk-provisioning/nuke_providers.py | 113 | print(f"Error fetching providers (page {page}): {resp.status_code}") | CODE |
| LOW⚡ | util/prowler-bulk-provisioning/nuke_providers.py | 132 | except Exception as e: | CODE |
| MEDIUM⚡ | util/prowler-bulk-provisioning/nuke_providers.py | 133 | print(f"Error fetching providers: {e}") | CODE |
| LOW | util/prowler-bulk-provisioning/nuke_providers.py | 202 | except Exception as e: | CODE |
| LOW | util/prowler-bulk-provisioning/nuke_providers.py | 410 | except Exception as e: | CODE |
| LOW | …prowler-bulk-provisioning/prowler_bulk_provisioning.py | 93 | except Exception: | CODE |
| LOW | …prowler-bulk-provisioning/prowler_bulk_provisioning.py | 123 | except Exception: | CODE |
| LOW | …prowler-bulk-provisioning/prowler_bulk_provisioning.py | 537 | except Exception as e: | CODE |
| LOW | …prowler-bulk-provisioning/prowler_bulk_provisioning.py | 551 | except Exception: | CODE |
| LOW | …prowler-bulk-provisioning/prowler_bulk_provisioning.py | 686 | except Exception as e: | CODE |
| LOW | …prowler-bulk-provisioning/prowler_bulk_provisioning.py | 792 | except Exception as e: | CODE |
| LOW | tests/lib/check/check_test.py | 1114 | except Exception as e: | CODE |
| LOW | prowler/__main__.py | 230 | except Exception: | CODE |
| LOW | prowler/__main__.py | 629 | except Exception: | CODE |
| LOW | prowler/config/config.py | 112 | except Exception as error: | CODE |
| LOW | prowler/config/config.py | 278 | except Exception: | CODE |
| LOW | prowler/config/config.py | 341 | except Exception as error: | CODE |
| LOW | prowler/config/config.py | 379 | except Exception as error: | CODE |
| MEDIUM | prowler/config/config.py | 263 | def check_current_version(): | CODE |
| LOW | prowler/providers/openstack/openstack_provider.py | 446 | except Exception as error: | CODE |
| LOW | prowler/providers/openstack/openstack_provider.py | 492 | except Exception as error: | CODE |
| LOW | prowler/providers/openstack/openstack_provider.py | 526 | except Exception as error: | CODE |
| LOW | prowler/providers/openstack/openstack_provider.py | 651 | except Exception as error: | CODE |
| LOW | …nstack/services/objectstorage/objectstorage_service.py | 32 | except Exception as head_error: | CODE |
| LOW | …nstack/services/objectstorage/objectstorage_service.py | 68 | except Exception as error: | CODE |
| LOW | …penstack/services/blockstorage/blockstorage_service.py | 59 | except Exception as error: | CODE |
| LOW | …penstack/services/blockstorage/blockstorage_service.py | 88 | except Exception as error: | CODE |
| LOW | …penstack/services/blockstorage/blockstorage_service.py | 118 | except Exception as error: | CODE |
| LOW | …rs/openstack/services/networking/networking_service.py | 96 | except Exception as error: | CODE |
| LOW | …rs/openstack/services/networking/networking_service.py | 130 | except Exception as error: | CODE |
| LOW | …rs/openstack/services/networking/networking_service.py | 161 | except Exception as error: | CODE |
| LOW | …rs/openstack/services/networking/networking_service.py | 195 | except Exception as error: | CODE |
| LOW | …er/providers/openstack/services/image/image_service.py | 84 | except Exception as error: | CODE |
| 1690 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | ui/types/organizations.ts | 1 | // ─── Const Enums ────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | ui/types/organizations.ts | 140 | // ─── Candidate Registration (shared wire shape) ─────────────────────────────── | COMMENT |
| MEDIUM | ui/types/organizations.ts | 152 | // ─── AWS Discovery Result (wire) ─────────────────────────────────────────────── | COMMENT |
| MEDIUM | ui/types/organizations.ts | 186 | // ─── GCP Discovery Result (wire) ─────────────────────────────────────────────── | COMMENT |
| MEDIUM | ui/types/organizations.ts | 222 | // ─── Azure Discovery Result (wire) ───────────────────────────────────────────── | COMMENT |
| MEDIUM | ui/types/organizations.ts | 269 | // ─── Normalized Hierarchy Model (store currency) ─────────────────────────────── | COMMENT |
| MEDIUM | ui/types/organizations.ts | 313 | // ─── Secret + Apply Payloads (per-type) ──────────────────────────────────────── | COMMENT |
| MEDIUM | ui/types/organizations.ts | 419 | // ─── JSON:API Resource Interfaces ───────────────────────────────────────────── | COMMENT |
| MEDIUM | ui/types/organizations.ts | 573 | // ─── Connection Test Status ─────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | ui/components/filters/apply-filters-button.test.tsx | 47 | // ── Future E2E coverage ──────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | ui/components/filters/apply-filters-button.test.tsx | 53 | // ────────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | ui/components/filters/apply-filters-button.test.tsx | 56 | // ── No changes ─────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | ui/components/filters/apply-filters-button.test.tsx | 114 | // ── Has changes ────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | ui/components/filters/apply-filters-button.test.tsx | 187 | // ── onApply interaction ────────────────────────────────────────────────── | COMMENT |
| MEDIUM | ui/components/filters/apply-filters-button.test.tsx | 237 | // ── onDiscard interaction ──────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | ui/components/filters/filter-summary-strip.test.tsx | 45 | // ── Future E2E coverage ──────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | ui/components/filters/filter-summary-strip.test.tsx | 50 | // ────────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | ui/components/filters/filter-summary-strip.test.tsx | 59 | // ── Empty state ────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | ui/components/filters/filter-summary-strip.test.tsx | 76 | // ── Chip rendering ─────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | ui/components/filters/filter-summary-strip.test.tsx | 151 | // ── onRemove interaction ───────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | …s/shadcn/table/data-table-filter-custom-batch.test.tsx | 7 | // ── next/navigation mock ──────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | …s/shadcn/table/data-table-filter-custom-batch.test.tsx | 17 | // ── useUrlFilters mock — tracks whether updateFilter is called ─────────────── | COMMENT |
| MEDIUM⚡ | …s/shadcn/table/data-table-filter-custom-batch.test.tsx | 22 | // ── context (optional dependency used by useUrlFilters) ──────────────────── | COMMENT |
| MEDIUM | …s/shadcn/table/data-table-filter-custom-batch.test.tsx | 145 | // ── ClearFiltersButton stub ───────────────────────────────────────────────── | COMMENT |
| MEDIUM | …s/shadcn/table/data-table-filter-custom-batch.test.tsx | 150 | // ── Other component stubs ─────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …s/shadcn/table/data-table-filter-custom-batch.test.tsx | 167 | // ── Future E2E coverage ──────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …s/shadcn/table/data-table-filter-custom-batch.test.tsx | 173 | // ────────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …s/shadcn/table/data-table-filter-custom-batch.test.tsx | 200 | // ── Default / instant mode ─────────────────────────────────────────────── | COMMENT |
| MEDIUM | …s/shadcn/table/data-table-filter-custom-batch.test.tsx | 251 | // ── Batch mode ─────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …s/shadcn/table/data-table-filter-custom-batch.test.tsx | 350 | // ── hideClearButton ────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …s/shadcn/table/data-table-filter-custom-batch.test.tsx | 397 | // ── Lazily loaded options ──────────────────────────────────────────────── | COMMENT |
| MEDIUM | ui/hooks/use-filter-batch.test.ts | 31 | // ── Initial state ────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | ui/hooks/use-filter-batch.test.ts | 122 | // ── Excluded keys ────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | ui/hooks/use-filter-batch.test.ts | 147 | // ── setPending ───────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | ui/hooks/use-filter-batch.test.ts | 227 | // ── getFilterValue ───────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | ui/hooks/use-filter-batch.test.ts | 293 | // ── hasChanges & changeCount ─────────────────────────────────────────────── | COMMENT |
| MEDIUM | ui/hooks/use-filter-batch.test.ts | 366 | // ── applyAll ─────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | ui/hooks/use-filter-batch.test.ts | 437 | // ── discardAll ───────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | ui/hooks/use-filter-batch.test.ts | 466 | // ── URL sync (back/forward) ──────────────────────────────────────────────── | COMMENT |
| MEDIUM | ui/hooks/use-filter-batch.test.ts | 498 | // ── removePending ────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | ui/hooks/use-filter-batch.test.ts | 526 | // ── clearAndApply ────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | …pqc_tls_enabled/elbv2_listener_pqc_tls_enabled_test.py | 147 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM⚡ | …pqc_tls_enabled/elbv2_listener_pqc_tls_enabled_test.py | 149 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM⚡ | …pqc_tls_enabled/elbv2_listener_pqc_tls_enabled_test.py | 274 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM⚡ | …pqc_tls_enabled/elbv2_listener_pqc_tls_enabled_test.py | 276 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM⚡ | …pqc_tls_enabled/elbv2_listener_pqc_tls_enabled_test.py | 452 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM⚡ | …pqc_tls_enabled/elbv2_listener_pqc_tls_enabled_test.py | 454 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM | …pqc_tls_enabled/elbv2_listener_pqc_tls_enabled_test.py | 175 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM | …pqc_tls_enabled/elbv2_listener_pqc_tls_enabled_test.py | 177 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM⚡ | …ts/providers/external/test_dynamic_provider_loading.py | 232 | # =========================================================================== | COMMENT |
| MEDIUM⚡ | …ts/providers/external/test_dynamic_provider_loading.py | 234 | # =========================================================================== | COMMENT |
| MEDIUM⚡ | …ts/providers/external/test_dynamic_provider_loading.py | 905 | # =========================================================================== | COMMENT |
| MEDIUM⚡ | …ts/providers/external/test_dynamic_provider_loading.py | 907 | # =========================================================================== | COMMENT |
| MEDIUM⚡ | …ts/providers/external/test_dynamic_provider_loading.py | 1097 | # =========================================================================== | COMMENT |
| MEDIUM⚡ | …ts/providers/external/test_dynamic_provider_loading.py | 1099 | # =========================================================================== | COMMENT |
| MEDIUM⚡ | …ts/providers/external/test_dynamic_provider_loading.py | 1328 | # =========================================================================== | COMMENT |
| MEDIUM⚡ | …ts/providers/external/test_dynamic_provider_loading.py | 1330 | # =========================================================================== | COMMENT |
| MEDIUM⚡ | …ts/providers/external/test_dynamic_provider_loading.py | 1487 | # =========================================================================== | COMMENT |
| MEDIUM⚡ | …ts/providers/external/test_dynamic_provider_loading.py | 1489 | # =========================================================================== | COMMENT |
| MEDIUM⚡ | …ts/providers/external/test_dynamic_provider_loading.py | 1554 | # =========================================================================== | COMMENT |
| 413 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | util/update_aws_services_regions.py | 42 | CODE | |
| LOW | util/compliance/ccc/from_yaml_to_json.py | 22 | CODE | |
| LOW | util/compliance/compliance_mapper/compliance_mapper.py | 136 | CODE | |
| LOW | util/compliance/compliance_mapper/compliance_mapper.py | 236 | CODE | |
| LOW | util/compliance/compliance_mapper/compliance_mapper.py | 298 | CODE | |
| LOW | util/compliance/compliance_mapper/compliance_mapper.py | 367 | CODE | |
| LOW | util/compliance/compliance_mapper/compliance_mapper.py | 434 | CODE | |
| LOW | util/compliance/compliance_mapper/compliance_mapper.py | 502 | CODE | |
| LOW | util/compliance/compliance_mapper/compliance_mapper.py | 767 | CODE | |
| LOW | util/prowler-bulk-provisioning/aws_org_generator.py | 36 | CODE | |
| LOW | util/prowler-bulk-provisioning/nuke_providers.py | 172 | CODE | |
| LOW | util/prowler-bulk-provisioning/nuke_providers.py | 254 | CODE | |
| LOW | …prowler-bulk-provisioning/prowler_bulk_provisioning.py | 21 | CODE | |
| LOW | …prowler-bulk-provisioning/prowler_bulk_provisioning.py | 87 | CODE | |
| LOW | …prowler-bulk-provisioning/prowler_bulk_provisioning.py | 164 | CODE | |
| LOW | …prowler-bulk-provisioning/prowler_bulk_provisioning.py | 559 | CODE | |
| LOW | …ices/organizations/atlas_organizations_service_test.py | 118 | CODE | |
| LOW | …ongodbatlas/services/projects/projects_service_test.py | 89 | CODE | |
| LOW | …ongodbatlas/services/projects/projects_service_test.py | 177 | CODE | |
| LOW | …ongodbatlas/services/projects/projects_service_test.py | 211 | CODE | |
| LOW | …oraclecloud/services/identity/identity_service_test.py | 174 | CODE | |
| LOW | …vm/vm_scaleset_not_empty/vm_scaleset_not_empty_test.py | 128 | CODE | |
| LOW | …vm/vm_jit_access_enabled/vm_jit_access_enabled_test.py | 234 | CODE | |
| LOW | …ncer/vm_scaleset_associated_with_load_balancer_test.py | 134 | CODE | |
| LOW | …iders/aws/services/codebuild/codebuild_service_test.py | 42 | CODE | |
| LOW | …secretsmanager_has_restrictive_resource_policy_test.py | 531 | CODE | |
| LOW | …secretsmanager_has_restrictive_resource_policy_test.py | 791 | CODE | |
| LOW | tests/providers/aws/services/glue/glue_service_test.py | 17 | CODE | |
| LOW | …cess_block/s3_access_point_public_access_block_test.py | 338 | CODE | |
| LOW | …bility/s3_bucket_shadow_resource_vulnerability_test.py | 192 | CODE | |
| LOW | …delegated_admin_and_org_aggregator_all_regions_test.py | 272 | CODE | |
| LOW | …delegated_admin_and_org_aggregator_all_regions_test.py | 313 | CODE | |
| LOW | …delegated_admin_and_org_aggregator_all_regions_test.py | 353 | CODE | |
| LOW | …delegated_admin_and_org_aggregator_all_regions_test.py | 398 | CODE | |
| LOW | …afv2_webacl_with_rules/wafv2_webacl_with_rules_test.py | 18 | CODE | |
| LOW | …on/ecs_service_fargate_latest_platform_version_test.py | 16 | CODE | |
| LOW | …ts/bedrock_agent_role_not_shared_across_agents_test.py | 51 | CODE | |
| LOW | …ts/bedrock_agent_role_not_shared_across_agents_test.py | 59 | CODE | |
| LOW | …ts/bedrock_agent_role_not_shared_across_agents_test.py | 387 | CODE | |
| LOW | …multi_region_enabled_logging_management_events_test.py | 309 | CODE | |
| LOW | …enabled/cloudtrail_log_file_validation_enabled_test.py | 88 | CODE | |
| LOW | …_enabled/cloudtrail_cloudwatch_logging_enabled_test.py | 43 | CODE | |
| LOW | …_enabled/cloudtrail_cloudwatch_logging_enabled_test.py | 130 | CODE | |
| LOW | …_enabled/cloudtrail_cloudwatch_logging_enabled_test.py | 217 | CODE | |
| LOW | …region_enabled/cloudtrail_multi_region_enabled_test.py | 16 | CODE | |
| LOW | …region_enabled/cloudtrail_multi_region_enabled_test.py | 68 | CODE | |
| LOW | …region_enabled/cloudtrail_multi_region_enabled_test.py | 144 | CODE | |
| LOW | …region_enabled/cloudtrail_multi_region_enabled_test.py | 221 | CODE | |
| LOW | …iders/aws/services/awslambda/awslambda_service_test.py | 457 | CODE | |
| LOW | …/iam_inline_policy_allows_privilege_escalation_test.py | 897 | CODE | |
| LOW | …iam_inline_policy_no_administrative_privileges_test.py | 163 | CODE | |
| LOW | …iam_inline_policy_no_administrative_privileges_test.py | 366 | CODE | |
| LOW | …iam_inline_policy_no_administrative_privileges_test.py | 572 | CODE | |
| LOW | …alation/iam_policy_allows_privilege_escalation_test.py | 855 | CODE | |
| LOW | …alation/iam_policy_allows_privilege_escalation_test.py | 1592 | CODE | |
| LOW | …firewall_in_all_vpc/networkfirewall_in_all_vpc_test.py | 281 | CODE | |
| LOW | …_by_default/vpc_subnet_no_public_ip_by_default_test.py | 11 | CODE | |
| LOW | …_by_default/vpc_subnet_no_public_ip_by_default_test.py | 63 | CODE | |
| LOW | …pc_subnet_different_az/vpc_subnet_different_az_test.py | 11 | CODE | |
| LOW | …pc_subnet_different_az/vpc_subnet_different_az_test.py | 76 | CODE | |
| 1277 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | …ate_compliance_json_from_csv_for_cis40_microsoft365.py | 12 | # Create the output JSON object | COMMENT |
| MEDIUM | util/compliance/compliance_mapper/compliance_mapper.py | 772 | # Create a copy of original compliance data | COMMENT |
| MEDIUM | util/prowler_check_kreator/prowler_check_kreator.py | 140 | # Create the check | COMMENT |
| MEDIUM | util/prowler_check_kreator/lib/templates.py | 100 | # Create a compliant resource | COMMENT |
| MEDIUM⚡ | util/prowler_check_kreator/lib/llms/gemini.py | 117 | "from json import dumps\nfrom unittest import mock\n\nfrom boto3 import client\nfrom moto import mock_aws\n\ | CODE |
| MEDIUM | …godbatlas/lib/arguments/mongodbatlas_arguments_test.py | 26 | # Create a mock object that has the necessary attributes | COMMENT |
| MEDIUM | …godbatlas/lib/arguments/mongodbatlas_arguments_test.py | 176 | # Create a mock object that mimics the structure used by the init_parser function | COMMENT |
| MEDIUM | …ings_exists/monitor_diagnostic_settings_exists_test.py | 106 | # Create a valid BlobProperties instance | COMMENT |
| MEDIUM | …sts/providers/azure/services/apim/apim_service_test.py | 231 | # Create a mock table with the expected structure for LogsQueryLogEntry | COMMENT |
| MEDIUM | …_llm_jacking/apim_threat_detection_llm_jacking_test.py | 12 | # Create a mock LogsQueryLogEntry class for testing | COMMENT |
| MEDIUM | tests/providers/gcp/gcp_provider_test.py | 964 | # Create a mock provider with required attributes | COMMENT |
| MEDIUM | …ging/logging_sink_created/logging_sink_created_test.py | 266 | # Create a MagicMock sink object with name=None | COMMENT |
| MEDIUM | …ging/logging_sink_created/logging_sink_created_test.py | 314 | # Create a MagicMock sink object without name attribute | COMMENT |
| MEDIUM | …nd_alert_for_project_ownership_changes_enabled_test.py | 286 | # Create a MagicMock metric object with name=None | COMMENT |
| MEDIUM | …nd_alert_for_project_ownership_changes_enabled_test.py | 333 | # Create a MagicMock metric object without name attribute | COMMENT |
| MEDIUM | …nd_alert_for_bucket_permission_changes_enabled_test.py | 286 | # Create a MagicMock metric object with name=None | COMMENT |
| MEDIUM | …nd_alert_for_bucket_permission_changes_enabled_test.py | 336 | # Create a MagicMock metric object without name attribute | COMMENT |
| MEDIUM⚡ | tests/providers/image/lib/registry/test_oci_adapter.py | 706 | # Create a base64 string that decodes to invalid UTF-8 | COMMENT |
| MEDIUM⚡ | tests/providers/iac/iac_provider_test.py | 843 | # Create a mock .git/HEAD file with main branch | COMMENT |
| MEDIUM⚡ | tests/providers/iac/iac_provider_test.py | 857 | # Create a mock .git/HEAD file with develop branch | COMMENT |
| MEDIUM | …roviders/github/lib/arguments/github_arguments_test.py | 28 | # Create a mock object that has the necessary attributes | COMMENT |
| MEDIUM | …roviders/github/lib/arguments/github_arguments_test.py | 156 | # Create a mock object that mimics the structure used by the init_parser function | COMMENT |
| MEDIUM⚡ | tests/providers/m365/lib/jwt/jwt_decoder_test.py | 11 | # Create a mock JWT token | COMMENT |
| MEDIUM⚡ | tests/providers/m365/lib/jwt/jwt_decoder_test.py | 124 | # Create a valid JWT | COMMENT |
| MEDIUM | …ts/providers/m365/lib/arguments/m365_arguments_test.py | 30 | # Create a mock object that has the necessary attributes | COMMENT |
| MEDIUM | …ts/providers/m365/lib/arguments/m365_arguments_test.py | 305 | # Create a mock object that mimics the structure used by the init_parser function | COMMENT |
| MEDIUM⚡ | tests/providers/aws/aws_provider_test.py | 308 | # Create a mock IAM user | COMMENT |
| MEDIUM⚡ | tests/providers/aws/aws_provider_test.py | 312 | # Create a mock IAM access keys | COMMENT |
| MEDIUM⚡ | tests/providers/aws/aws_provider_test.py | 1477 | # Create a mock IAM user | COMMENT |
| MEDIUM⚡ | tests/providers/aws/aws_provider_test.py | 1480 | # Create a mock IAM access keys | COMMENT |
| MEDIUM⚡ | tests/providers/aws/aws_provider_test.py | 1515 | # Create a mock IAM user | COMMENT |
| MEDIUM⚡ | tests/providers/aws/aws_provider_test.py | 1518 | # Create a mock IAM access keys | COMMENT |
| MEDIUM⚡ | tests/providers/aws/aws_provider_test.py | 1557 | # Create a mock IAM user | COMMENT |
| MEDIUM⚡ | tests/providers/aws/aws_provider_test.py | 1560 | # Create a mock IAM access keys | COMMENT |
| MEDIUM⚡ | tests/providers/aws/aws_provider_test.py | 2171 | # Create a mock IAM user | COMMENT |
| MEDIUM⚡ | tests/providers/aws/aws_provider_test.py | 2174 | # Create a mock IAM access keys | COMMENT |
| MEDIUM⚡ | tests/providers/aws/aws_provider_test.py | 2223 | # Create a mock IAM user | COMMENT |
| MEDIUM⚡ | tests/providers/aws/aws_provider_test.py | 2226 | # Create a mock IAM access keys | COMMENT |
| MEDIUM⚡ | tests/providers/aws/aws_provider_test.py | 2314 | # Create a mock IAM user | COMMENT |
| MEDIUM⚡ | tests/providers/aws/aws_provider_test.py | 2318 | # Create a mock IAM access keys | COMMENT |
| MEDIUM⚡ | tests/providers/aws/lib/s3/s3_test.py | 329 | # Create a mock IAM user | COMMENT |
| MEDIUM⚡ | tests/providers/aws/lib/s3/s3_test.py | 332 | # Create a mock IAM access keys | COMMENT |
| MEDIUM | tests/providers/aws/lib/s3/s3_test.py | 358 | # Create a mock IAM user | COMMENT |
| MEDIUM | tests/providers/aws/lib/s3/s3_test.py | 361 | # Create a mock IAM access keys | COMMENT |
| MEDIUM | tests/providers/aws/lib/mutelist/aws_mutelist_test.py | 330 | # Create an invalid mutelist by adding an invalid key | COMMENT |
| MEDIUM | …bility/s3_bucket_shadow_resource_vulnerability_test.py | 207 | # Define the shadow resources we want to simulate | COMMENT |
| MEDIUM | …_logging_enabled/datasync_task_logging_enabled_test.py | 16 | # Create a DataSync client with no tasks | COMMENT |
| MEDIUM⚡ | …_logging_enabled/datasync_task_logging_enabled_test.py | 47 | # Create a DataSync task without logging enabled | COMMENT |
| MEDIUM⚡ | …_logging_enabled/datasync_task_logging_enabled_test.py | 57 | # Create a DataSync client with the task | COMMENT |
| MEDIUM | …_logging_enabled/datasync_task_logging_enabled_test.py | 97 | # Create a DataSync task with logging enabled | COMMENT |
| MEDIUM | …_logging_enabled/datasync_task_logging_enabled_test.py | 107 | # Create a DataSync client with the task | COMMENT |
| MEDIUM | …lb/elb_is_in_multiple_az/elb_is_in_multiple_az_test.py | 42 | # Create a compliant resource | COMMENT |
| MEDIUM | …lb/elb_is_in_multiple_az/elb_is_in_multiple_az_test.py | 92 | # Create a compliant resource | COMMENT |
| MEDIUM | …tificate/elb_ssl_listeners_use_acm_certificate_test.py | 445 | # Create a certificate ARN that will NOT be in ACM (simulating IAM certificate or any non-ACM certificate) | COMMENT |
| MEDIUM | …aining_enabled/elb_connection_draining_enabled_test.py | 41 | # Create a compliant resource | COMMENT |
| MEDIUM | …aining_enabled/elb_connection_draining_enabled_test.py | 100 | # Create a compliant resource | COMMENT |
| MEDIUM | …_enabled/elb_cross_zone_load_balancing_enabled_test.py | 40 | # Create a compliant resource | COMMENT |
| MEDIUM | …_enabled/elb_cross_zone_load_balancing_enabled_test.py | 90 | # Create a compliant resource | COMMENT |
| MEDIUM | …_enabled/elb_cross_zone_load_balancing_enabled_test.py | 145 | # Create a non-compliant resource | COMMENT |
| MEDIUM⚡ | …y_attached/bedrock_full_access_policy_attached_test.py | 228 | # Create a compliant role (no AmazonBedrockFullAccess) | COMMENT |
| 197 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | util/update_oci_regions.py | 85 | Fetch all OCI commercial regions using the Identity service API. Args: identity_client (oci.identity.I | STRING |
| HIGH | util/prowler_check_kreator/lib/templates.py | 2 | Load the template for the check file. Args: provider (str): The provider of the service. service (s | STRING |
| HIGH | util/prowler_check_kreator/lib/templates.py | 47 | Load the template for the test file. Args: provider: The provider of the service (e.g., "aws"). ser | STRING |
| HIGH | tests/providers/aws/utils.py | 253 | Validate a hand-written mocked response against the real AWS API model. Responses returned from a `botocore.client. | STRING |
| HIGH | prowler/providers/openstack/openstack_provider.py | 244 | Setup session from clouds.yaml content provided as a string. Parses the YAML content directly instead of writin | STRING |
| HIGH | prowler/providers/openstack/openstack_provider.py | 325 | Setup session from clouds.yaml configuration file. Args: clouds_yaml_file: Path to clouds.yaml file | STRING |
| HIGH | prowler/providers/openstack/openstack_provider.py | 555 | Test connection to OpenStack without creating a full provider instance. This static method allows testing OpenS | STRING |
| HIGH | …/providers/googleworkspace/googleworkspace_provider.py | 187 | Sets up the Google Workspace session with Service Account and Domain-Wide Delegation. Args: | STRING |
| HIGH | …/providers/googleworkspace/googleworkspace_provider.py | 373 | Retrieves Google Workspace identity information using the Admin SDK. Args: session (Google | STRING |
| HIGH | …/providers/googleworkspace/googleworkspace_provider.py | 526 | Test connection to Google Workspace. Test the connection to Google Workspace using the provided credentials. | STRING |
| HIGH | prowler/providers/mongodbatlas/mongodbatlas_provider.py | 153 | Setup MongoDB Atlas session with authentication credentials Args: atlas_public_key: MongoD | STRING |
| HIGH | prowler/providers/mongodbatlas/mongodbatlas_provider.py | 202 | Setup MongoDB Atlas identity information Args: session: MongoDB Atlas session Ret | STRING |
| HIGH | prowler/providers/mongodbatlas/lib/service/service.py | 41 | Make HTTP request to MongoDB Atlas API with retry logic Args: method: HTTP method (GET, PO | STRING |
| HIGH | prowler/providers/e2enetworks/e2enetworks_provider.py | 137 | Create an authenticated E2E Networks API session. Args: api_key: E2E Networks API key. | STRING |
| HIGH | prowler/providers/e2enetworks/e2enetworks_provider.py | 196 | Test connectivity to the E2E Networks MyAccount API. Args: api_key: E2E Networks API key. Falls bac | STRING |
| HIGH | prowler/providers/oraclecloud/oraclecloud_provider.py | 292 | setup_session sets up an OCI session using the provided credentials. Args: - oci_config_fi | STRING |
| HIGH | prowler/providers/oraclecloud/oraclecloud_provider.py | 469 | set_identity sets the OCI provider identity information. Args: - session: The OCI session. | STRING |
| HIGH | prowler/providers/oraclecloud/oraclecloud_provider.py | 857 | Test the connection to OCI with the provided credentials. Args: oci_config_file (str): The | STRING |
| HIGH | …owler/providers/oraclecloud/lib/arguments/arguments.py | 67 | Validates that the input compartment OCID is valid. Args: ocid (str): The compartment OCID to validate | STRING |
| HIGH | prowler/providers/vercel/vercel_provider.py | 123 | Initialize Vercel API session. Credentials can be provided as arguments (for API use) or read from envi | STRING |
| HIGH | prowler/providers/vercel/vercel_provider.py | 175 | Fetch user and team metadata for Vercel. Args: session: The Vercel session. Returns: | STRING |
| HIGH | prowler/providers/vercel/lib/service/service.py | 46 | Make a rate-limit-aware GET request to the Vercel API. Args: path: API path (e.g., "/v9/projects"). | STRING |
| HIGH | prowler/providers/azure/azure_provider.py | 130 | Initializes the Azure provider. Args: az_cli_auth (bool): Flag indicating whether to use A | STRING |
| HIGH | prowler/providers/azure/azure_provider.py | 494 | Returns the Azure credentials object. Set up the Azure session with the specified authentication method. | STRING |
| HIGH | prowler/providers/azure/azure_provider.py | 637 | Test connection to Azure subscription. Test the connection to an Azure subscription using the provided credenti | STRING |
| HIGH | prowler/providers/azure/azure_provider.py | 1094 | Retrieves a set of regions available across all subscriptions or specific subscriptions if provided. A | STRING |
| HIGH | prowler/providers/azure/azure_provider.py | 1191 | Validates the static credentials for the Azure provider. Args: tenant_id (str): The Azure | STRING |
| HIGH | prowler/providers/azure/azure_provider.py | 1278 | Verifies the Azure client credentials using the specified tenant ID, client ID, and client secret. Arg | STRING |
| HIGH | …viders/azure/services/postgresql/postgresql_service.py | 186 | Get the ``connection_throttle.enable`` setting for a flexible server. The ``connection_throttle.enable`` server | STRING |
| HIGH | prowler/providers/linode/linode_provider.py | 136 | Initialize Linode SDK client. Credentials can be provided as argument or read from environment variable: | STRING |
| HIGH | prowler/providers/linode/linode_provider.py | 173 | Validate the requested regions against the live Linode regions list. The ``/v4/regions`` endpoint is public, so | STRING |
| HIGH | prowler/providers/linode/linode_provider.py | 216 | Fetch user and account metadata for Linode. The authenticated user's profile is retrieved first to validate the | STRING |
| HIGH | prowler/providers/cloudflare/cloudflare_provider.py | 171 | Initialize Cloudflare SDK client. Credentials can be provided as arguments or read from environment variables: | STRING |
| HIGH | prowler/providers/cloudflare/cloudflare_provider.py | 249 | Fetch user and account metadata for Cloudflare. Args: session: The Cloudflare session. Ret | STRING |
| HIGH | prowler/providers/cloudflare/cloudflare_provider.py | 538 | Test connection to Cloudflare. Test the connection to Cloudflare using the provided credentials. Args: | STRING |
| HIGH | prowler/providers/gcp/gcp_provider.py | 94 | GCP Provider constructor Args: retries_max_attempts: int -> The maximum number of retries | STRING |
| HIGH | prowler/providers/gcp/gcp_provider.py | 350 | Setup the GCP session with the provided credentials file or service account to impersonate Args: | STRING |
| HIGH | prowler/providers/gcp/gcp_provider.py | 463 | Test the connection to GCP with the provided credentials file or service account to impersonate. If the | STRING |
| HIGH | prowler/providers/gcp/gcp_provider.py | 898 | Validate the static arguments client_id, client_secret and refresh_token of ADC credentials Args: | STRING |
| HIGH | prowler/providers/gcp/gcp_provider.py | 927 | Validate the provider ID given the credentials, checking if the provider ID matches with the expected project_i | STRING |
| HIGH | prowler/providers/alibabacloud/alibabacloud_provider.py | 316 | Set up the Alibaba Cloud session. Args: role_arn: ARN of the RAM role to assume | STRING |
| HIGH | prowler/providers/alibabacloud/alibabacloud_provider.py | 492 | Validates the Alibaba Cloud credentials using STS GetCallerIdentity. Args: session: The Al | STRING |
| HIGH | prowler/providers/alibabacloud/alibabacloud_provider.py | 807 | Test the connection to Alibaba Cloud with the provided credentials. Args: access_key_id: A | STRING |
| HIGH | …ler/providers/alibabacloud/services/oss/oss_service.py | 139 | Call a bucket sub-resource API (GET /?<subresource>) and return its parsed body. The generated OSS SDK methods | STRING |
| HIGH | prowler/providers/common/provider.py | 810 | Resolve the provider class for a name (built-in or entry-point). Does not call ``sys.exit`` and does not initia | STRING |
| HIGH | prowler/providers/iac/iac_provider.py | 620 | Test connection to IaC repository. Test the connection to the IaC repository using the provided credentials. | STRING |
| HIGH | prowler/providers/github/github_provider.py | 531 | Validate that the provider ID (username or organization) is accessible with the given credentials. Arg | STRING |
| HIGH | prowler/providers/github/github_provider.py | 617 | Test connection to GitHub. Test the connection to GitHub using the provided credentials. Args: | STRING |
| HIGH | …s/github/services/organization/organization_service.py | 241 | Fetch the Actions workflow permissions settings of the organization. The API returns a response in the format: | STRING |
| HIGH | …iders/github/services/repository/repository_service.py | 902 | Retrieve the default GITHUB_TOKEN permissions granted to workflows in the repository. The API returns a respons | STRING |
| HIGH | prowler/providers/huaweicloud/models.py | 235 | Create a service client for the given service and region. Args: service: The service name | STRING |
| HIGH | prowler/providers/huaweicloud/huaweicloud_provider.py | 336 | Set up the Huawei Cloud session. Each argument falls back to its environment variable when not provide | STRING |
| HIGH | prowler/providers/huaweicloud/huaweicloud_provider.py | 435 | Assume a Huawei Cloud agency in the target account. Uses the base credentials to call CreateTemporaryA | STRING |
| HIGH | prowler/providers/huaweicloud/huaweicloud_provider.py | 559 | Validates the Huawei Cloud credentials using IAM API. Args: session: The Huawei Cloud sess | STRING |
| HIGH | prowler/providers/huaweicloud/huaweicloud_provider.py | 714 | get_regions_to_audit returns the list of regions to audit. Args: regions: List of Huawei C | STRING |
| HIGH | prowler/providers/m365/m365_provider.py | 136 | Initializes the M365 provider. Args: tenant_id (str): The M365 Active Directory tenant ID. | STRING |
| HIGH | prowler/providers/m365/m365_provider.py | 495 | Returns the M365 credentials object. Set up the M365 session with the specified authentication method. | STRING |
| HIGH | prowler/providers/m365/m365_provider.py | 690 | Test connection to M365 tenant and PowerShell modules. Test the connection to an M365 tenant and PowerShell mod | STRING |
| HIGH | prowler/providers/m365/m365_provider.py | 1088 | Validates the static credentials for the M365 provider. Args: tenant_id (str): The M365 Ac | STRING |
| HIGH | prowler/providers/m365/m365_provider.py | 1196 | Verifies the M365 client credentials using the specified tenant ID, client ID, and client secret. Args | STRING |
| 76 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | util/compliance/compliance_mapper/compliance_mapper.py | 401 | # Check if it's a model issue | COMMENT |
| LOW | util/prowler_check_kreator/prowler_check_kreator.py | 198 | # Check if exits check.py, check_metadata.json or check_test.py | COMMENT |
| LOW⚡ | util/prowler-bulk-provisioning/nuke_providers.py | 125 | # Check if there's a next page | COMMENT |
| LOW | util/prowler-bulk-provisioning/nuke_providers.py | 179 | # Check if it's a task response | COMMENT |
| LOW | util/prowler-bulk-provisioning/nuke_providers.py | 389 | # Check if it was an async deletion | COMMENT |
| LOW | …prowler-bulk-provisioning/prowler_bulk_provisioning.py | 58 | # Check if the key name suggests sensitive data | COMMENT |
| LOW | …hub/services/organization/organization_service_test.py | 459 | # Check if Access denied message was logged (could be in warning or error calls) | COMMENT |
| LOW | …/github/services/repository/repository_service_test.py | 435 | # Check if Access denied message was logged | COMMENT |
| LOW | …bility/s3_bucket_shadow_resource_vulnerability_test.py | 246 | # Check if we found all expected shadow resources | COMMENT |
| LOW | tests/providers/aws/services/ec2/ec2_service_test.py | 875 | # Check if ENI was added to security group | COMMENT |
| LOW⚡ | tests/lib/utils/utils_test.py | 478 | os.chmod(temp_file.name, 0o644) # Set permissions to 644 (-rw-r--r--) | CODE |
| LOW⚡ | tests/lib/utils/utils_test.py | 488 | os.chmod(temp_file.name, 0o644) # Set permissions to 644 (-rw-r--r--) | CODE |
| LOW⚡ | tests/lib/check/check_test.py | 918 | # Check if the checkID in the metadata.json of the checks is correct | COMMENT |
| LOW⚡ | tests/lib/check/check_test.py | 928 | # Check if the checkID in the metadata.json of the checks is correct | COMMENT |
| LOW⚡ | tests/lib/check/check_test.py | 940 | # Check if the checkID in the metadata.json of the checks is correct | COMMENT |
| LOW⚡ | tests/lib/check/check_test.py | 950 | # Check if the checkID in the metadata.json of the checks is correct | COMMENT |
| LOW | tests/lib/outputs/outputs_test.py | 551 | ) # Check if the list was sorted | STRING |
| LOW | tests/lib/outputs/outputs_test.py | 593 | ) # Check if the list was sorted | STRING |
| LOW | tests/lib/outputs/outputs_test.py | 635 | ) # Check if the list was sorted | STRING |
| LOW | tests/lib/outputs/outputs_test.py | 677 | ) # Check if the list was sorted | STRING |
| LOW | tests/lib/outputs/outputs_test.py | 721 | ) # Check if the list was sorted | STRING |
| LOW | tests/lib/outputs/outputs_test.py | 765 | ) # Check if the list was sorted | STRING |
| LOW | tests/lib/outputs/outputs_test.py | 809 | ) # Check if the list was sorted | STRING |
| LOW | tests/lib/outputs/outputs_test.py | 853 | ) # Check if the list was sorted | STRING |
| LOW | tests/lib/outputs/outputs_test.py | 895 | ) # Check if the list was sorted | STRING |
| LOW | tests/lib/outputs/outputs_test.py | 937 | ) # Check if the list was sorted | STRING |
| LOW | tests/lib/outputs/outputs_test.py | 979 | ) # Check if the list was sorted | STRING |
| LOW | tests/lib/outputs/outputs_test.py | 1021 | ) # Check if the list was sorted | STRING |
| LOW | tests/lib/outputs/outputs_test.py | 1063 | ) # Check if the list was sorted | STRING |
| LOW | tests/lib/outputs/outputs_test.py | 1105 | ) # Check if the list was sorted | STRING |
| LOW | tests/lib/outputs/outputs_test.py | 1147 | ) # Check if the list was sorted | STRING |
| LOW | tests/lib/outputs/outputs_test.py | 1189 | ) # Check if the list was sorted | STRING |
| LOW | prowler/__main__.py | 605 | # Check if there are any FAIL findings | COMMENT |
| LOW | prowler/__main__.py | 1439 | # Check if -D was input | COMMENT |
| LOW | prowler/config/config.yaml | 528 | # Set s3_bucket_object_public_enabled to True to opt in. | COMMENT |
| LOW | prowler/providers/openstack/models.py | 102 | # Check if custom output filename was input, if not, set the default | COMMENT |
| LOW | prowler/providers/openstack/lib/security_groups.py | 49 | # Check if any of the target ports fall within the rule's range | COMMENT |
| LOW | prowler/providers/openstack/lib/arguments/arguments.py | 96 | # Check if clouds.yaml options are used with explicit credential parameters | COMMENT |
| LOW | …rs/openstack/services/networking/networking_service.py | 76 | # Check if this is a default security group | COMMENT |
| LOW | …/networking_security_group_allows_rdp_from_internet.py | 22 | # Check if any rule allows RDP from 0.0.0.0/0 or ::/0 | COMMENT |
| LOW | …ing_security_group_allows_all_ingress_from_internet.py | 34 | # Check if from internet (0.0.0.0/0, ::/0, or None with no group) | COMMENT |
| LOW | …/networking_security_group_allows_ssh_from_internet.py | 22 | # Check if any rule allows SSH from 0.0.0.0/0 or ::/0 | COMMENT |
| LOW | …ublic_ip_exposed/compute_instance_public_ip_exposed.py | 38 | # Check if IP is public and not already captured in SDK attributes | COMMENT |
| LOW | prowler/providers/googleworkspace/models.py | 69 | # Check if custom output filename was input, if not, set the default | COMMENT |
| LOW | …/providers/googleworkspace/googleworkspace_provider.py | 205 | # Check if delegated_user is provided (required for Domain-Wide Delegation) | COMMENT |
| LOW | …/providers/googleworkspace/googleworkspace_provider.py | 342 | # Check if it's a permission/delegation error | COMMENT |
| LOW | …projects_auditing_enabled/projects_auditing_enabled.py | 34 | # Check if audit configuration is enabled | COMMENT |
| LOW | prowler/providers/oraclecloud/models.py | 81 | # Check if custom output filename was input, if not, set the default | COMMENT |
| LOW | prowler/providers/oraclecloud/oraclecloud_provider.py | 136 | # Check if the configuration is scanning exactly one explicit region. | COMMENT |
| LOW | prowler/providers/oraclecloud/oraclecloud_provider.py | 393 | # Check if config file exists | COMMENT |
| LOW | prowler/providers/oraclecloud/oraclecloud_provider.py | 403 | # Check if using security token authentication | COMMENT |
| LOW | prowler/providers/oraclecloud/oraclecloud_provider.py | 618 | # Check if auditing specific region or all | COMMENT |
| LOW | prowler/providers/oraclecloud/lib/mutelist/mutelist.py | 102 | # Check if mutelist has Accounts/Tenancies section | COMMENT |
| LOW | prowler/providers/oraclecloud/lib/mutelist/mutelist.py | 144 | # Check if any tag matches | COMMENT |
| LOW | …owler/providers/oraclecloud/lib/arguments/arguments.py | 106 | # Check if instance principal and config file/profile are used together | COMMENT |
| LOW | …cted/database_autonomous_database_access_restricted.py | 23 | # Check if database has no whitelisted IPs and no subnet (unrestricted public access) | COMMENT |
| LOW | …cted/database_autonomous_database_access_restricted.py | 27 | # Check if database has whitelisted IPs containing 0.0.0.0/0 | COMMENT |
| LOW | …ogging_enabled/objectstorage_bucket_logging_enabled.py | 25 | # Check if there is a write-level log configured for this bucket | COMMENT |
| LOW | …ssible/objectstorage_bucket_not_publicly_accessible.py | 30 | # Check if bucket has public access | COMMENT |
| LOW | …ders/oraclecloud/services/identity/identity_service.py | 111 | # Check if user can use API keys | COMMENT |
| 263 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| CRITICAL | tests/providers/azure/azure_provider_test.py | 7 | from azure.core.exceptions import HttpResponseError | CODE |
| CRITICAL | …s/azure/services/postgresql/postgresql_service_test.py | 4 | from azure.core.exceptions import HttpResponseError, ResourceNotFoundError | CODE |
| CRITICAL | tests/providers/m365/m365_provider_test.py | 1240 | from azure.core.exceptions import ClientAuthenticationError | CODE |
| CRITICAL | prowler/providers/azure/azure_provider.py | 12 | from azure.core.exceptions import ClientAuthenticationError, HttpResponseError | CODE |
| CRITICAL | …viders/azure/services/postgresql/postgresql_service.py | 4 | from azure.core.exceptions import ResourceNotFoundError | CODE |
| CRITICAL | …/providers/azure/services/keyvault/keyvault_service.py | 6 | from azure.core.exceptions import HttpResponseError | CODE |
| CRITICAL | …er/providers/azure/services/network/network_service.py | 5 | from azure.core.exceptions import ResourceNotFoundError | CODE |
| CRITICAL | …/providers/azure/services/defender/defender_service.py | 5 | from azure.core.exceptions import ClientAuthenticationError, ResourceNotFoundError | CODE |
| CRITICAL⚡ | …ler/providers/cloudflare/services/zone/zone_service.py | 149 | universal_ssl = self.client.ssl.universal.settings.get(zone_id=zone.id) | CODE |
| CRITICAL | prowler/providers/m365/m365_provider.py | 9 | from azure.core.exceptions import ClientAuthenticationError, HttpResponseError | CODE |
| CRITICAL⚡ | …/services/defenderidentity/defenderidentity_service.py | 78 | sensors_response = await self.client.security.identities.sensors.get() | CODE |
| CRITICAL | …/services/defenderidentity/defenderidentity_service.py | 137 | await self.client.security.identities.sensors.with_url( | CODE |
| CRITICAL⚡ | …/services/defenderidentity/defenderidentity_service.py | 166 | await self.client.security.identities.health_issues.get() | CODE |
| CRITICAL | …/services/defenderidentity/defenderidentity_service.py | 221 | await self.client.security.identities.health_issues.with_url( | CODE |
| CRITICAL | …oviders/m365/services/sharepoint/sharepoint_service.py | 53 | global_settings = await self.client.admin.sharepoint.settings.get() | CODE |
| CRITICAL⚡ | prowler/providers/m365/services/entra/entra_service.py | 242 | await self.client.identity.conditional_access.policies.get() | CODE |
| CRITICAL | prowler/providers/m365/services/entra/entra_service.py | 662 | self.client.identity.conditional_access.policies.to_get_request_information() | CODE |
| CRITICAL | prowler/providers/m365/services/entra/entra_service.py | 2236 | await self.client.role_management.directory.role_definitions.by_unified_role_definition_id( | CODE |
| CRITICAL | prowler/providers/m365/services/entra/entra_service.py | 1568 | self.client.identity.conditional_access.named_locations.to_get_request_information() | STRING |
| CRITICAL | prowler/providers/m365/services/entra/entra_service.py | 1584 | self.client.identity.conditional_access.named_locations.with_url( | STRING |
| CRITICAL | prowler/providers/m365/services/entra/entra_service.py | 1908 | await self.client.role_management.directory.role_assignments.get() | STRING |
| CRITICAL | prowler/providers/m365/services/entra/entra_service.py | 1925 | role_assignments_response = await self.client.role_management.directory.role_assignments.with_url( | STRING |
| CRITICAL | api/src/backend/api/models.py | 45 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | api/src/backend/api/validators.py | 7 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | api/src/backend/api/exceptions.py | 1 | from django.core.exceptions import ValidationError as django_validation_error | CODE |
| CRITICAL | api/src/backend/api/rls.py | 5 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | api/src/backend/api/adapters.py | 15 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | api/src/backend/api/v1/serializers.py | 69 | from django.core.exceptions import ValidationError as DjangoValidationError | CODE |
| CRITICAL | api/src/backend/api/v1/views.py | 263 | from django.core.exceptions import ValidationError as DjangoValidationError | CODE |
| CRITICAL | api/src/backend/api/tests/test_validators.py | 8 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | api/src/backend/api/tests/test_models.py | 18 | from django.core.exceptions import ValidationError | CODE |
| CRITICAL | skills/prowler-test-api/assets/api_test.py | 344 | mock_conn.cursor.return_value.__enter__.return_value.execute.assert_called() | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | util/check_yanked_pins.py | 27 | CODE | |
| LOW | util/prowler-bulk-provisioning/aws_org_generator.py | 15 | CODE | |
| LOW | util/prowler-bulk-provisioning/nuke_providers.py | 26 | CODE | |
| LOW | …prowler-bulk-provisioning/prowler_bulk_provisioning.py | 3 | CODE | |
| LOW | tests/providers/openstack/openstack_provider_test.py | 3 | CODE | |
| LOW | …ware_mfa_enabled/iam_root_hardware_mfa_enabled_test.py | 15 | CODE | |
| LOW | …/iam/iam_root_mfa_enabled/iam_root_mfa_enabled_test.py | 13 | CODE | |
| LOW | …_support_role_created/iam_support_role_created_test.py | 14 | CODE | |
| LOW | …ware_mfa_enabled/iam_user_hardware_mfa_enabled_test.py | 13 | CODE | |
| LOW | …alation/iam_policy_allows_privilege_escalation_test.py | 19 | CODE | |
| LOW | …sword_policy_number/iam_password_policy_number_test.py | 15 | CODE | |
| LOW | …ength_14/iam_password_policy_minimum_length_14_test.py | 15 | CODE | |
| LOW | …tive_access_key/iam_user_two_active_access_key_test.py | 13 | CODE | |
| LOW | …sword_policy_symbol/iam_password_policy_symbol_test.py | 15 | CODE | |
| LOW | …d_policy_reuse_24/iam_password_policy_reuse_24_test.py | 14 | CODE | |
| LOW | …ole_access/iam_user_mfa_enabled_console_access_test.py | 12 | CODE | |
| LOW | …policy_uppercase/iam_password_policy_uppercase_test.py | 14 | CODE | |
| LOW | prowler/config/config.py | 23 | CODE | |
| LOW | …nstack/services/objectstorage/objectstorage_service.py | 1 | CODE | |
| LOW | …penstack/services/blockstorage/blockstorage_service.py | 1 | CODE | |
| LOW | …rs/openstack/services/networking/networking_service.py | 1 | CODE | |
| LOW | …er/providers/openstack/services/image/image_service.py | 1 | CODE | |
| LOW | …roviders/openstack/services/compute/compute_service.py | 1 | CODE | |
| LOW | …providers/googleworkspace/services/rules/lib/alerts.py | 8 | CODE | |
| LOW | prowler/providers/e2enetworks/lib/api/client.py | 1 | CODE | |
| LOW | prowler/providers/image/image_provider.py | 1 | CODE | |
| LOW | …wler/providers/image/lib/registry/dockerhub_adapter.py | 3 | CODE | |
| LOW | prowler/providers/image/lib/registry/factory.py | 3 | CODE | |
| LOW | prowler/providers/image/lib/registry/oci_adapter.py | 3 | CODE | |
| LOW | prowler/providers/image/lib/registry/base.py | 3 | CODE | |
| LOW | prowler/providers/okta/lib/service/service.py | 10 | CODE | |
| LOW | prowler/providers/aws/services/acmpca/acmpca_service.py | 1 | CODE | |
| LOW | prowler/lib/outputs/compliance/compliance.py | 10 | CODE | |
| LOW | …r/lib/outputs/compliance/universal/universal_output.py | 17 | CODE | |
| LOW | …er/lib/outputs/compliance/universal/ocsf_compliance.py | 32 | CODE | |
| LOW | docs/scripts/generate_provider_cards.py | 13 | CODE | |
| LOW | contrib/inventory-graph/inventory_graph.py | 17 | CODE | |
| LOW | contrib/inventory-graph/lib/inventory_output.py | 14 | CODE | |
| LOW | scripts/check_test_init_files.py | 4 | CODE | |
| LOW | api/src/backend/tasks/jobs/attack_paths/__init__.py | 1 | CODE | |
| LOW | api/src/backend/tasks/jobs/attack_paths/__init__.py | 2 | CODE | |
| LOW | api/src/backend/tasks/jobs/reports/__init__.py | 2 | CODE | |
| LOW | api/src/backend/tasks/jobs/reports/__init__.py | 2 | CODE | |
| LOW | api/src/backend/tasks/jobs/reports/__init__.py | 2 | CODE | |
| LOW | api/src/backend/tasks/jobs/reports/__init__.py | 2 | CODE | |
| LOW | api/src/backend/tasks/jobs/reports/__init__.py | 2 | CODE | |
| LOW | api/src/backend/tasks/jobs/reports/__init__.py | 11 | CODE | |
| LOW | api/src/backend/tasks/jobs/reports/__init__.py | 11 | CODE | |
| LOW | api/src/backend/tasks/jobs/reports/__init__.py | 11 | CODE | |
| LOW | api/src/backend/tasks/jobs/reports/__init__.py | 11 | CODE | |
| LOW | api/src/backend/tasks/jobs/reports/__init__.py | 11 | CODE | |
| LOW | api/src/backend/tasks/jobs/reports/__init__.py | 11 | CODE | |
| LOW | api/src/backend/tasks/jobs/reports/__init__.py | 21 | CODE | |
| LOW | api/src/backend/tasks/jobs/reports/__init__.py | 26 | CODE | |
| LOW | api/src/backend/tasks/jobs/reports/__init__.py | 26 | CODE | |
| LOW | api/src/backend/tasks/jobs/reports/__init__.py | 26 | CODE | |
| LOW | api/src/backend/tasks/jobs/reports/__init__.py | 26 | CODE | |
| LOW | api/src/backend/tasks/jobs/reports/__init__.py | 26 | CODE | |
| LOW | api/src/backend/tasks/jobs/reports/__init__.py | 26 | CODE | |
| LOW | api/src/backend/tasks/jobs/reports/__init__.py | 26 | CODE | |
| 158 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …ery-builder/_components/query-parameters-form.test.tsx | 120 | "placeholder", | CODE |
| LOW⚡ | …/_components/config/lighthouse-v2-config-page.test.tsx | 279 | "placeholder", | CODE |
| LOW⚡ | …/_components/config/lighthouse-v2-config-page.test.tsx | 285 | "placeholder", | CODE |
| LOW⚡ | …/_components/config/lighthouse-v2-config-page.test.tsx | 289 | "placeholder", | CODE |
| LOW | …/_components/config/lighthouse-v2-config-page.test.tsx | 305 | expect(screen.getByLabelText("API key")).not.toHaveAttribute("placeholder"); | CODE |
| LOW | …oviders/wizard/steps/dynamic-credentials-step.test.tsx | 152 | expect(apiUrl).toHaveAttribute("placeholder", "https://api.acme.com"); | CODE |
| LOW | …s/via-credentials/googleworkspace-credentials-form.tsx | 47 | placeholder="admin@example.com" | CODE |
| LOW | …components/integrations/jira/jira-integration-form.tsx | 176 | placeholder="user@example.com" | CODE |
| LOW | …components/users/profile/api-keys/table-cells.test.tsx | 27 | userEmail: "user@example.com", | CODE |
| LOW | …components/users/table/data-table-row-actions.test.tsx | 39 | name: "Jane Doe", | CODE |
| LOW | ui/actions/auth/auth.test.ts | 31 | name: "Jane Doe", | CODE |
| LOW | ui/actions/auth/auth.test.ts | 82 | name: "Jane Doe", | CODE |
| LOW | ui/actions/auth/auth.test.ts | 114 | name: "Jane Doe", | CODE |
| LOW | …bjectstorage_container_metadata_sensitive_data_test.py | 265 | metadata={"api_key": "placeholder"}, | CODE |
| LOW | …/blockstorage_snapshot_metadata_sensitive_data_test.py | 368 | metadata={"api_key": "placeholder"}, | CODE |
| LOW | …ta/blockstorage_volume_metadata_sensitive_data_test.py | 428 | metadata={"api_key": "placeholder"}, | CODE |
| LOW | …_data/compute_instance_metadata_sensitive_data_test.py | 608 | metadata={"api_key": "placeholder"}, | CODE |
| LOW | …_data/compute_instance_metadata_sensitive_data_test.py | 677 | metadata={"api_key": "placeholder"}, | CODE |
| LOW | tests/providers/azure/azure_provider_test.py | 261 | token="fake_token", expires_on=9999999999 | CODE |
| LOW | tests/providers/azure/azure_provider_test.py | 302 | token="fake_token", expires_on=9999999999 | CODE |
| LOW | tests/providers/azure/azure_provider_test.py | 1047 | mock_post.return_value.json.return_value = {"access_token": "fake-token"} | CODE |
| LOW | …ional_email_configured_with_a_security_contact_test.py | 100 | emails=["test@test.com"], | CODE |
| LOW | tests/providers/linode/linode_fixtures.py | 10 | EMAIL = "admin@example.com" | CODE |
| LOW | …s/administration/linode_administration_service_test.py | 10 | def _mock_user(username="admin", email="admin@example.com", tfa=True, restricted=False): | CODE |
| LOW | …s/administration/linode_administration_service_test.py | 45 | _mock_user("admin", "admin@example.com", True, False), | CODE |
| LOW | …er_2fa_enabled/administration_user_2fa_enabled_test.py | 38 | email="admin@example.com", | CODE |
| LOW | tests/providers/gcp/gcp_fixtures.py | 20 | provider.session._service_account_email = "test@test.com" | CODE |
| LOW | tests/providers/gcp/gcp_fixtures.py | 1158 | "principalEmail": "user@example.com", | CODE |
| LOW | tests/providers/m365/m365_provider_test.py | 260 | token="fake_token", expires_on=9999999999 | CODE |
| LOW⚡ | tests/providers/m365/lib/jwt/jwt_decoder_test.py | 15 | "name": "John Doe", | CODE |
| LOW | tests/providers/m365/lib/jwt/jwt_decoder_test.py | 40 | assert result["name"] == "John Doe" | CODE |
| LOW | …abled/defender_safe_attachments_policy_enabled_test.py | 140 | users=["user@example.com"], | CODE |
| LOW | …abled/defender_safe_attachments_policy_enabled_test.py | 225 | users=["user@example.com"], | CODE |
| LOW | …abled/defender_safe_attachments_policy_enabled_test.py | 304 | users=["user@example.com"], | CODE |
| LOW | …abled/defender_safe_attachments_policy_enabled_test.py | 371 | users=["user@example.com"], | CODE |
| LOW | …y_notifications_internal_users_malware_enabled_test.py | 37 | internal_sender_admin_address="admin@example.com", | CODE |
| LOW⚡ | …y_notifications_internal_users_malware_enabled_test.py | 89 | internal_sender_admin_address="admin@example.com", | CODE |
| LOW⚡ | …y_notifications_internal_users_malware_enabled_test.py | 97 | internal_sender_admin_address="admin@example.com", | CODE |
| LOW⚡ | …y_notifications_internal_users_malware_enabled_test.py | 107 | users=["user@example.com"], | CODE |
| LOW | …y_notifications_internal_users_malware_enabled_test.py | 169 | internal_sender_admin_address="admin@example.com", | CODE |
| LOW | …y_notifications_internal_users_malware_enabled_test.py | 257 | internal_sender_admin_address="admin@example.com", | CODE |
| LOW | …y_notifications_internal_users_malware_enabled_test.py | 267 | users=["user@example.com"], | CODE |
| LOW⚡ | …y_notifications_internal_users_malware_enabled_test.py | 495 | internal_sender_admin_address="admin@example.com", | CODE |
| LOW⚡ | …y_notifications_internal_users_malware_enabled_test.py | 503 | internal_sender_admin_address="admin@example.com", | CODE |
| LOW⚡ | …y_notifications_internal_users_malware_enabled_test.py | 511 | internal_sender_admin_address="admin@example.com", | CODE |
| LOW | …r_antispam_outbound_policy_forwarding_disabled_test.py | 38 | notify_limit_exceeded_addresses=["admin@example.com"], | CODE |
| LOW | …r_antispam_outbound_policy_forwarding_disabled_test.py | 39 | notify_sender_blocked_addresses=["admin@example.com"], | CODE |
| LOW⚡ | …r_antispam_outbound_policy_forwarding_disabled_test.py | 92 | notify_limit_exceeded_addresses=["admin@example.com"], | CODE |
| LOW⚡ | …r_antispam_outbound_policy_forwarding_disabled_test.py | 93 | notify_sender_blocked_addresses=["admin@example.com"], | CODE |
| LOW⚡ | …r_antispam_outbound_policy_forwarding_disabled_test.py | 101 | notify_limit_exceeded_addresses=["admin@example.com"], | CODE |
| LOW⚡ | …r_antispam_outbound_policy_forwarding_disabled_test.py | 102 | notify_sender_blocked_addresses=["admin@example.com"], | CODE |
| LOW | …r_antispam_outbound_policy_forwarding_disabled_test.py | 178 | notify_limit_exceeded_addresses=["admin@example.com"], | CODE |
| LOW | …r_antispam_outbound_policy_forwarding_disabled_test.py | 179 | notify_sender_blocked_addresses=["admin@example.com"], | CODE |
| LOW | …r_antispam_outbound_policy_forwarding_disabled_test.py | 273 | notify_limit_exceeded_addresses=["admin@example.com"], | CODE |
| LOW | …r_antispam_outbound_policy_forwarding_disabled_test.py | 274 | notify_sender_blocked_addresses=["admin@example.com"], | CODE |
| LOW | …r_antispam_outbound_policy_forwarding_disabled_test.py | 422 | users=["user@example.com"], | CODE |
| LOW | …olicy_comprehensive_attachments_filter_applied_test.py | 40 | internal_sender_admin_address="admin@example.com", | CODE |
| LOW | …olicy_comprehensive_attachments_filter_applied_test.py | 93 | internal_sender_admin_address="admin@example.com", | CODE |
| LOW | …olicy_comprehensive_attachments_filter_applied_test.py | 101 | internal_sender_admin_address="admin@example.com", | CODE |
| LOW | …olicy_comprehensive_attachments_filter_applied_test.py | 172 | internal_sender_admin_address="admin@example.com", | CODE |
| 94 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | util/prowler-bulk-provisioning/nuke_providers.py | 191 | except (json.JSONDecodeError, ValueError, KeyError): | CODE |
| HIGH | …prowler-bulk-provisioning/prowler_bulk_provisioning.py | 551 | except Exception: | CODE |
| HIGH | …ts/providers/m365/lib/arguments/m365_arguments_test.py | 506 | except SystemExit: | CODE |
| HIGH | …ts/providers/external/test_dynamic_provider_loading.py | 1077 | except BaseException: | CODE |
| HIGH | …ts/providers/external/test_dynamic_provider_loading.py | 2900 | except BaseException: | CODE |
| HIGH | …ers/mongodbatlas/services/clusters/clusters_service.py | 38 | except (KeyError, IndexError, AttributeError): | CODE |
| HIGH | prowler/providers/llm/llm_provider.py | 398 | except queue.Empty: | CODE |
| HIGH | prowler/providers/llm/llm_provider.py | 410 | except queue.Empty: | CODE |
| HIGH | prowler/providers/llm/llm_provider.py | 441 | except queue.Empty: | CODE |
| HIGH | prowler/providers/azure/lib/service/service.py | 50 | except Exception: | CODE |
| HIGH | prowler/providers/alibabacloud/lib/service/service.py | 150 | except Exception: | CODE |
| HIGH | prowler/providers/github/github_provider.py | 562 | except Exception: | CODE |
| HIGH | prowler/providers/github/github_provider.py | 449 | except Exception: | CODE |
| HIGH | prowler/providers/huaweicloud/lib/service/service.py | 177 | except Exception: | CODE |
| HIGH | prowler/providers/aws/aws_provider.py | 1017 | except ModuleNotFoundError: | CODE |
| HIGH | prowler/providers/aws/lib/service/service.py | 109 | except Exception: | CODE |
| HIGH | …/providers/aws/services/codebuild/codebuild_service.py | 82 | except Exception: | CODE |
| HIGH | prowler/providers/kubernetes/lib/service/service.py | 40 | except Exception: | CODE |
| HIGH | prowler/lib/utils/utils.py | 8 | except ImportError: | CODE |
| HIGH | prowler/lib/check/custom_checks_metadata.py | 144 | except ValueError: | CODE |
| HIGH | prowler/lib/check/custom_checks_metadata.py | 128 | except ValueError: | CODE |
| HIGH | prowler/lib/check/custom_checks_metadata.py | 158 | except ValueError: | CODE |
| HIGH | prowler/lib/outputs/sarif/sarif.py | 188 | except (ValueError, IndexError): | CODE |
| HIGH | api/src/backend/api/db_utils.py | 276 | except Exception: | CODE |
| HIGH | api/src/backend/api/db_utils.py | 349 | except Exception: | CODE |
| HIGH | api/src/backend/api/v1/mixins.py | 338 | except Task.DoesNotExist: | CODE |
| HIGH | api/src/backend/api/v1/mixins.py | 369 | except TaskResult.DoesNotExist: | CODE |
| HIGH | api/src/backend/api/v1/serializers.py | 294 | except AttributeError: | CODE |
| HIGH | api/src/backend/api/attack_paths/retryable_session.py | 154 | except Exception: | CODE |
| HIGH | api/src/backend/api/attack_paths/sink/factory.py | 91 | except Exception: # pragma: no cover - best-effort | CODE |
| HIGH | api/src/backend/api/attack_paths/sink/neptune.py | 167 | except Exception: # pragma: no cover - best-effort | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | .pre-commit-config.yaml | 1 | # Priority tiers (lower = runs first, same priority = concurrent): | COMMENT |
| LOW | pyproject.toml | 401 | override-dependencies = [ | COMMENT |
| LOW | .grype.yaml | 1 | # Findings excluded from the Grype gate, each with a reason. | COMMENT |
| LOW | .grype.yaml | 21 | # Trivy 0.74.0 still embeds grpc 1.82.1, while the 1.83.1 fix is not in any release. | COMMENT |
| LOW | .grype.yaml | 121 | # drop it, yet python:3.12.14-slim-trixie reports it too. Prowler never extracts tar | COMMENT |
| LOW | .trivyignore.yaml | 1 | # Trivy suppressions for the prowlercloud/prowler SDK and API container images. | COMMENT |
| LOW | .trivyignore.yaml | 21 | # | COMMENT |
| LOW | .trivyignore.yaml | 61 | COMMENT | |
| LOW | .trivyignore.yaml | 181 | - "pkg:npm/%40modelcontextprotocol%2Fsdk@1.27.1" | COMMENT |
| LOW | ui/vitest.integration.setup.ts | 21 | // page invokes one, it runs in the browser and reaches `auth()` from | COMMENT |
| LOW | ui/pnpm-workspace.yaml | 21 | # Next.js 16.3.8 requests sharp ^0.35.4; pinned to fix | COMMENT |
| LOW | ui/pnpm-workspace.yaml | 41 | "esbuild": "0.28.1" | COMMENT |
| LOW | ui/pnpm-workspace.yaml | 81 | # but the override unifies the tree on a patched version. | COMMENT |
| LOW | ui/pnpm-workspace.yaml | 101 | "fast-uri": "3.1.6" | COMMENT |
| LOW | ui/pnpm-workspace.yaml | 121 | COMMENT | |
| LOW | ui/pnpm-workspace.yaml | 141 | # esbuild: Go binary. Downloads the pre-compiled binary matching the current platform/architecture. | COMMENT |
| LOW | …/query-builder/_components/graph/attack-path-graph.tsx | 301 | // full graph) swap the data prop, which leaves the previous viewport | COMMENT |
| LOW | ui/app/(prowler)/lighthouse/_lib/stream-url.ts | 1 | // Same-origin path for the Lighthouse v2 SSE proxy route handler. | COMMENT |
| LOW | ui/tests/scans/scans-page.ts | 21 | readonly viewScanLink: Locator; | COMMENT |
| LOW | …s/providers/wizard/provider-wizard-modal.utils.test.ts | 341 | expect(destination).toBe("AWS Organizations"); | COMMENT |
| LOW | ui/components/icons/compliance/IconCompliance.tsx | 21 | import NIS2Logo from "./nis2.svg"; | COMMENT |
| LOW | ui/actions/mute-rules/mute-rules.ts | 401 | COMMENT | |
| LOW | ui/lib/integrations.ts | 1 | import { readBoolEnv, readEnv } from "@/lib/runtime-env"; | COMMENT |
| LOW | ui/lib/external-urls.ts | 41 | // CloudFormation template URL for the ProwlerScan role. | COMMENT |
| LOW | ui/lib/external-urls.ts | 61 | // `getAWSCredentialsTemplateLinks` below. | COMMENT |
| LOW | ui/lib/compliance/asd-essential-eight.tsx | 61 | // normalize to "1. Patch applications" so the leading clause number reads | COMMENT |
| LOW | ui/lib/onboarding/first-run-marker.ts | 1 | // Durable "this browser already went through the first-run redirect" memory. | COMMENT |
| LOW | util/update_aws_services_regions.py | 21 | COMMENT | |
| LOW | tests/providers/azure/services/app/app_service_test.py | 21 | # auth_enabled=True, | COMMENT |
| LOW | tests/providers/azure/services/app/app_service_test.py | 41 | # category="AppServiceAuditLogs", | COMMENT |
| LOW | …iders/azure/services/keyvault/keyvault_service_test.py | 21 | # id="id", | COMMENT |
| LOW | …iders/azure/services/keyvault/keyvault_service_test.py | 41 | # location="location", | COMMENT |
| LOW | …/iam_inline_policy_allows_privilege_escalation_test.py | 21 | # def test_iam_inline_policy_allows_privilege_escalation_sts(self): | COMMENT |
| LOW | …/iam_inline_policy_allows_privilege_escalation_test.py | 41 | # "prowler.providers.common.provider.Provider.get_global_provider", | COMMENT |
| LOW | …alation/iam_policy_allows_privilege_escalation_test.py | 21 | AWS_ACCOUNT_NUMBER, | COMMENT |
| LOW | …alation/iam_policy_allows_privilege_escalation_test.py | 41 | # with mock.patch( | COMMENT |
| LOW | tests/providers/aws/services/acm/acm_service_test.py | 121 | # Test ACM Session | COMMENT |
| LOW | …s/providers/aws/services/athena/athena_service_test.py | 81 | default_workgroup_name = "primary" | COMMENT |
| LOW | tests/lib/check/check_test.py | 701 | } | COMMENT |
| LOW | tests/lib/check/check_test.py | 721 | # with mock.patch( | COMMENT |
| LOW | tests/lib/check/check_test.py | 741 | # "iam_avoid_root_usage", | COMMENT |
| LOW | tests/lib/check/check_test.py | 761 | # "expected": set(), | COMMENT |
| LOW | prowler/config/config.yaml | 1 | # AWS Configuration | COMMENT |
| LOW | prowler/config/config.yaml | 41 | # Mutelist: | COMMENT |
| LOW | prowler/config/config.yaml | 101 | fargate_windows_latest_version: "1.0.0" | COMMENT |
| LOW | prowler/config/config.yaml | 181 | # ] | COMMENT |
| LOW | prowler/config/config.yaml | 481 | COMMENT | |
| LOW | prowler/config/config.yaml | 501 | secrets_ignore_files: [] | COMMENT |
| LOW | prowler/config/config.yaml | 541 | # Azure Configuration | COMMENT |
| LOW | prowler/config/config.yaml | 641 | # Maximum age in days for disk snapshots before they are considered outdated | COMMENT |
| LOW | prowler/config/config.yaml | 681 | "TLS_RSA_WITH_AES_128_GCM_SHA256", | COMMENT |
| LOW | prowler/config/config.yaml | 741 | - "master" | COMMENT |
| LOW | prowler/config/config.yaml | 761 | - "_TOKEN" | COMMENT |
| LOW | prowler/config/config.yaml | 781 | # with an explicit risk acceptance. | COMMENT |
| LOW | prowler/config/config.yaml | 801 | # range: 0 or 0.1..100 — non-zero rates below 0.1 are rejected because they | COMMENT |
| LOW | prowler/config/config.yaml | 821 | # alibabacloud.ram_user_console_access_unused | COMMENT |
| LOW | …/googleworkspace/services/security/security_service.py | 261 | # order on every scan. | COMMENT |
| LOW | prowler/providers/azure/services/entra/entra_service.py | 41 | COMMENT | |
| LOW | …roviders/okta/services/network/network_zone_service.py | 61 | all_zones, err = await _paginate_shared( | COMMENT |
| LOW | prowler/providers/aws/aws_provider.py | 341 | # Default to the current (post-assume) session so DescribeAccount runs | COMMENT |
| 80 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | …oraclecloud/services/identity/identity_service_test.py | 126 | """OCI can return `matching_rule` and `description` as null; the | STRING |
| HIGH | …/providers/m365/lib/powershell/m365_powershell_test.py | 217 | tenant_id="def-456 && whoami", | CODE |
| HIGH | …viders/m365/services/exchange/exchange_service_test.py | 424 | # return null; null must keep the platform default (enabled). | COMMENT |
| HIGH | …orced/kms_key_enclave_attestation_not_enforced_test.py | 516 | # A policy with Statement=null (JSON null, Python None) must not | COMMENT |
| HIGH | …ed/eks_cluster_vpc_cni_network_policy_enforced_test.py | 195 | '{"enableNetworkPolicy": null}', | CODE |
| HIGH⚡ | tests/contrib/wazuh/prowler_wrapper_security_test.py | 100 | malicious_profile = f"test && touch {test_file}" | CODE |
| HIGH | tests/lib/outputs/html/html_test.py | 620 | tagStack.push(tagName); | CODE |
| HIGH | prowler/lib/outputs/html/html.py | 379 | tagStack.push(tagName); | CODE |
| HIGH⚡ | contrib/inventory-graph/lib/inventory_output.py | 388 | buildGraph(null); | CODE |
| HIGH⚡ | contrib/inventory-graph/lib/inventory_output.py | 391 | sel.addEventListener("change", () => buildGraph(sel.value || null)); | CODE |
| HIGH⚡ | contrib/inventory-graph/lib/inventory_output.py | 391 | sel.addEventListener("change", () => buildGraph(sel.value || null)); | CODE |
| HIGH⚡ | contrib/inventory-graph/lib/inventory_output.py | 394 | document.getElementById("link-distance").addEventListener("input", () => buildGraph(sel.value || null)); | CODE |
| HIGH⚡ | contrib/inventory-graph/lib/inventory_output.py | 394 | document.getElementById("link-distance").addEventListener("input", () => buildGraph(sel.value || null)); | CODE |
| HIGH⚡ | contrib/inventory-graph/lib/inventory_output.py | 395 | document.getElementById("charge-strength").addEventListener("input", () => buildGraph(sel.value || null)); | CODE |
| HIGH⚡ | contrib/inventory-graph/lib/inventory_output.py | 395 | document.getElementById("charge-strength").addEventListener("input", () => buildGraph(sel.value || null)); | CODE |
| HIGH | contrib/inventory-graph/lib/inventory_output.py | 337 | d.fx = null; d.fy = null; | CODE |
| HIGH⚡ | api/src/backend/tasks/tests/test_orphan_recovery.py | 42 | assert decode_celery_field('{"enabled": true, "scan_id": null}', {}) == { | CODE |
| HIGH | api/src/backend/api/filters.py | 386 | included. Providers with no connection attempt (status is null) are | CODE |
| HIGH⚡ | api/src/backend/api/tests/test_cypher_sanitizer.py | 409 | "CALL apoc.load.csvParams('http://evil.com/', {}, null) YIELD list RETURN list", | CODE |
| HIGH | …rver/prowler_mcp_server/prowler_app/tools/providers.py | 74 | - Connection status: Connected (true), Failed (false), Not Tested (null) | STRING |
| HIGH | …/prowler_mcp_server/prowler_app/models/integrations.py | 212 | f"must be a boolean or null, got {unexpected!r}." | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | ui/components/integrations/s3/s3-integration-form.tsx | 145 | : // Step 1: No required fields since role_arn and external_id are optional | CODE |
| LOW | ui/actions/users/tenants.ts | 362 | // Step 1: Switch to the target tenant (current token is still valid) | COMMENT |
| LOW | ui/actions/users/tenants.ts | 402 | // Step 2: Delete the old tenant using the NEW token | COMMENT |
| LOW⚡ | util/compliance/compliance_mapper/compliance_mapper.py | 828 | # Step 1: Load compliance file | COMMENT |
| LOW⚡ | util/compliance/compliance_mapper/compliance_mapper.py | 834 | # Step 2: Field selection | COMMENT |
| LOW⚡ | util/compliance/compliance_mapper/compliance_mapper.py | 838 | # Step 3: Load Prowler checks | COMMENT |
| LOW⚡ | util/compliance/compliance_mapper/compliance_mapper.py | 842 | # Step 4: Add check code | COMMENT |
| LOW⚡ | util/compliance/compliance_mapper/compliance_mapper.py | 846 | # Step 5: Process all requirements | COMMENT |
| LOW⚡ | util/compliance/compliance_mapper/compliance_mapper.py | 851 | # Step 6: Generate output file | COMMENT |
| LOW | …prowler-bulk-provisioning/prowler_bulk_provisioning.py | 183 | # Step 1: Build provider creation payload (minimal) | COMMENT |
| LOW | …prowler-bulk-provisioning/prowler_bulk_provisioning.py | 195 | # Step 2: Build secret creation payload if credentials are provided | COMMENT |
| LOW | …prowler-bulk-provisioning/prowler_bulk_provisioning.py | 463 | # Step 1: Create provider | COMMENT |
| LOW | …prowler-bulk-provisioning/prowler_bulk_provisioning.py | 479 | # Step 2: Create secret if provided | COMMENT |
| LOW | …prowler-bulk-provisioning/prowler_bulk_provisioning.py | 501 | # Step 3: Test connection if requested | COMMENT |
| LOW⚡ | …ds_instance_inside_vpc/rds_instance_inside_vpc_test.py | 44 | # Step 1: Create the VPC | COMMENT |
| LOW⚡ | …/services/defenderidentity/defenderidentity_service.py | 76 | # Step 1: Call the API | COMMENT |
| LOW | …/services/defenderidentity/defenderidentity_service.py | 98 | # Step 2: Parse the response | COMMENT |
| LOW⚡ | …/services/defenderidentity/defenderidentity_service.py | 163 | # Step 1: Call the API | COMMENT |
| LOW | …/services/defenderidentity/defenderidentity_service.py | 187 | # Step 2: Parse the response | COMMENT |
| LOW | …derxdr_endpoint_privileged_user_exposed_credentials.py | 41 | # Step 1: Check MDE status | COMMENT |
| LOW | …derxdr_endpoint_privileged_user_exposed_credentials.py | 96 | # Step 2: MDE is active with devices - check for exposed credentials | COMMENT |
| LOW⚡ | prowler/providers/aws/services/s3/s3_service.py | 646 | # NOTE: This function is restricted to the us-west-2 region due to AWS limitations on Multi-Region Access Points | COMMENT |
| LOW | contrib/k8s/helm/prowler-app/README.md | 40 | ### Step 1: Create Required Secrets | COMMENT |
| LOW | contrib/k8s/helm/prowler-app/README.md | 97 | ### Step 2: Configure Values | COMMENT |
| LOW | contrib/k8s/helm/prowler-app/README.md | 123 | ### Step 3: Install the Chart | COMMENT |
| LOW | .github/agents/issue-triage.md | 59 | ### Step 1: Extract Structured Fields | COMMENT |
| LOW | .github/agents/issue-triage.md | 77 | ### Step 2: Classify the Issue | COMMENT |
| LOW | .github/agents/issue-triage.md | 90 | ### Step 3: Search for Duplicates and Related Issues | COMMENT |
| LOW | .github/agents/issue-triage.md | 100 | ### Step 4: Investigate | COMMENT |
| LOW | .github/agents/issue-triage.md | 135 | ### Step 5: Root Cause and Issue Severity | COMMENT |
| LOW | .github/agents/issue-triage.md | 151 | ### Step 6: Build the Coding Agent Plan | COMMENT |
| LOW | .github/agents/issue-triage.md | 161 | ### Step 7: Assess Complexity and Agent Readiness | COMMENT |
| LOW | .github/agents/issue-triage.md | 177 | ### Step 8: Apply Labels | COMMENT |
| LOW | .github/scripts/slack-messages/README.md | 241 | # Step 1: Notify when push starts | COMMENT |
| LOW | .github/scripts/slack-messages/README.md | 257 | # Step 2: Build and push container | COMMENT |
| LOW | .github/scripts/slack-messages/README.md | 265 | # Step 3: Determine push status | COMMENT |
| LOW | .github/scripts/slack-messages/README.md | 278 | # Step 4: Notify when push completes (success or failure) | COMMENT |
| LOW | .github/scripts/slack-messages/README.md | 302 | # Step 1: Send deployment start notification | COMMENT |
| LOW | .github/scripts/slack-messages/README.md | 322 | # Step 2: Run your deployment steps | COMMENT |
| LOW | .github/scripts/slack-messages/README.md | 331 | # Step 3: Determine status (calculated internally, not configured) | COMMENT |
| LOW | .github/scripts/slack-messages/README.md | 364 | # Step 4: Update the same Slack message (using calculated values) | COMMENT |
| LOW | api/src/backend/api/attack_paths/cypher_sanitizer.py | 27 | # Step 1 - String / comment protection | COMMENT |
| LOW | api/src/backend/api/attack_paths/cypher_sanitizer.py | 33 | # Step 2 - Clause splitting | COMMENT |
| LOW⚡ | api/src/backend/api/attack_paths/cypher_sanitizer.py | 105 | # Step 1: Protect strings and comments (single pass, leftmost-first) | COMMENT |
| LOW⚡ | api/src/backend/api/attack_paths/cypher_sanitizer.py | 114 | # Step 2: Split by clause keywords | COMMENT |
| LOW | api/src/backend/api/attack_paths/cypher_sanitizer.py | 135 | # Step 5: Restore protected regions | COMMENT |
| LOW⚡ | skills/prowler-provider/assets/provider.py | 56 | # Step 1: Setup session (authentication) | COMMENT |
| LOW⚡ | skills/prowler-provider/assets/provider.py | 60 | # Step 2: Setup identity (who is authenticated) | COMMENT |
| LOW⚡ | skills/prowler-provider/assets/provider.py | 63 | # Step 3: Load audit config | COMMENT |
| LOW⚡ | skills/prowler-provider/assets/provider.py | 71 | # Step 4: Load fixer config | COMMENT |
| LOW⚡ | skills/prowler-provider/assets/provider.py | 74 | # Step 5: Load mutelist | COMMENT |
| LOW | skills/prowler-readme-table/SKILL.md | 23 | ### Step 1: Collect Stats via CLI | COMMENT |
| LOW | skills/prowler-readme-table/SKILL.md | 44 | ### Step 2: Batch Extraction | COMMENT |
| LOW | skills/prowler-readme-table/SKILL.md | 57 | ### Step 3: Update the Table | COMMENT |
| LOW | skills/prowler-changelog/SKILL.md | 118 | ### Step 1: Determine Affected Component(s) | COMMENT |
| LOW | skills/prowler-changelog/SKILL.md | 133 | ### Step 2: Create the fragment(s) | COMMENT |
| LOW | skills/prowler-changelog/SKILL.md | 139 | ### Step 3: Check pending fragments | COMMENT |
| LOW | skills/django-migration-psql/SKILL.md | 134 | ### Step 1: create indexes on actual partitions | COMMENT |
| LOW | skills/django-migration-psql/SKILL.md | 171 | ### Step 2: register the index with Django | COMMENT |
| LOW⚡ | …rver/prowler_mcp_server/prowler_app/tools/providers.py | 244 | # Step 1: Check if provider already exists | COMMENT |
| 4 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | ui/components/integrations/s3/s3-integration-form.tsx | 145 | : // Step 1: No required fields since role_arn and external_id are optional | CODE |
| LOW | ui/actions/users/tenants.ts | 362 | // Step 1: Switch to the target tenant (current token is still valid) | COMMENT |
| LOW | ui/actions/users/tenants.ts | 402 | // Step 2: Delete the old tenant using the NEW token | COMMENT |
| LOW⚡ | util/compliance/compliance_mapper/compliance_mapper.py | 828 | # Step 1: Load compliance file | COMMENT |
| LOW⚡ | util/compliance/compliance_mapper/compliance_mapper.py | 834 | # Step 2: Field selection | COMMENT |
| LOW⚡ | util/compliance/compliance_mapper/compliance_mapper.py | 838 | # Step 3: Load Prowler checks | COMMENT |
| LOW⚡ | util/compliance/compliance_mapper/compliance_mapper.py | 842 | # Step 4: Add check code | COMMENT |
| LOW⚡ | util/compliance/compliance_mapper/compliance_mapper.py | 846 | # Step 5: Process all requirements | COMMENT |
| LOW⚡ | util/compliance/compliance_mapper/compliance_mapper.py | 851 | # Step 6: Generate output file | COMMENT |
| LOW | …prowler-bulk-provisioning/prowler_bulk_provisioning.py | 183 | # Step 1: Build provider creation payload (minimal) | COMMENT |
| LOW | …prowler-bulk-provisioning/prowler_bulk_provisioning.py | 195 | # Step 2: Build secret creation payload if credentials are provided | COMMENT |
| LOW | …prowler-bulk-provisioning/prowler_bulk_provisioning.py | 463 | # Step 1: Create provider | COMMENT |
| LOW | …prowler-bulk-provisioning/prowler_bulk_provisioning.py | 479 | # Step 2: Create secret if provided | COMMENT |
| LOW | …prowler-bulk-provisioning/prowler_bulk_provisioning.py | 501 | # Step 3: Test connection if requested | COMMENT |
| LOW⚡ | …ds_instance_inside_vpc/rds_instance_inside_vpc_test.py | 44 | # Step 1: Create the VPC | COMMENT |
| LOW⚡ | …/services/defenderidentity/defenderidentity_service.py | 76 | # Step 1: Call the API | COMMENT |
| LOW | …/services/defenderidentity/defenderidentity_service.py | 98 | # Step 2: Parse the response | COMMENT |
| LOW⚡ | …/services/defenderidentity/defenderidentity_service.py | 163 | # Step 1: Call the API | COMMENT |
| LOW | …/services/defenderidentity/defenderidentity_service.py | 187 | # Step 2: Parse the response | COMMENT |
| LOW | …derxdr_endpoint_privileged_user_exposed_credentials.py | 41 | # Step 1: Check MDE status | COMMENT |
| LOW | …derxdr_endpoint_privileged_user_exposed_credentials.py | 96 | # Step 2: MDE is active with devices - check for exposed credentials | COMMENT |
| LOW | api/src/backend/api/v1/mixins.py | 299 | # Add kwargs filters - we need to check if the task kwargs contain our parameters | COMMENT |
| LOW⚡ | api/src/backend/api/attack_paths/cypher_sanitizer.py | 105 | # Step 1: Protect strings and comments (single pass, leftmost-first) | COMMENT |
| LOW⚡ | api/src/backend/api/attack_paths/cypher_sanitizer.py | 114 | # Step 2: Split by clause keywords | COMMENT |
| LOW | api/src/backend/api/attack_paths/cypher_sanitizer.py | 135 | # Step 5: Restore protected regions | COMMENT |
| LOW⚡ | skills/prowler-provider/assets/provider.py | 56 | # Step 1: Setup session (authentication) | COMMENT |
| LOW⚡ | skills/prowler-provider/assets/provider.py | 60 | # Step 2: Setup identity (who is authenticated) | COMMENT |
| LOW⚡ | skills/prowler-provider/assets/provider.py | 63 | # Step 3: Load audit config | COMMENT |
| LOW⚡ | skills/prowler-provider/assets/provider.py | 71 | # Step 4: Load fixer config | COMMENT |
| LOW⚡ | skills/prowler-provider/assets/provider.py | 74 | # Step 5: Load mutelist | COMMENT |
| LOW⚡ | …rver/prowler_mcp_server/prowler_app/tools/providers.py | 244 | # Step 1: Check if provider already exists | COMMENT |
| LOW⚡ | …rver/prowler_mcp_server/prowler_app/tools/providers.py | 247 | # Step 2: Create or update provider | COMMENT |
| LOW⚡ | …rver/prowler_mcp_server/prowler_app/tools/providers.py | 255 | # Step 3: Handle credentials if provided and capture secret response | COMMENT |
| LOW⚡ | …rver/prowler_mcp_server/prowler_app/tools/providers.py | 262 | # Step 4: Test connection | COMMENT |
| LOW⚡ | …rver/prowler_mcp_server/prowler_app/tools/providers.py | 265 | # Step 5: Get final provider state with relationships | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …linode/services/compute/linode_compute_service_test.py | 10 | CODE | |
| LOW | …onal_access_policy_sign_in_frequency_all_users_test.py | 32 | CODE | |
| LOW | …red/entra_access_review_guest_users_configured_test.py | 13 | CODE | |
| LOW | …cy_corporate_device_sign_in_frequency_enforced_test.py | 24 | CODE | |
| LOW | …intune_enrollment_sign_in_frequency_every_time_test.py | 26 | CODE | |
| LOW | …al_access_policy_mdm_compliant_device_required_test.py | 29 | CODE | |
| LOW | …tional_access_policy_token_protection_enforced_test.py | 24 | CODE | |
| LOW | …ra_conditional_access_policy_no_exclusion_gaps_test.py | 26 | CODE | |
| LOW | …nal_access_policy_no_deleted_object_references_test.py | 19 | CODE | |
| LOW | …_access_policy_authentication_transfer_blocked_test.py | 23 | CODE | |
| LOW | …ntra_access_review_privileged_roles_configured_test.py | 13 | CODE | |
| LOW | …rs/okta/services/network_zone/network_zone_fixtures.py | 20 | CODE | |
| LOW | …/okta/services/application/application_service_test.py | 44 | CODE | |
| LOW | …ders/okta/services/application/application_fixtures.py | 55 | CODE | |
| LOW | …/okta/services/authenticator/authenticator_fixtures.py | 26 | CODE | |
| LOW | tests/providers/aws/utils.py | 104 | CODE | |
| LOW | …k_agent_role_not_shared_across_agents_versions_test.py | 48 | CODE | |
| LOW | prowler/providers/openstack/openstack_provider.py | 54 | CODE | |
| LOW | prowler/providers/openstack/openstack_provider.py | 159 | CODE | |
| LOW | prowler/providers/openstack/openstack_provider.py | 540 | CODE | |
| LOW | …/providers/googleworkspace/googleworkspace_provider.py | 76 | CODE | |
| LOW | prowler/providers/mongodbatlas/mongodbatlas_provider.py | 46 | CODE | |
| LOW | prowler/providers/e2enetworks/e2enetworks_provider.py | 38 | CODE | |
| LOW | prowler/providers/oraclecloud/oraclecloud_provider.py | 74 | CODE | |
| LOW | prowler/providers/oraclecloud/oraclecloud_provider.py | 280 | CODE | |
| LOW | prowler/providers/oraclecloud/oraclecloud_provider.py | 843 | CODE | |
| LOW | prowler/providers/vercel/vercel_provider.py | 45 | CODE | |
| LOW | prowler/providers/azure/azure_provider.py | 112 | CODE | |
| LOW | prowler/providers/azure/azure_provider.py | 625 | CODE | |
| LOW | prowler/providers/cloudflare/cloudflare_provider.py | 59 | CODE | |
| LOW | prowler/providers/gcp/gcp_provider.py | 74 | CODE | |
| LOW | prowler/providers/gcp/gcp_provider.py | 453 | CODE | |
| LOW | prowler/providers/alibabacloud/alibabacloud_provider.py | 130 | CODE | |
| LOW | prowler/providers/alibabacloud/alibabacloud_provider.py | 306 | CODE | |
| LOW | prowler/providers/alibabacloud/alibabacloud_provider.py | 795 | CODE | |
| LOW | prowler/providers/image/image_provider.py | 78 | CODE | |
| LOW | prowler/providers/iac/iac_provider.py | 41 | CODE | |
| LOW | prowler/providers/github/github_provider.py | 106 | CODE | |
| LOW | prowler/providers/huaweicloud/huaweicloud_provider.py | 67 | CODE | |
| LOW | prowler/providers/huaweicloud/huaweicloud_provider.py | 326 | CODE | |
| LOW | prowler/providers/m365/m365_provider.py | 115 | CODE | |
| LOW | prowler/providers/m365/m365_provider.py | 676 | CODE | |
| LOW | prowler/providers/okta/okta_provider.py | 95 | CODE | |
| LOW | prowler/providers/scaleway/scaleway_provider.py | 46 | CODE | |
| LOW | prowler/providers/stackit/stackit_provider.py | 93 | CODE | |
| LOW | prowler/providers/aws/aws_provider.py | 113 | CODE | |
| LOW | prowler/providers/aws/aws_provider.py | 1477 | CODE | |
| LOW | prowler/providers/aws/lib/s3/s3.py | 74 | CODE | |
| LOW | prowler/providers/aws/lib/s3/s3.py | 262 | CODE | |
| LOW | prowler/providers/aws/lib/security_hub/security_hub.py | 92 | CODE | |
| LOW | prowler/providers/aws/lib/security_hub/security_hub.py | 465 | CODE | |
| LOW | prowler/providers/aws/lib/session/aws_set_up_session.py | 32 | CODE | |
| LOW | prowler/providers/kubernetes/kubernetes_provider.py | 70 | CODE | |
| LOW | prowler/lib/scan/scan.py | 48 | CODE | |
| LOW | prowler/lib/check/checks_loader.py | 13 | CODE | |
| LOW | prowler/lib/outputs/jira/jira.py | 1578 | CODE | |
| LOW | prowler/lib/outputs/jira/jira.py | 2274 | CODE | |
| LOW | prowler/lib/outputs/jira/jira.py | 3051 | CODE | |
| LOW | api/src/backend/tasks/jobs/threatscore_utils.py | 357 | CODE | |
| LOW | api/src/backend/tasks/jobs/report.py | 652 | CODE | |
| 12 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | ui/tests/scans/scans.spec.ts | 6 | // Scans E2E suite scaffold | COMMENT |
| MEDIUM | …ble/resource-detail-drawer/lighthouse-skills-block.tsx | 15 | // Finding-detail CTA: a grid of launchable agentic workflows plus | COMMENT |
| MEDIUM | ui/components/side-panel/global-side-panel.test.tsx | 403 | // Given: the user is on the agentic chat page with the panel open | COMMENT |
| MEDIUM | …uts/compliance/config_status_renderer_coverage_test.py | 22 | # Base/dispatch modules that orchestrate renderers but never emit a status row. | COMMENT |
| MEDIUM⚡ | …ance/aws_well_architected/aws_well_architected_test.py | 179 | expected_csv = f"PROVIDER;DESCRIPTION;ACCOUNTID;REGION;ASSESSMENTDATE;REQUIREMENTS_ID;REQUIREMENTS_DESCRIPTION;R | CODE |
| MEDIUM⚡ | …ance/aws_well_architected/aws_well_architected_test.py | 179 | expected_csv = f"PROVIDER;DESCRIPTION;ACCOUNTID;REGION;ASSESSMENTDATE;REQUIREMENTS_ID;REQUIREMENTS_DESCRIPTION;R | CODE |
| MEDIUM | …wler/providers/aws/services/bedrock/bedrock_service.py | 82 | # a definite "no guardrails", so it must not become a MANUAL finding. | COMMENT |
| MEDIUM | …k_guardrail_prompt_attack_filter_enabled.metadata.json | 22 | "https://support.icompaas.com/support/solutions/articles/62000233535-ensure-prompt-attack-filter-is-configured-at-hi | CODE |
| MEDIUM | …k_guardrail_prompt_attack_filter_enabled.metadata.json | 23 | "https://docs.aws.amazon.com/bedrock/latest/userguide/guardrails.html" | CODE |
| MEDIUM⚡ | …_enabled/bedrock_agent_guardrail_enabled.metadata.json | 19 | "https://docs.aws.amazon.com/bedrock/latest/userguide/guardrails-create.html", | CODE |
| MEDIUM⚡ | …_enabled/bedrock_agent_guardrail_enabled.metadata.json | 21 | "https://www.trendmicro.com/trendaivisiononecloudriskmanagement/knowledge-base/aws/Bedrock/protect-agent-sessions-wi | CODE |
| MEDIUM⚡ | …_enabled/bedrock_agent_guardrail_enabled.metadata.json | 22 | "https://docs.aws.amazon.com/bedrock/latest/userguide/guardrails.html" | CODE |
| MEDIUM | …configured/bedrock_guardrails_configured.metadata.json | 19 | "https://docs.aws.amazon.com/bedrock/latest/userguide/guardrails.html", | CODE |
| MEDIUM | …configured/bedrock_guardrails_configured.metadata.json | 20 | "https://docs.aws.amazon.com/bedrock/latest/userguide/guardrails-create.html" | CODE |
| MEDIUM | …rail_contextual_grounding_filter_enabled.metadata.json | 18 | "https://docs.aws.amazon.com/bedrock/latest/userguide/guardrails-contextual-grounding-check.html", | CODE |
| MEDIUM⚡ | …ail_sensitive_information_filter_enabled.metadata.json | 21 | "https://docs.aws.amazon.com/bedrock/latest/userguide/guardrails-sensitive-filters.html", | CODE |
| MEDIUM⚡ | …ail_sensitive_information_filter_enabled.metadata.json | 22 | "https://www.trendmicro.com/trendaivisiononecloudriskmanagement/knowledge-base/aws/Bedrock/guardrails-with-pii-mask- | CODE |
| MEDIUM⚡ | …ail_sensitive_information_filter_enabled.metadata.json | 23 | "https://docs.aws.amazon.com/bedrock/latest/userguide/guardrails.html" | CODE |
| MEDIUM | …providers/aws/services/iam/lib/privilege_escalation.py | 313 | # reads the execution role credentials from MMDS, bypassing the agent and guardrails. | COMMENT |
| MEDIUM | skills/README.md | 3 | This directory contains **Agent Skills** following the [Agent Skills open standard](https://agentskills.io). Skills prov | CODE |
| MEDIUM | skills/prowler-compliance/SKILL.md | 1085 | # Requirements with config guardrails (empty arrays are truthy in jq — check length) | COMMENT |
| MEDIUM | mcp_server/AGENTS.md | 74 | ├── server.py # Main orchestration | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | …ra_conditional_access_policy_no_exclusion_gaps_test.py | 423 | # user-1 is covered, so it must not appear as a gap (whitespace-robust). | COMMENT |
| MEDIUM⚡ | …ance/aws_well_architected/aws_well_architected_test.py | 179 | expected_csv = f"PROVIDER;DESCRIPTION;ACCOUNTID;REGION;ASSESSMENTDATE;REQUIREMENTS_ID;REQUIREMENTS_DESCRIPTION;R | CODE |
| MEDIUM | …ge_enabled/gmail_comprehensive_mail_storage_enabled.py | 8 | """Check that comprehensive mail storage is enabled. | STRING |
| MEDIUM | …s/zone/zone_waf_enabled/zone_waf_enabled.metadata.json | 23 | "Terraform": "```hcl\n# Enable WAF managed rulesets for comprehensive protection\nresource \"cloudflare_ruleset\" | CODE |
| MEDIUM | …wler/providers/aws/services/ec2/lib/security_groups.py | 75 | # Combine IPv4 and IPv6 ranges to facilitate a single check loop. | COMMENT |
| MEDIUM | prowler/compliance/azure/cis_6.0_azure.json | 129 | "AuditProcedure": "Azure Databricks administrators can monitor and revoke personal access tokens within their | CODE |
| MEDIUM | prowler/compliance/azure/cis_4.0_azure.json | 986 | "AuditProcedure": "Azure Databricks administrators can monitor and revoke personal access tokens within their | CODE |
| MEDIUM | prowler/compliance/azure/cis_5.0_azure.json | 129 | "AuditProcedure": "Azure Databricks administrators can monitor and revoke personal access tokens within their | CODE |
| MEDIUM⚡ | prowler/compliance/m365/cis_7.0_m365.json | 593 | "AuditProcedure": "For this control, a Level 2 comprehensive attachment policy is defined as one that includes | CODE |
| LOW | prowler/lib/outputs/compliance/compliance_output.py | 45 | # Compliance reports are always CSV, so just use the last suffix | COMMENT |
| LOW | api/src/backend/tasks/jobs/scan.py | 2703 | # scan just set. Skip and let the newer scan's reset task do the work; if | STRING |
| MEDIUM⚡ | …/prowler-compliance/assets/audit_framework_template.py | 57 | # for a comprehensive mapping cheat sheet built from a 172-AR CCC audit. | COMMENT |
| MEDIUM | …_server/prowler_mcp_server/prowler_app/tools/muting.py | 303 | """Retrieve comprehensive details about a specific mute rule by its ID. | STRING |
| LOW | …_server/prowler_mcp_server/prowler_app/tools/muting.py | 432 | # No updates provided, just return current state | COMMENT |
| MEDIUM | …erver/prowler_mcp_server/prowler_app/tools/findings.py | 188 | """Retrieve comprehensive details about a specific security finding by its ID. | STRING |
| MEDIUM | …erver/prowler_mcp_server/prowler_app/tools/findings.py | 225 | # Return comprehensive fields including temporal metadata | COMMENT |
| MEDIUM | …p_server/prowler_mcp_server/prowler_app/tools/scans.py | 136 | """Retrieve comprehensive details about a specific scan by its ID. | STRING |
| MEDIUM | …rver/prowler_mcp_server/prowler_app/tools/resources.py | 184 | """Retrieve comprehensive details about a specific resource by its ID. | STRING |
| MEDIUM | …rver/prowler_mcp_server/prowler_app/models/findings.py | 160 | """Detailed security finding with comprehensive information for deep analysis. | STRING |
| MEDIUM | …ver/prowler_mcp_server/prowler_app/models/resources.py | 47 | """Detailed resource with comprehensive information for deep analysis. | STRING |
| MEDIUM | mcp_server/prowler_mcp_server/prowler_hub/server.py | 312 | """Retrieve comprehensive details about a specific security check by its ID. | STRING |
| MEDIUM | mcp_server/prowler_mcp_server/prowler_hub/server.py | 663 | """Retrieve comprehensive details about a specific compliance framework by its ID. | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …ler/providers/alibabacloud/services/rds/rds_service.py | 26 | def _set_region_id(request, regional_client) -> None: | CODE |
| LOW | prowler/providers/common/provider.py | 321 | def set_global_provider(global_provider: "Provider") -> None: | CODE |
| LOW | …roviders/okta/services/network/network_zone_service.py | 42 | def _set_retrieval_error(self, message: str) -> None: | CODE |
| LOW⚡ | contrib/aws/simulate_policy/simulate_policy_service.py | 11 | logger = logging.getLogger(__name__) | CODE |
| LOW | api/src/backend/tasks/jobs/attack_paths/__init__.py | 4 | __all__ = [ | CODE |
| LOW | api/src/backend/tasks/jobs/reports/__init__.py | 104 | __all__ = [ | CODE |
| LOW | api/src/backend/api/compliance.py | 11 | logger = logging.getLogger(__name__) | CODE |
| LOW | api/src/backend/api/health.py | 32 | logger = logging.getLogger(__name__) | CODE |
| LOW | api/src/backend/api/authentication.py | 20 | logger = logging.getLogger(__name__) | CODE |
| LOW | api/src/backend/api/sse/__init__.py | 13 | __all__ = ["BaseSSEViewSet", "make_channel_name"] | CODE |
| LOW | api/src/backend/api/attack_paths/__init__.py | 9 | __all__ = [ | CODE |
| LOW | api/src/backend/api/attack_paths/retryable_session.py | 10 | logger = logging.getLogger(__name__) | CODE |
| LOW | api/src/backend/api/attack_paths/ingest/__init__.py | 20 | __all__ = [ | CODE |
| LOW | api/src/backend/api/attack_paths/queries/__init__.py | 11 | __all__ = [ | CODE |
| LOW | api/src/backend/api/attack_paths/sink/neo4j.py | 31 | logger = logging.getLogger(__name__) | CODE |
| LOW | api/src/backend/api/attack_paths/sink/__init__.py | 21 | __all__ = [ | CODE |
| LOW | api/src/backend/api/attack_paths/sink/neptune.py | 45 | logger = logging.getLogger(__name__) | CODE |
| LOW | mcp_server/prowler_mcp_server/__init__.py | 12 | __all__ = ["__version__", "__author__", "__email__"] | CODE |
| LOW | …rver/prowler_mcp_server/prowler_app/models/__init__.py | 19 | __all__ = [ | CODE |
| LOW | mcp_server/prowler_mcp_server/lib/__init__.py | 3 | __all__ = ["logger"] | CODE |
| LOW | mcp_server/prowler_mcp_server/prowler_hub/__init__.py | 3 | __all__ = ["prowler_hub_mcp"] | CODE |
| LOW | mcp_server/tests/helpers/__init__.py | 32 | __all__ = [ | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | contrib/reverse-proxy/docker-compose.reverse-proxy.yml | 6 | # Usage: | COMMENT |
| LOW | .github/scripts/osv-scan.sh | 24 | # Usage: | COMMENT |
| LOW | skills/setup.sh | 9 | # Usage: | COMMENT |
| LOW | skills/prowler-compliance/assets/configs/ccc.yaml | 3 | # Usage: | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | util/compliance/compliance_mapper/README.md | 121 | export OPENAI_API_KEY="your-api-key-here" | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | ui/public/mockServiceWorker.js | 129 | async function handleRequest(event, requestId, requestInterceptedAt) { | CODE |
| LOW | …_content/awslambda_layer_no_secrets_in_content_test.py | 37 | def helper(): | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | api/src/backend/tasks/tests/test_attack_paths_scan.py | 1800 | CODE |