Prowler is the world’s most widely used open-source cloud security platform that automates security and compliance across any cloud environment.
This report presents the forensic synthetic code analysis of prowler-cloud/prowler, a Python project with 14,513 GitHub stars. SynthScan v2.0 examined 1,542,921 lines of code across 10577 source files, recording 17271 pattern matches distributed across 23 syntactic categories. The overall adjusted score of 13.6 places this repository in the Low AI signal band.
The scanner applied 160+ deterministic lexical heuristics, multi-line block detectors, abstract syntax tree depth profilers, and a cross-file Jaccard similarity matrix to construct a statistically normalised synthetic code estimate. All matches are individually weighted by severity coefficient and contextual multiplier before summation, and the resulting headline score is temporally discounted to account for the repository's development history relative to the commercial emergence of large language model coding tooling (November 2022 onward).
This chart maps the temporal evolution of the adjusted synthetic code score across successive scan runs. An upward trajectory indicates ongoing incorporation of AI-generated code or expanding LLM-assisted scaffolding; a stable or declining trajectory may reflect active human refactoring, code removal, or the adoption of stricter authorship policies. The dashed secondary line (right axis) independently tracks total raw pattern hit count, which can diverge from the normalised score when codebase size changes significantly between scans.
Classifies detected patterns by their diagnostic confidence and structural impact. CRITICAL patterns (coefficient 10) represent definitive synthetic signatures — hallucinated imports, explicit LLM attribution metadata — virtually never produced by human authors. HIGH (5) indicates strong structural tells such as cross-file repetition or cross-linguistic idioms. MEDIUM (2) covers recognisable conversational padding and AI-specific vocabulary. LOW (1) captures subtle indicators like tautological comments and generic boilerplate that require density to carry independent signal.
This horizontal bar chart decomposes the repository's raw synthetic code score by top-level directory, allowing you to pinpoint precisely which modules or components carry the highest AI authorship density. Directories with disproportionately high scores relative to their size warrant targeted manual review: concentrated AI signatures often trace back to mass-generated configuration layers, auto-ported test suites, LLM-scaffolded boilerplate classes, or entire subsystems authored under heavy copilot assistance. Use this view to prioritise your human code-review effort.
The scanner identified 17271 distinct pattern matches across 23 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a statistically significant AI authorship indicator. 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 diagnostic confidence level (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — comment-context matches receive a ×1.5 weight because LLMs systematically over-annotate. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier as dense clusters constitute far stronger evidence of synthetic authorship than isolated hits.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | ui/types/providers-table.ts | 110 | 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 | 217 | function getRelationshipProviderIds( | CODE |
| LOW | ui/app/(prowler)/providers/providers-page.utils.ts | 229 | function getOrganizationNodeParentId( | CODE |
| LOW | ui/app/(prowler)/providers/providers-page.utils.ts | 251 | function resolveProviderRowsAndIds({ | CODE |
| LOW | ui/app/(prowler)/providers/providers-page.utils.ts | 291 | function collectOrganizationRowProviderIds( | CODE |
| LOW | ui/app/(prowler)/providers/providers-page.utils.ts | 297 | function getOrganizationNodeRelationshipId( | CODE |
| LOW | ui/app/(prowler)/providers/providers-page.utils.ts | 308 | function buildOrganizationNodeRows({ | CODE |
| LOW | ui/app/(prowler)/providers/providers-page.utils.ts | 513 | function collectAssignedProviderIds(rows: ProvidersTableRow[]) { | CODE |
| LOW | ui/app/(prowler)/providers/providers-page.utils.ts | 532 | 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 | 90 | export function selectLighthouseChatCanSend( | CODE |
| LOW | ui/app/(prowler)/lighthouse/_lib/chat-store.ts | 107 | export function createLighthouseChatStore( | CODE |
| LOW | ui/app/(prowler)/lighthouse/_lib/chat-store.ts | 491 | 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 | 19 | export function getOrCreatePanelChatStore( | CODE |
| LOW | ui/app/(prowler)/lighthouse/_lib/panel-chat-store.ts | 19 | export function getOrCreatePanelChatStore( | CODE |
| LOW | ui/app/(prowler)/lighthouse/_lib/panel-chat-store.ts | 56 | export function flushPendingPanelChatMessage(): void { | CODE |
| LOW | ui/app/(prowler)/lighthouse/_lib/panel-chat-store.ts | 69 | export function getPanelChatStoreForSession( | CODE |
| LOW | ui/app/(prowler)/lighthouse/_lib/panel-chat-store.ts | 91 | 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 | …rowler)/lighthouse/_components/chat/message-bubble.tsx | 151 | function getAssistantPartGroupType( | CODE |
| LOW | …ler)/lighthouse/_components/chat/streaming-message.tsx | 45 | export function StreamingAssistantMessage({ | CODE |
| LOW | …ler)/lighthouse/_components/chat/streaming-message.tsx | 154 | function StreamingReconnectActivity() { | CODE |
| LOW | …ler)/lighthouse/_components/chat/streaming-message.tsx | 198 | function groupStreamingActivityItems( | CODE |
| LOW | …ighthouse/_components/ai-elements/chain-of-thought.tsx | 168 | export function ChainOfThoughtSearchResults({ | CODE |
| LOW | …ighthouse/_components/ai-elements/chain-of-thought.tsx | 182 | 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 | ui/components/layout/app-sidebar/navigation-config.ts | 84 | 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 |
| LOW | ui/components/scans/scans.utils.ts | 283 | export function appendPendingScheduleRowsToPage({ | CODE |
| LOW | ui/components/scans/scans.utils.ts | 341 | export function pickScheduleProviderFilters( | CODE |
| LOW | …components/scans/schedule/edit-scan-schedule-modal.tsx | 79 | function getBulkProviderTypeIconItems( | CODE |
| LOW | ui/components/scans/schedule/save-schedule.ts | 31 | export async function saveScheduleWithInitialScan({ | CODE |
| LOW | ui/components/providers/providers-accounts-table.tsx | 48 | function computeTestableProviderIds( | CODE |
| LOW | ui/components/providers/providers-accounts-table.tsx | 105 | function collectVisibleScheduleProviders(rows: ProvidersTableRow[]) { | CODE |
| LOW | ui/components/providers/providers-accounts-table.tsx | 127 | export function computeSelectedScheduleProviders( | CODE |
| LOW | ui/components/providers/providers-accounts-table.tsx | 172 | export function createScanConfigIdByProviderId( | CODE |
| 11881 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 | …_keys_admins/security_2sv_hardware_keys_admins_test.py | 0 | test no findings returned when the api fetch failed | STRING |
| HIGH | …ty/security_2sv_enforced/security_2sv_enforced_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 |
| 354 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 | 207 | 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 | 552 | except Exception: | CODE |
| LOW | prowler/__main__.py | 671 | except Exception as error: | CODE |
| LOW | prowler/config/config.py | 109 | except Exception as error: | CODE |
| LOW | prowler/config/config.py | 181 | except Exception as error: | CODE |
| LOW | prowler/config/config.py | 289 | except Exception: | CODE |
| LOW | prowler/config/config.py | 352 | except Exception as error: | CODE |
| LOW | prowler/config/config.py | 390 | except Exception as error: | CODE |
| MEDIUM | prowler/config/config.py | 274 | 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 |
| 1656 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | ui/types/organizations.ts | 1 | // ─── Const Enums ────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | ui/types/organizations.ts | 138 | // ─── Candidate Registration (shared wire shape) ─────────────────────────────── | COMMENT |
| MEDIUM | ui/types/organizations.ts | 150 | // ─── AWS Discovery Result (wire) ─────────────────────────────────────────────── | COMMENT |
| MEDIUM | ui/types/organizations.ts | 184 | // ─── GCP Discovery Result (wire) ─────────────────────────────────────────────── | COMMENT |
| MEDIUM | ui/types/organizations.ts | 223 | // ─── Normalized Hierarchy Model (store currency) ─────────────────────────────── | COMMENT |
| MEDIUM | ui/types/organizations.ts | 260 | // ─── Secret + Apply Payloads (per-type) ──────────────────────────────────────── | COMMENT |
| MEDIUM | ui/types/organizations.ts | 329 | // ─── JSON:API Resource Interfaces ───────────────────────────────────────────── | COMMENT |
| MEDIUM | ui/types/organizations.ts | 476 | // ─── 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 | 128 | // ── ClearFiltersButton stub ───────────────────────────────────────────────── | COMMENT |
| MEDIUM | …s/shadcn/table/data-table-filter-custom-batch.test.tsx | 133 | // ── Other component stubs ─────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …s/shadcn/table/data-table-filter-custom-batch.test.tsx | 150 | // ── Future E2E coverage ──────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …s/shadcn/table/data-table-filter-custom-batch.test.tsx | 156 | // ────────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …s/shadcn/table/data-table-filter-custom-batch.test.tsx | 183 | // ── Default / instant mode ─────────────────────────────────────────────── | COMMENT |
| MEDIUM | …s/shadcn/table/data-table-filter-custom-batch.test.tsx | 234 | // ── Batch mode ─────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …s/shadcn/table/data-table-filter-custom-batch.test.tsx | 333 | // ── hideClearButton ────────────────────────────────────────────────────── | 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 | 1449 | # =========================================================================== | COMMENT |
| MEDIUM⚡ | …ts/providers/external/test_dynamic_provider_loading.py | 1451 | # =========================================================================== | COMMENT |
| MEDIUM⚡ | …ts/providers/external/test_dynamic_provider_loading.py | 1516 | # =========================================================================== | COMMENT |
| MEDIUM⚡ | …ts/providers/external/test_dynamic_provider_loading.py | 1518 | # =========================================================================== | COMMENT |
| MEDIUM⚡ | …ts/providers/external/test_dynamic_provider_loading.py | 1869 | # =========================================================================== | COMMENT |
| 411 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| 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 | 125 | 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 | 537 | CODE | |
| LOW | …secretsmanager_has_restrictive_resource_policy_test.py | 797 | 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 | …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 | 456 | 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 | |
| LOW | …pc_subnet_different_az/vpc_subnet_different_az_test.py | 130 | CODE | |
| LOW | …t_for_ec2_enabled/vpc_endpoint_for_ec2_enabled_test.py | 41 | CODE | |
| LOW | …t_for_ec2_enabled/vpc_endpoint_for_ec2_enabled_test.py | 100 | CODE | |
| LOW | …vate_public/vpc_subnet_separate_private_public_test.py | 11 | CODE | |
| 1234 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 | 674 | # Create a base64 string that decodes to invalid UTF-8 | COMMENT |
| MEDIUM⚡ | tests/providers/iac/iac_provider_test.py | 824 | # Create a mock .git/HEAD file with main branch | COMMENT |
| MEDIUM⚡ | tests/providers/iac/iac_provider_test.py | 838 | # 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 | 287 | # Create a mock IAM user | COMMENT |
| MEDIUM⚡ | tests/providers/aws/aws_provider_test.py | 291 | # Create a mock IAM access keys | COMMENT |
| MEDIUM⚡ | tests/providers/aws/aws_provider_test.py | 1353 | # Create a mock IAM user | COMMENT |
| MEDIUM⚡ | tests/providers/aws/aws_provider_test.py | 1356 | # Create a mock IAM access keys | COMMENT |
| MEDIUM⚡ | tests/providers/aws/aws_provider_test.py | 1391 | # Create a mock IAM user | COMMENT |
| MEDIUM⚡ | tests/providers/aws/aws_provider_test.py | 1394 | # Create a mock IAM access keys | COMMENT |
| MEDIUM⚡ | tests/providers/aws/aws_provider_test.py | 1433 | # Create a mock IAM user | COMMENT |
| MEDIUM⚡ | tests/providers/aws/aws_provider_test.py | 1436 | # Create a mock IAM access keys | COMMENT |
| MEDIUM⚡ | tests/providers/aws/aws_provider_test.py | 1471 | # Create a mock IAM user | COMMENT |
| MEDIUM⚡ | tests/providers/aws/aws_provider_test.py | 1474 | # Create a mock IAM access keys | COMMENT |
| MEDIUM⚡ | tests/providers/aws/aws_provider_test.py | 1523 | # Create a mock IAM user | COMMENT |
| MEDIUM⚡ | tests/providers/aws/aws_provider_test.py | 1526 | # Create a mock IAM access keys | COMMENT |
| MEDIUM⚡ | tests/providers/aws/aws_provider_test.py | 1614 | # Create a mock IAM user | COMMENT |
| MEDIUM⚡ | tests/providers/aws/aws_provider_test.py | 1618 | # 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 |
| 201 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 | 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 | 290 | setup_session sets up an OCI session using the provided credentials. Args: - oci_config_fi | STRING |
| HIGH | prowler/providers/oraclecloud/oraclecloud_provider.py | 467 | set_identity sets the OCI provider identity information. Args: - session: The OCI session. | STRING |
| HIGH | prowler/providers/oraclecloud/oraclecloud_provider.py | 855 | 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 | 252 | Set up the Alibaba Cloud session. Args: role_arn: ARN of the RAM role to assume | STRING |
| HIGH | prowler/providers/alibabacloud/alibabacloud_provider.py | 428 | Validates the Alibaba Cloud credentials using STS GetCallerIdentity. Args: session: The Al | STRING |
| HIGH | prowler/providers/alibabacloud/alibabacloud_provider.py | 723 | Test the connection to Alibaba Cloud with the provided credentials. Args: access_key_id: A | STRING |
| HIGH | prowler/providers/common/provider.py | 808 | 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 | 604 | 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 | 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 |
| HIGH | prowler/providers/scaleway/scaleway_provider.py | 123 | Initialize the Scaleway API session. Credentials can be provided as arguments (for API/SDK use) or read | STRING |
| HIGH | prowler/providers/stackit/services/iaas/iaas_service.py | 151 | Centralized API call handler with authentication error detection. Args: api_function: The | STRING |
| HIGH | prowler/providers/aws/aws_provider.py | 598 | set_identity sets the AWS provider identity information. Args: - caller_identity: The AWS | STRING |
| HIGH | prowler/providers/aws/aws_provider.py | 637 | setup_session sets up an AWS session using the provided credentials. Args: - mfa: A boolea | STRING |
| 63 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 | 458 | # Check if Access denied message was logged (could be in warning or error calls) | COMMENT |
| LOW | …/github/services/repository/repository_service_test.py | 432 | # 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 | 821 | # Check if ENI was added to security group | COMMENT |
| LOW⚡ | tests/lib/utils/utils_test.py | 343 | os.chmod(temp_file.name, 0o644) # Set permissions to 644 (-rw-r--r--) | CODE |
| LOW⚡ | tests/lib/utils/utils_test.py | 353 | 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 | 528 | # Check if there are any FAIL findings | COMMENT |
| LOW | prowler/__main__.py | 1393 | # Check if -D was input | COMMENT |
| LOW | prowler/config/config.yaml | 510 | # 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 | 134 | # Check if the configuration is scanning exactly one explicit region. | COMMENT |
| LOW | prowler/providers/oraclecloud/oraclecloud_provider.py | 391 | # Check if config file exists | COMMENT |
| LOW | prowler/providers/oraclecloud/oraclecloud_provider.py | 401 | # Check if using security token authentication | COMMENT |
| LOW | prowler/providers/oraclecloud/oraclecloud_provider.py | 616 | # 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 | 109 | # Check if user can use API keys | COMMENT |
| 265 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 | 214 | await self.client.identity.conditional_access.policies.get() | CODE |
| CRITICAL | prowler/providers/m365/services/entra/entra_service.py | 603 | self.client.identity.conditional_access.policies.to_get_request_information() | CODE |
| CRITICAL | prowler/providers/m365/services/entra/entra_service.py | 1652 | await self.client.role_management.directory.role_definitions.by_unified_role_definition_id( | CODE |
| CRITICAL | prowler/providers/m365/services/entra/entra_service.py | 1324 | await self.client.role_management.directory.role_assignments.get() | STRING |
| CRITICAL | prowler/providers/m365/services/entra/entra_service.py | 1341 | 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/v1/serializers.py | 69 | from django.core.exceptions import ValidationError as DjangoValidationError | CODE |
| CRITICAL | api/src/backend/api/v1/views.py | 259 | 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 | 16 | 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/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 | 20 | 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 | 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 | |
| LOW | api/src/backend/tasks/jobs/reports/__init__.py | 26 | CODE | |
| LOW | api/src/backend/tasks/jobs/reports/__init__.py | 26 | CODE | |
| 137 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 | …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 | 53 | name: "Jane Doe", | CODE |
| LOW | ui/actions/auth/auth.test.ts | 85 | 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 | 1145 | "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 | …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 |
| LOW | …olicy_comprehensive_attachments_filter_applied_test.py | 180 | internal_sender_admin_address="admin@example.com", | CODE |
| LOW | …olicy_comprehensive_attachments_filter_applied_test.py | 251 | internal_sender_admin_address="admin@example.com", | CODE |
| LOW | …olicy_comprehensive_attachments_filter_applied_test.py | 259 | internal_sender_admin_address="admin@example.com", | CODE |
| LOW | …olicy_comprehensive_attachments_filter_applied_test.py | 329 | internal_sender_admin_address="admin@example.com", | CODE |
| LOW⚡ | …olicy_comprehensive_attachments_filter_applied_test.py | 382 | internal_sender_admin_address="admin@example.com", | CODE |
| 83 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 | 38 | # Step 1: Check MDE status | COMMENT |
| LOW | …derxdr_endpoint_privileged_user_exposed_credentials.py | 91 | # Step 2: MDE is active with devices - check for exposed credentials | COMMENT |
| LOW⚡ | prowler/providers/aws/services/s3/s3_service.py | 642 | # 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 | 240 | # Step 1: Check if provider already exists | COMMENT |
| 4 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | …/providers/m365/lib/powershell/m365_powershell_test.py | 217 | tenant_id="def-456 && whoami", | 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 | 618 | 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 | 70 | - 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 | .pre-commit-config.yaml | 1 | # Priority tiers (lower = runs first, same priority = concurrent): | COMMENT |
| LOW | ui/vitest.integration.setup.ts | 1 | // Global stylesheet (Tailwind + design tokens) is imported by the Next.js | COMMENT |
| LOW | ui/pnpm-workspace.yaml | 41 | # GHSA-96hv-2xvq-fx4p (memory exhaustion DoS from tiny fragments, high) + | COMMENT |
| LOW | ui/pnpm-workspace.yaml | 61 | "minimatch@>=10": "10.2.3" | COMMENT |
| LOW | ui/pnpm-workspace.yaml | 81 | minimumReleaseAge: 1440 | COMMENT |
| LOW | ui/pnpm-workspace.yaml | 101 | # msw: Copies mockServiceWorker.js into the directories listed in package.json's `msw.workerDirectory` (here: `public/ | COMMENT |
| LOW | …/query-builder/_components/graph/attack-path-graph.tsx | 261 | // once React Flow has applied the new layout (next animation frame). | 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/components/icons/compliance/IconCompliance.tsx | 21 | import OktaLogo from "./okta.svg"; | COMMENT |
| LOW | ui/actions/mute-rules/mute-rules.ts | 401 | // Note: Unmute functionality is not currently supported by the API. | COMMENT |
| LOW | ui/lib/integrations.ts | 1 | import { readBoolEnv, readEnv } from "@/lib/runtime-env"; | COMMENT |
| LOW | ui/lib/compliance/asd-essential-eight.tsx | 61 | // normalize to "1. Patch applications" so the leading clause number reads | 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 | 21 | max_ebs_snapshots: null | COMMENT |
| LOW | prowler/config/config.yaml | 41 | # "*": | COMMENT |
| LOW | prowler/config/config.yaml | 101 | # AWS VPC Configuration (vpc_endpoint_connections_trust_boundaries, vpc_endpoint_services_allowed_principals_trust_bou | COMMENT |
| LOW | prowler/config/config.yaml | 161 | ] | COMMENT |
| LOW | prowler/config/config.yaml | 401 | # AWS ELB Configuration | COMMENT |
| LOW | prowler/config/config.yaml | 461 | # Minimum number of days that a Redis cluster must have backups retention period | COMMENT |
| LOW | prowler/config/config.yaml | 481 | # as possible; this is not recommended unless you have confirmed the matched | COMMENT |
| LOW | prowler/config/config.yaml | 501 | # AWS Kinesis Configuration | COMMENT |
| LOW | prowler/config/config.yaml | 621 | mig_min_zones: 2 | COMMENT |
| LOW | prowler/config/config.yaml | 721 | stable_branches: | COMMENT |
| LOW | prowler/config/config.yaml | 761 | # Maximum acceptable Okta Admin Console app idle timeout, in minutes. | COMMENT |
| LOW | prowler/config/config.yaml | 781 | # limits per endpoint, so this is a deliberately simple global cap; lower it if | COMMENT |
| LOW | prowler/config/config.yaml | 801 | # before being flagged. Defaults to 7. | COMMENT |
| LOW | prowler/providers/m365/services/entra/entra_service.py | 1261 | sp_response = await self.client.service_principals.with_url( | 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 | 321 | COMMENT | |
| LOW | …r/providers/aws/lib/quick_inventory/quick_inventory.py | 141 | # "IAM": | COMMENT |
| LOW | …providers/aws/services/iam/lib/privilege_escalation.py | 1 | from py_iam_expand.actions import expand_actions | COMMENT |
| LOW | prowler/lib/check/external_tool_providers.py | 1 | # Providers that delegate scanning to an external tool (e.g. Trivy, promptfoo) | COMMENT |
| LOW | prowler/lib/check/utils.py | 61 | # Built-in checks from prowler.providers.{provider}.services. Gate | COMMENT |
| LOW | prowler/lib/outputs/compliance/cis/models.py | 321 | COMMENT | |
| LOW | prowler/lib/outputs/compliance/cis/models.py | 341 | # Location: str | COMMENT |
| LOW | contrib/k8s/helm/prowler-app/values.yaml | 61 | podAnnotations: {} | COMMENT |
| LOW | contrib/k8s/helm/prowler-app/values.yaml | 101 | # hosts: | COMMENT |
| LOW | contrib/k8s/helm/prowler-app/values.yaml | 221 | COMMENT | |
| LOW | contrib/k8s/helm/prowler-app/values.yaml | 261 | # hosts: | COMMENT |
| LOW | contrib/k8s/helm/prowler-app/values.yaml | 361 | # For more information checkout: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ | COMMENT |
| LOW | contrib/k8s/helm/prowler-app/values.yaml | 461 | # Annotations to add to the service account | COMMENT |
| LOW | contrib/k8s/helm/prowler-app/values.yaml | 481 | # readOnlyRootFilesystem: true | COMMENT |
| LOW | contrib/k8s/helm/prowler-app/values.yaml | 521 | # If enabled, it will create a Secret with the credentials. | COMMENT |
| LOW | contrib/k8s/helm/prowler-cli/Chart.yaml | 1 | apiVersion: v2 | COMMENT |
| LOW | contrib/k8s/helm/prowler-cli/Chart.yaml | 21 | # incremented each time you make changes to the application. Versions are not expected to | COMMENT |
| LOW | contrib/k8s/helm/prowler-api/Chart.yaml | 1 | apiVersion: v2 | COMMENT |
| 46 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 | 38 | # Step 1: Check MDE status | COMMENT |
| LOW | …derxdr_endpoint_privileged_user_exposed_credentials.py | 91 | # 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 | 240 | # Step 1: Check if provider already exists | COMMENT |
| LOW⚡ | …rver/prowler_mcp_server/prowler_app/tools/providers.py | 243 | # Step 2: Create or update provider | COMMENT |
| LOW⚡ | …rver/prowler_mcp_server/prowler_app/tools/providers.py | 251 | # Step 3: Handle credentials if provided and capture secret response | COMMENT |
| LOW⚡ | …rver/prowler_mcp_server/prowler_app/tools/providers.py | 258 | # Step 4: Test connection | COMMENT |
| LOW⚡ | …rver/prowler_mcp_server/prowler_app/tools/providers.py | 261 | # 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 | …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 | …ra_conditional_access_policy_no_exclusion_gaps_test.py | 26 | CODE | |
| LOW | …nal_access_policy_no_deleted_object_references_test.py | 19 | 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 | 97 | 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 | 278 | CODE | |
| LOW | prowler/providers/oraclecloud/oraclecloud_provider.py | 841 | 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 | 66 | CODE | |
| LOW | prowler/providers/alibabacloud/alibabacloud_provider.py | 242 | CODE | |
| LOW | prowler/providers/alibabacloud/alibabacloud_provider.py | 711 | CODE | |
| LOW | prowler/providers/image/image_provider.py | 70 | CODE | |
| LOW | prowler/providers/iac/iac_provider.py | 34 | 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 | 92 | CODE | |
| LOW | prowler/providers/aws/aws_provider.py | 105 | CODE | |
| LOW | prowler/providers/aws/aws_provider.py | 1353 | 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 | 1268 | CODE | |
| LOW | prowler/lib/outputs/jira/jira.py | 1965 | CODE | |
| LOW | prowler/lib/outputs/jira/jira.py | 2370 | CODE | |
| LOW | api/src/backend/tasks/jobs/threatscore_utils.py | 357 | CODE | |
| LOW | api/src/backend/tasks/jobs/report.py | 651 | CODE | |
| LOW | api/src/backend/tasks/jobs/reports/charts.py | 69 | CODE | |
| LOW | api/src/backend/tasks/jobs/reports/charts.py | 152 | CODE | |
| LOW | api/src/backend/tasks/jobs/reports/charts.py | 239 | CODE | |
| LOW | api/src/backend/tasks/jobs/reports/charts.py | 366 | CODE | |
| LOW | skills/prowler-provider/assets/provider.py | 36 | CODE | |
| LOW | …erver/prowler_mcp_server/prowler_app/tools/findings.py | 28 | CODE | |
| 6 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | ui/tests/scans/scans.spec.ts | 6 | // Scans E2E suite scaffold | 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 | …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⚡ | …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 | 73 | ├── 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 | 586 | "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 | 2680 | # 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 | 289 | """Retrieve comprehensive details about a specific mute rule by its ID. | STRING |
| LOW | …_server/prowler_mcp_server/prowler_app/tools/muting.py | 418 | # No updates provided, just return current state | COMMENT |
| MEDIUM | …erver/prowler_mcp_server/prowler_app/tools/findings.py | 187 | """Retrieve comprehensive details about a specific security finding by its ID. | STRING |
| MEDIUM | …erver/prowler_mcp_server/prowler_app/tools/findings.py | 224 | # Return comprehensive fields including temporal metadata | COMMENT |
| MEDIUM | …p_server/prowler_mcp_server/prowler_app/tools/scans.py | 134 | """Retrieve comprehensive details about a specific scan by its ID. | STRING |
| MEDIUM | …rver/prowler_mcp_server/prowler_app/tools/resources.py | 183 | """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 | 215 | """Retrieve comprehensive details about a specific security check by its ID. | STRING |
| MEDIUM | mcp_server/prowler_mcp_server/prowler_hub/server.py | 575 | """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 | 19 | 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 | 8 | __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 | 19 | __all__ = [ | CODE |
| LOW | api/src/backend/api/attack_paths/queries/__init__.py | 10 | __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 |
| 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 |
|---|---|---|---|---|
| MEDIUM | api/src/backend/tasks/tests/test_attack_paths_scan.py | 1800 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | ui/public/mockServiceWorker.js | 129 | async function handleRequest(event, requestId, requestInterceptedAt) { | CODE |