AI Slop Code RIsk Monitor

laramies/theHarvester

E-mails, subdomains and names Harvester - OSINT

20.7 Elevated pattern signal View on GitHub

Maintenance and Governance Review

This report summarizes scanner evidence for laramies/theHarvester, a Python project with 17,886 GitHub stars. SynthScan examined 88,660 lines of code across 295 source files, recording 1849 pattern matches distributed across 16 syntactic categories. The legacy adjusted pattern signal is 20.7 (Elevated pattern signal); it is not an authorship estimate.

Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.

20.7
Adjusted Signal
20.7
Raw Pattern Score
100%
Time Factor
2026-10-07
Last Push
17.9K
Stars
Python
Language
88.7K
Lines of Code
295
Files
1.8K
Pattern Hits
2026-10-12
Scan Date
0.06
HC Hit Rate

Risk Review · v3

Use each vector to guide manual verification of the underlying findings.

Cognitive Ownership Risk 54.6/100 · HIGH

Can maintainers explain intent, assumptions, and trade-offs? 1542 finding(s).

Hallucinated Dependency & Supply Chain Risk 7.4/100 · LOW

Are imports declared and package/API names verified? 124 finding(s).

Agent Over-Engineering Ratio 60.2/100 · HIGH

Are wrappers, guards, and repeated structures necessary? 1666 finding(s).

PR Review Velocity Impact 67.7/100 · HIGH

Which changes need focused human review? 1849 finding(s).

What These Metrics Mean

Adjusted Signal
Legacy pattern score normalized per 1,000 scanned lines and multiplied by the repository-level time factor. It is not an estimate of AI authorship.
Raw Pattern Score
Sum of severity- and context-weighted pattern findings before applying the time factor.
Time Factor
A coarse multiplier based on repository last-push metadata. It does not identify when individual code was written.
Pattern Hits
Count of configured pattern findings. Review each location and surrounding code before acting.
HC Hit Rate
High- and critical-severity findings per scanned file. Severity is a configured detector weight, not proof of a vulnerability or authorship.
Lines / Files
Scan coverage denominators used by the legacy normalized score.

Pattern-Signal History

This chart tracks the legacy adjusted pattern score across scan runs. Changes can reflect source changes, scan coverage, or detector/scoring versions; they do not measure AI adoption or prove that a team refactored code. Compare runs only when their scoring versions are compatible. The dashed line tracks the raw pattern-hit count.

Severity Breakdown

Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.

CRITICAL 2HIGH 15MEDIUM 31LOW 1801

Directory Score Breakdown

This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.

Pattern Findings

The scanner identified 1849 distinct pattern matches across 16 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.

Reading the findings table: The Severity column indicates the configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.

Hyper-Verbose Identifiers1482 hits · 1334 pts
SeverityFileLineSnippetContext
LOWtests/test_hackertarget_apikey.py11 def test_routes_include_subdomains_and_ips(self):CODE
LOWtests/test_hackertarget_apikey.py15 async def test_do_search_with_apikey(self, monkeypatch):CODE
LOWtests/test_hackertarget_apikey.py55 async def test_do_search_without_apikey(self, monkeypatch):CODE
LOWtests/test_hackertarget_apikey.py85 async def test_http_failure_is_reported(self, monkeypatch, status, execution_status, stop_reason):CODE
LOWtests/test_hackertarget_apikey.py106 async def test_empty_or_malformed_success_is_reported(self, monkeypatch, body: object):CODE
LOWtests/test_hackertarget_apikey.py126 async def test_out_of_scope_rows_do_not_contribute_ips(self, monkeypatch):CODE
LOWtests/test_hackertarget_apikey.py146 async def test_no_records_sentinel_is_a_valid_empty_result(self, monkeypatch):CODE
LOWtests/test_hackertarget_apikey.py172 async def test_endpoint_failure_preserves_other_results(self, monkeypatch, failed_response, stop_reason):CODE
LOWtests/test_hackertarget_apikey.py192 async def test_valid_empty_endpoint_makes_other_failure_partial(self, monkeypatch):CODE
LOWtests/test_hackertarget_apikey.py212 async def test_malformed_rows_preserve_valid_results_as_partial(self, monkeypatch):CODE
LOWtests/test_hackertarget_apikey.py232 async def test_hyphenated_domain_still_uses_reverse_dns(self, monkeypatch):CODE
LOWtests/test_hackertarget_apikey.py267 async def test_address_query_does_not_trigger_real_time_reverse_dns(self, monkeypatch, target):CODE
LOWtests/test_hackertarget_apikey.py282 async def test_cancellation_propagates(self, monkeypatch):CODE
LOWtests/test_screenshot.py41async def test_reachable_targets_reuses_one_session_and_bounds_empty_responses(CODE
LOWtests/test_screenshot.py65async def test_reachable_targets_retains_completed_http_error_responses(CODE
LOWtests/test_screenshot.py93async def test_reachable_targets_cancellation_closes_session_and_leaves_no_tasks(CODE
LOWtests/test_screenshot.py141async def test_capture_targets_reuses_one_browser_and_bounds_isolated_contexts(CODE
LOWtests/test_screenshot.py240async def test_capture_targets_closes_resources_after_each_failure_stage(CODE
LOWtests/test_screenshot.py305async def test_capture_targets_cancellation_closes_resources_and_leaves_no_tasks(CODE
LOWtests/test_screenshot.py359async def test_capture_cleanup_preserves_cancellation_and_attempts_every_resource(CODE
LOWtests/test_screenshot.py400def test_screenshot_output_separator_matches_platform(CODE
LOWtests/test_screenshot.py417def test_screenshot_path_uses_the_target_host_and_port(tmp_path: Path, target: str, filename: str) -> None:CODE
LOWtests/test_screenshot.py431async def test_visit_prefers_https_and_normalizes_the_target(CODE
LOWtests/test_screenshot.py457async def test_visit_falls_back_to_http_when_https_is_unreachable(monkeypatch: pytest.MonkeyPatch) -> None:CODE
LOWtests/test_screenshot.py488async def test_take_screenshot_normalizes_the_target(CODE
LOWtests/test_screenshot.py517async def test_take_screenshot_can_name_the_artifact_for_the_authorized_subject(CODE
LOWtests/test_screenshot.py545async def test_screenshot_visit_uses_an_http_proxy(monkeypatch) -> None:CODE
LOWtests/test_screenshot.py567async def test_screenshot_capture_is_owner_only(tmp_path, monkeypatch) -> None:CODE
LOWtests/test_security.py15 def test_api_does_not_enable_cross_origin_requests(self):CODE
LOWtests/test_security.py24 def test_sanitize_for_xml_escapes_special_characters(self):CODE
LOWtests/test_security.py42 def test_sanitize_for_xml_prevents_xml_entity_injection(self):CODE
LOWtests/test_security.py57 def test_command_line_args_are_sanitized_in_xml_output(self):CODE
LOWtests/test_security.py84 def test_api_does_not_expose_traceback_in_error_responses(self, client):CODE
LOWtests/test_security.py95 def test_error_responses_do_not_leak_internal_paths(self, client, tmp_path, monkeypatch):CODE
LOWtests/test_security.py124 def test_debug_mode_does_not_expose_sensitive_info(self, client, monkeypatch):CODE
LOW⚡tests/test_security.py148 def test_api_fails_closed_without_configured_api_key(self, client, monkeypatch):CODE
LOW⚡tests/test_security.py156 def test_api_key_can_be_read_from_a_docker_secret_file(self, client, tmp_path, monkeypatch):CODE
LOW⚡tests/test_security.py166 def test_api_rejects_missing_or_invalid_api_key(self, client, monkeypatch):CODE
LOW⚡tests/test_security.py175 def test_api_does_not_expose_internal_errors(self, monkeypatch):CODE
LOWtests/test_security.py197 def test_sanitize_filename_removes_path_components(self):CODE
LOWtests/test_security.py222 def test_sanitize_filename_removes_dangerous_characters(self):CODE
LOWtests/test_security.py247 def test_sanitize_filename_prevents_hidden_files(self):CODE
LOWtests/test_security.py258 def test_filename_sanitization_preserves_safe_filenames(self):CODE
LOWtests/test_security.py274 def test_path_traversal_in_file_operations(self):CODE
LOWtests/test_security.py297 def test_no_hardcoded_secrets_in_code(self):CODE
LOWtests/test_security.py329 def test_sensitive_endpoints_require_validation(self, monkeypatch, tmp_path):CODE
LOWtests/conftest.py44def provider_contract_sources(request: pytest.FixtureRequest) -> tuple[str, ...]:CODE
LOWtests/conftest.py61def pytest_collection_modifyitems(config: pytest.Config, items: list[pytest.Item]) -> None:CODE
LOWtests/conftest.py140def _guarded_gethostbyname_ex(host: str) -> tuple[str, list[str], list[str]]:CODE
LOWtests/test_logging.py24def test_import_does_not_configure_application_logging() -> None:CODE
LOWtests/test_logging.py44def test_operator_output_uses_stdout_without_verbose_logging() -> None:CODE
LOWtests/test_logging.py58def test_diagnostics_use_stderr_only_when_verbose() -> None:CODE
LOWtests/test_logging.py77def test_verbose_logging_restores_the_package_level() -> None:CODE
LOWtests/test_logging.py98def test_verbose_logging_does_not_overwrite_a_later_host_level() -> None:CODE
LOWtests/test_logging.py116def test_verbose_enables_info_diagnostics(tmp_path: Path) -> None:CODE
LOWtests/test_logging.py149def test_operator_output_flushes_the_current_stdout(monkeypatch) -> None:STRING
LOWtests/test_logging.py169def test_cli_preserves_host_logging_unless_verbose_is_requested(tmp_path: Path) -> None:STRING
LOWtests/runtime_helpers.py40def runtime_with_process_factory(process_factory: ProcessFactory) -> ApiRuntime:CODE
LOWtests/test_harvestview_log_level.py11def test_invalid_log_level_is_rejected_before_server_start(monkeypatch, capsys, option, value):CODE
LOWtests/test_harvestview_log_level.py29def test_valid_log_levels_remain_case_insensitive(monkeypatch, level, uppercase):CODE
1422 more matches not shown…
Excessive Try-Catch Wrapping106 hits · 114 pts
SeverityFileLineSnippetContext
MEDIUMtheHarvester/__main__.py2223def entry_point() -> None:CODE
LOWtheHarvester/__main__.py685 except Exception as error:CODE
LOWtheHarvester/__main__.py804 except Exception as error:CODE
LOWtheHarvester/__main__.py855 except Exception as error:CODE
LOWtheHarvester/__main__.py1052 except Exception as error:CODE
LOWtheHarvester/__main__.py1245 except Exception as error:CODE
LOWtheHarvester/__main__.py1581 except Exception as error:CODE
LOWtheHarvester/__main__.py1746 except Exception as ee:CODE
LOWtheHarvester/__main__.py1803 except Exception as init_error:CODE
LOWtheHarvester/__main__.py1838 except Exception as ip_error:CODE
LOWtheHarvester/__main__.py1856 except Exception as action_error:CODE
LOWtheHarvester/__main__.py1941 except Exception:CODE
LOWtheHarvester/__main__.py2107 except Exception as error:CODE
LOWtheHarvester/__main__.py2230 except Exception as error_entry_point:CODE
LOWtheHarvester/screenshot/screenshot.py57 except Exception as e:CODE
LOWtheHarvester/screenshot/screenshot.py90 except Exception as e:CODE
LOWtheHarvester/screenshot/screenshot.py199 except Exception as error:CODE
MEDIUMtheHarvester/screenshot/screenshot.py47def verify_path(self) -> bool:CODE
LOWtheHarvester/discovery/urlscan.py187 except Exception as error:CODE
LOWtheHarvester/discovery/fofa.py32 except Exception as error:CODE
LOWtheHarvester/discovery/fofa.py127 except Exception:CODE
MEDIUMtheHarvester/discovery/fofa.py29def _get_api_credentials(self) -> tuple[str, str]:CODE
LOWtheHarvester/discovery/searchhunterhow.py102 except Exception:CODE
LOWtheHarvester/discovery/certspottersearch.py121 except Exception:CODE
LOWtheHarvester/discovery/search_dnsdumpster.py35 except Exception as error:CODE
LOWtheHarvester/discovery/bevigil.py78 except Exception:CODE
LOWtheHarvester/discovery/censysearch.py94 except Exception:CODE
LOWtheHarvester/discovery/projectdiscovery.py23 except Exception as error:CODE
LOWtheHarvester/discovery/projectdiscovery.py89 except Exception as error:CODE
LOWtheHarvester/discovery/projectdiscovery.py94 except Exception as error:CODE
MEDIUMtheHarvester/discovery/projectdiscovery.py20def _get_api_key(self) -> str:CODE
MEDIUMtheHarvester/discovery/projectdiscovery.py29def do_search(self) -> SourceExecutionReport | None:CODE
LOWtheHarvester/discovery/mojeek.py25 except Exception:CODE
LOWtheHarvester/discovery/thc.py65 except Exception as e:CODE
LOWtheHarvester/discovery/shodanct.py31 except Exception as error:CODE
LOWtheHarvester/discovery/crtsh.py52 except Exception as e:CODE
LOWtheHarvester/discovery/fullhuntsearch.py121 except Exception as error:CODE
LOWtheHarvester/discovery/fullhuntsearch.py457 except Exception as error:CODE
LOWtheHarvester/discovery/virustotal.py69 except Exception:CODE
LOWtheHarvester/discovery/rapiddns.py35 except Exception as error:CODE
LOWtheHarvester/discovery/rapiddns.py84 except Exception:CODE
MEDIUMtheHarvester/discovery/rapiddns.py22def do_search(self) -> SourceExecutionReport | None:CODE
LOWtheHarvester/discovery/baidusearch.py80 except Exception:CODE
LOWtheHarvester/discovery/dnssearch.py110 except Exception:CODE
LOWtheHarvester/discovery/dnssearch.py135 except Exception as error:CODE
LOWtheHarvester/discovery/securityscorecard.py146 except Exception:CODE
LOWtheHarvester/discovery/zoomeyesearch.py214 except Exception:CODE
LOWtheHarvester/discovery/githubcode.py55 except Exception as e:CODE
LOWtheHarvester/discovery/githubcode.py88 except Exception as e:CODE
LOWtheHarvester/discovery/githubcode.py104 except Exception as e:CODE
LOWtheHarvester/discovery/githubcode.py130 except Exception as e:CODE
LOW⚡theHarvester/discovery/githubcode.py197 except Exception as e:CODE
LOW⚡theHarvester/discovery/githubcode.py204 except Exception as e:CODE
LOW⚡theHarvester/discovery/githubcode.py213 except Exception as e:CODE
LOW⚡theHarvester/discovery/githubcode.py221 except Exception as e:CODE
MEDIUMtheHarvester/discovery/githubcode.py209def get_emails(self):CODE
MEDIUMtheHarvester/discovery/githubcode.py217def get_hostnames(self):CODE
LOWtheHarvester/discovery/subdomainfinderc99.py67 except Exception:CODE
LOWtheHarvester/discovery/subdomainfinderc99.py84 except Exception:CODE
LOWtheHarvester/discovery/builtwith.py179 except Exception:CODE
46 more matches not shown…
Unused Imports75 hits · 70 pts
SeverityFileLineSnippetContext
LOWtests/test_screenshot.py1CODE
LOWtests/conftest.py1CODE
LOWtests/test_logging.py1CODE
LOWtests/runtime_helpers.py1CODE
LOWtests/test_harness.py1CODE
LOWtests/test_workflow_contract.py1CODE
LOWtests/test_no_hosts.py1CODE
LOWtests/test_release_artifacts.py1CODE
LOWtests/test_readme.py1CODE
LOWtests/test_bravesearch.py1CODE
LOWtests/discovery/test_onyphe.py1CODE
LOWtests/discovery/test_urlscan.py1CODE
LOWtests/discovery/test_gitlabsearch.py1CODE
LOWtests/discovery/test_fofa.py1CODE
LOWtests/discovery/test_dnsdb.py1CODE
LOWtests/discovery/test_censys.py1CODE
LOWtests/discovery/test_thc.py12CODE
LOWtests/discovery/test_netlas.py1CODE
LOWtests/discovery/test_securitytrails.py1CODE
LOWtests/discovery/test_hudsonrock.py1CODE
LOWtests/discovery/test_githubcode_contract.py1CODE
LOWtests/discovery/test_securityscorecard.py1CODE
LOWtests/discovery/test_whoisxml.py1CODE
LOWtests/discovery/test_sourcegraph.py1CODE
LOWtests/discovery/test_virustotal.py1CODE
LOWtests/lib/test_configuration_contract.py1CODE
LOWtests/lib/test_schedules.py1CODE
LOWtests/lib/test_recursive_dns.py1CODE
LOWtests/lib/test_core.py1CODE
LOWtests/lib/test_run_backend.py1CODE
LOWtests/lib/test_api_v1.py1CODE
LOWtests/lib/test_output.py1CODE
LOWtests/lib/test_runtime_services.py1CODE
LOWtests/lib/test_harvestview_ui.py1CODE
LOWtests/lib/test_dns_consensus.py1CODE
LOWtests/lib/test_target_identity.py1CODE
LOWtests/lib/test_source_runner.py1CODE
LOWtests/lib/test_routeviews.py1CODE
LOWtests/e2e/conftest.py1CODE
LOWtests/e2e/test_harvestview.py1CODE
LOWtheHarvester/saved_run_report.py1CODE
LOWtheHarvester/discovery/virustotal.py1CODE
LOWtheHarvester/discovery/baidusearch.py1CODE
LOWtheHarvester/discovery/securityscorecard.py1CODE
LOWtheHarvester/discovery/zoomeyesearch.py1CODE
LOWtheHarvester/discovery/securitytrailssearch.py1CODE
LOWtheHarvester/discovery/jsmon.py1CODE
LOWtheHarvester/discovery/yahoosearch.py1CODE
LOWtheHarvester/discovery/whoisxml.py1CODE
LOWtheHarvester/discovery/takeover.py1CODE
LOWtheHarvester/discovery/netlas.py1CODE
LOWtheHarvester/lib/hostname_comparison.py1CODE
LOWtheHarvester/lib/target_identity.py1CODE
LOWtheHarvester/lib/enumeration.py1CODE
LOWtheHarvester/lib/network_evidence.py1CODE
LOWtheHarvester/lib/cancellation.py1CODE
LOWtheHarvester/lib/takeover_evidence.py1CODE
LOWtheHarvester/lib/asn_attribution.py1CODE
LOWtheHarvester/lib/recursive_dns.py1CODE
LOWtheHarvester/lib/dns_consensus.py3CODE
15 more matches not shown…
Empty Error Handlers14 hits · 70 pts
SeverityFileLineSnippetContext
HIGHtheHarvester/theHarvester.py34except ModuleNotFoundError:CODE
HIGHtheHarvester/theHarvester.py27except ModuleNotFoundError:CODE
HIGHtheHarvester/discovery/dnssearch.py204except StopIteration:CODE
HIGHtheHarvester/discovery/takeover.py144except ValueError:CODE
HIGHtheHarvester/discovery/gitlabsearch.py163except Exception:CODE
HIGHtheHarvester/lib/target_identity.py38except ValueError:CODE
HIGHtheHarvester/lib/target_identity.py34except ValueError:CODE
HIGHtheHarvester/lib/hostnames.py14except ValueError:CODE
HIGHtheHarvester/lib/source_runner.py397except Exception:CODE
HIGHtheHarvester/lib/source_runner.py430except Exception:CODE
HIGHtheHarvester/lib/api/schedule_service.py329except TimeoutError:CODE
HIGHtheHarvester/lib/api/run_projection.py99except ValueError:CODE
HIGHtheHarvester/lib/api/run_models.py266except ValueError:CODE
HIGHtheHarvester/lib/api/run_evidence.py278except ValueError:CODE
Decorative Section Separators14 hits · 63 pts
SeverityFileLineSnippetContext
MEDIUM⚡tests/discovery/test_thc.py117# =============================================================================COMMENT
MEDIUM⚡tests/discovery/test_thc.py119# =============================================================================COMMENT
MEDIUM⚡tests/discovery/test_thc.py155# =============================================================================COMMENT
MEDIUM⚡tests/discovery/test_thc.py157# =============================================================================COMMENT
MEDIUM⚡tests/discovery/test_thc.py329# =============================================================================COMMENT
MEDIUM⚡tests/discovery/test_thc.py331# =============================================================================COMMENT
MEDIUM⚡tests/discovery/test_thc.py376# =============================================================================COMMENT
MEDIUM⚡tests/discovery/test_thc.py378# =============================================================================COMMENT
MEDIUM⚡tests/discovery/test_thc.py401# =============================================================================COMMENT
MEDIUM⚡tests/discovery/test_thc.py403# =============================================================================COMMENT
MEDIUM⚡tests/discovery/test_thc.py443# =============================================================================COMMENT
MEDIUM⚡tests/discovery/test_thc.py445# =============================================================================COMMENT
MEDIUM⚡tests/discovery/test_thc.py483# =============================================================================COMMENT
MEDIUM⚡tests/discovery/test_thc.py485# =============================================================================COMMENT
Deep Nesting50 hits · 50 pts
SeverityFileLineSnippetContext
LOWtests/discovery/test_commoncrawl.py11CODE
LOWtests/discovery/test_commoncrawl.py55CODE
LOWtests/discovery/test_commoncrawl.py20CODE
LOWtests/discovery/test_commoncrawl.py69CODE
LOWtests/discovery/test_provider_session_lifecycle.py196CODE
LOWtheHarvester/saved_run_report.py111CODE
LOWtheHarvester/saved_run_report.py307CODE
LOWtheHarvester/screenshot/screenshot.py218CODE
LOWtheHarvester/screenshot/screenshot.py229CODE
LOWtheHarvester/discovery/urlscan.py48CODE
LOWtheHarvester/discovery/fofa.py38CODE
LOWtheHarvester/discovery/searchhunterhow.py37CODE
LOWtheHarvester/discovery/certspottersearch.py26CODE
LOWtheHarvester/discovery/bevigil.py34CODE
LOWtheHarvester/discovery/projectdiscovery.py29CODE
LOWtheHarvester/discovery/leaklookup.py51CODE
LOWtheHarvester/discovery/thc.py29CODE
LOWtheHarvester/discovery/crtsh.py18CODE
LOWtheHarvester/discovery/fullhuntsearch.py424CODE
LOWtheHarvester/discovery/virustotal.py24CODE
LOWtheHarvester/discovery/virustotal.py77CODE
LOWtheHarvester/discovery/rapiddns.py22CODE
LOWtheHarvester/discovery/securityscorecard.py76CODE
LOWtheHarvester/discovery/zoomeyesearch.py133CODE
LOWtheHarvester/discovery/githubcode.py138CODE
LOWtheHarvester/discovery/criminalip.py194CODE
LOWtheHarvester/discovery/hackertarget.py28CODE
LOWtheHarvester/discovery/jsmon.py30CODE
LOWtheHarvester/discovery/onyphe.py118CODE
LOWtheHarvester/discovery/takeover.py48CODE
LOWtheHarvester/discovery/waybackarchive.py59CODE
LOWtheHarvester/discovery/waybackarchive.py108CODE
LOWtheHarvester/discovery/gitlabsearch.py116CODE
LOWtheHarvester/discovery/gitlabsearch.py187CODE
LOWtheHarvester/lib/hostname_comparison.py103CODE
LOWtheHarvester/lib/recursive_dns.py92CODE
LOWtheHarvester/lib/completed_result.py79CODE
LOWtheHarvester/lib/completed_result.py524CODE
LOWtheHarvester/lib/dns_consensus.py83CODE
LOWtheHarvester/lib/source_runner.py203CODE
LOWtheHarvester/lib/source_runner.py303CODE
LOWtheHarvester/lib/source_runner.py451CODE
LOWtheHarvester/lib/source_runner.py473CODE
LOWtheHarvester/lib/api/schedule_service.py121CODE
LOWtheHarvester/lib/api/schedule_service.py169CODE
LOWtheHarvester/lib/api/schedule_service.py332CODE
LOWtheHarvester/lib/api/api.py28CODE
LOWtheHarvester/lib/api/api.py32CODE
LOWtheHarvester/lib/api/run_models.py530CODE
LOWtheHarvester/lib/api/run_evidence.py70CODE
Modern Structural Boilerplate45 hits · 45 pts
SeverityFileLineSnippetContext
LOWtheHarvester/__main__.py90logger = logging.getLogger(__name__)CODE
LOWtheHarvester/screenshot/screenshot.py23logger = logging.getLogger(__name__)CODE
LOWtheHarvester/discovery/urlscan.py13logger = logging.getLogger(__name__)CODE
LOWtheHarvester/discovery/rocketreach.py9logger = logging.getLogger(__name__)CODE
LOWtheHarvester/discovery/huntersearch.py8logger = logging.getLogger(__name__)CODE
LOWtheHarvester/discovery/certspottersearch.py7logger = logging.getLogger(__name__)CODE
LOWtheHarvester/discovery/otxsearch.py9logger = logging.getLogger(__name__)CODE
LOWtheHarvester/discovery/search_dnsdumpster.py10logger = logging.getLogger(__name__)CODE
LOWtheHarvester/discovery/projectdiscovery.py7logger = logging.getLogger(__name__)CODE
LOWtheHarvester/discovery/leaklookup.py8logger = logging.getLogger(__name__)CODE
LOWtheHarvester/discovery/mojeek.py8logger = logging.getLogger(__name__)CODE
LOWtheHarvester/discovery/thc.py11logger = logging.getLogger(__name__)CODE
LOWtheHarvester/discovery/shodanct.py8logger = logging.getLogger(__name__)CODE
LOWtheHarvester/discovery/crtsh.py7logger = logging.getLogger(__name__)CODE
LOWtheHarvester/discovery/fullhuntsearch.py12logger = logging.getLogger(__name__)CODE
LOWtheHarvester/discovery/rapiddns.py11logger = logging.getLogger(__name__)CODE
LOWtheHarvester/discovery/dnssearch.py22logger = logging.getLogger(__name__)CODE
LOWtheHarvester/discovery/githubcode.py14logger = logging.getLogger(__name__)CODE
LOWtheHarvester/discovery/haveibeenpwned.py6logger = logging.getLogger(__name__)CODE
LOWtheHarvester/discovery/criminalip.py13logger = logging.getLogger(__name__)CODE
LOWtheHarvester/discovery/robtex.py10logger = logging.getLogger(__name__)CODE
LOWtheHarvester/discovery/arquivo.py10logger = logging.getLogger(__name__)CODE
LOWtheHarvester/discovery/onyphe.py14logger = logging.getLogger(__name__)CODE
LOWtheHarvester/discovery/subdomaincenter.py7logger = logging.getLogger(__name__)CODE
LOWtheHarvester/discovery/waybackarchive.py8logger = logging.getLogger(__name__)CODE
LOWtheHarvester/discovery/leakix.py16logger = logging.getLogger(__name__)CODE
LOWtheHarvester/discovery/sherlockeye.py12logger = logging.getLogger(__name__)CODE
LOWtheHarvester/discovery/dnsdb.py12logger = logging.getLogger(__name__)CODE
LOWtheHarvester/discovery/api_endpoints.py21logger = logging.getLogger(__name__)CODE
LOWtheHarvester/discovery/shodan_internetdb.py12logger = logging.getLogger(__name__)CODE
LOWtheHarvester/discovery/pentesttools.py10logger = logging.getLogger(__name__)CODE
LOWtheHarvester/discovery/commoncrawl.py10logger = logging.getLogger(__name__)CODE
LOWtheHarvester/discovery/hibpverified.py8logger = logging.getLogger(__name__)CODE
LOWtheHarvester/discovery/tombasearch.py8logger = logging.getLogger(__name__)CODE
LOWtheHarvester/discovery/search_dehashed.py16logger = logging.getLogger(__name__)CODE
LOWtheHarvester/discovery/gitlabsearch.py11logger = logging.getLogger(__name__)CODE
LOWtheHarvester/discovery/windvane.py15logger = logging.getLogger(__name__)CODE
LOWtheHarvester/discovery/windvane.py233 def set_api_key(self, api_key: str) -> None:CODE
LOWtheHarvester/discovery/shodansearch.py21logger = logging.getLogger(__name__)CODE
LOWtheHarvester/lib/database.py77logger = logging.getLogger(__name__)CODE
LOWtheHarvester/lib/__init__.py1__all__ = ['hostchecker']CODE
LOWtheHarvester/lib/core.py32logger = logging.getLogger(__name__)CODE
LOWtheHarvester/lib/virtual_host.py20logger = logging.getLogger(__name__)CODE
LOWtheHarvester/lib/source_runner.py87logger = logging.getLogger(__name__)CODE
LOWtheHarvester/lib/api/schedule_store.py562 async def set_dispatch_state(self, run_id: str, state: DispatchState, error: str | None = None) -> None:CODE
Fake / Example Data46 hits · 43 pts
SeverityFileLineSnippetContext
LOWtests/test_mojeek.py173 assert await search.get_emails() == {'admin@example.com'}CODE
LOWtests/test_mojeek.py317 assert await search.get_emails() == {'admin@example.com'}CODE
LOWtests/test_myparser.py14 ('Example.COM.', {'admin@example.com', 'lead@sub.example.com', 'owner@www.example.com'}),CODE
LOWtests/discovery/test_intelxsearch.py116 assert await search.get_emails() == ['admin@example.com']CODE
LOWtests/discovery/test_duckduckgo.py67 assert await search.get_emails() == {'admin@example.com'}STRING
LOWtests/discovery/test_search_dehashed.py35 {'email': 'admin@example.com', 'ip_address': '2001:0db8::1', 'database_name': 'private-breach'} for _ in range(2CODE
LOW⚡tests/discovery/test_search_dehashed.py64 assert await search.get_emails() == {'user@example.com', 'admin@example.com'}CODE
LOW⚡tests/discovery/test_search_dehashed.py64 assert await search.get_emails() == {'user@example.com', 'admin@example.com'}CODE
LOWtests/discovery/test_censys.py52 'parsed': {'subject': {'email_address': ['admin@example.com']}},CODE
LOWtests/discovery/test_censys.py130 assert await search.get_emails() == {'admin@example.com', 'ops@example.com'}CODE
LOWtests/discovery/test_rapiddns.py149 return {'user@example.com'}STRING
LOW⚡tests/discovery/test_rapiddns.py351 assert rest_results[7] == ['user@example.com']STRING
LOW⚡tests/discovery/test_rapiddns.py358 assert ('email', 'user@example.com') in completed_results[1].resultsSTRING
LOW⚡tests/discovery/test_rapiddns.py360 ('dehashed', 'email', 'user@example.com'),STRING
LOWtests/discovery/test_zoomeyesearch.py33 'banner': 'admin@example.com',CODE
LOWtests/discovery/test_zoomeyesearch.py67 assert await search.get_emails() == {'admin@example.com'}CODE
LOWtests/discovery/test_githubcode_contract.py114 assert await search.get_emails() == {'admin@example.com'}CODE
LOWtests/discovery/test_brave.py93 assert await search.get_emails() == {'admin@example.com'}CODE
LOWtests/discovery/test_builtwith.py27 monkeypatch.setattr(builtwith.Core, 'builtwith_key', lambda: 'dummy-key')CODE
LOWtests/discovery/test_builtwith.py81 'Authorization': 'API dummy-key',CODE
LOWtests/discovery/test_builtwith.py97 monkeypatch.setattr(builtwith.Core, 'builtwith_key', lambda: 'dummy-key')CODE
LOWtests/discovery/test_builtwith.py129 monkeypatch.setattr(builtwith.Core, 'builtwith_key', lambda: 'dummy-key')CODE
LOWtests/discovery/test_builtwith.py181 monkeypatch.setattr(builtwith.Core, 'builtwith_key', lambda: 'dummy-key')CODE
LOWtests/discovery/test_builtwith.py198 monkeypatch.setattr(builtwith.Core, 'builtwith_key', lambda: 'dummy-key')CODE
LOWtests/discovery/test_builtwith.py242 monkeypatch.setattr(builtwith.Core, 'builtwith_key', lambda: 'dummy-key')CODE
LOWtests/discovery/test_builtwith.py258 monkeypatch.setattr(builtwith.Core, 'builtwith_key', lambda: 'dummy-key')CODE
LOWtests/discovery/test_yahoosearch.py43 assert set(await search.get_emails()) == {'admin@example.com'}CODE
LOW⚡tests/discovery/test_sherlockeye.py33 monkeypatch.setattr(sherlockeye.Core, 'sherlockeye_key', lambda: 'dummy-key')CODE
LOWtests/discovery/test_sherlockeye.py44 'Authorization': 'Bearer dummy-key',CODE
LOWtests/discovery/test_sherlockeye.py84 monkeypatch.setattr(sherlockeye.Core, 'sherlockeye_key', lambda: 'dummy-key')CODE
LOWtests/discovery/test_sherlockeye.py101 'email': 'user@example.com',CODE
LOW⚡tests/discovery/test_sherlockeye.py130 assert await search.get_emails() == {'user@example.com'}CODE
LOW⚡tests/discovery/test_sherlockeye.py137 monkeypatch.setattr(sherlockeye.Core, 'sherlockeye_key', lambda: 'dummy-key')CODE
LOWtests/discovery/test_sherlockeye.py159 monkeypatch.setattr(sherlockeye.Core, 'sherlockeye_key', lambda: 'dummy-key')CODE
LOWtests/discovery/test_sherlockeye.py187 monkeypatch.setattr(sherlockeye.Core, 'sherlockeye_key', lambda: 'dummy-key')CODE
LOWtests/discovery/test_sherlockeye.py202 monkeypatch.setattr(sherlockeye.Core, 'sherlockeye_key', lambda: 'dummy-key')CODE
LOWtests/discovery/test_sherlockeye.py216 monkeypatch.setattr(sherlockeye.Core, 'sherlockeye_key', lambda: 'dummy-key')CODE
LOWtests/discovery/test_sherlockeye.py238 monkeypatch.setattr(sherlockeye.Core, 'sherlockeye_key', lambda: 'dummy-key')CODE
LOWtests/lib/test_completed_persistence.py1571 ('example.com', 'admin@example.com', 'email', '2026-08-08', 'hunter'),STRING
LOWtests/lib/test_completed_persistence.py1595 ('admin@example.com', 'email'),STRING
LOWtests/lib/test_completed_persistence.py1705 await store.record_observations('example.com', ['admin@example.com'], 'email', 'hunter')STRING
LOWtests/lib/test_completed_persistence.py1719 ('example.com', 'admin@example.com', 'email', 'hunter'),STRING
LOWtests/lib/test_completed_result.py94 'email': ['admin@example.com'],CODE
LOWtests/lib/test_completed_result.py117 'value': 'admin@example.com',CODE
LOWtests/e2e/test_harvestview.py2080 expect(value_filter).to_have_attribute('placeholder', 'Filter values')CODE
LOWtests/e2e/test_harvestview.py2081 expect(dns_filter).to_have_attribute('placeholder', 'Filter DNS')CODE
Hallucination Indicators2 hits · 20 pts
SeverityFileLineSnippetContext
CRITICALtheHarvester/lib/api/static/harvestview/app.js1042 const endpoint = nodes.newRunForm.elements.vhost_endpoint.value.trim();CODE
CRITICALtheHarvester/lib/api/static/harvestview/app.js1056 const target = nodes.newRunForm.elements.target.value.trim();CODE
Dead Code4 hits · 8 pts
SeverityFileLineSnippetContext
MEDIUMtests/test_main.py3647CODE
MEDIUMtests/discovery/test_censys.py202CODE
MEDIUMtests/discovery/test_brave.py137CODE
MEDIUMtests/lib/test_routeviews.py149CODE
Self-Referential Comments2 hits · 6 pts
SeverityFileLineSnippetContext
MEDIUMtheHarvester/__main__.py1953 # Define a default wordlist if none is specifiedCOMMENT
MEDIUMtheHarvester/__main__.py1959 # Create a default simple API endpoint listCOMMENT
Redundant / Tautological Comments4 hits · 6 pts
SeverityFileLineSnippetContext
LOWtheHarvester/__main__.py1826 # Check if the result is a string (error message)COMMENT
LOWtheHarvester/__main__.py2017 # Print resultsCOMMENT
LOWtheHarvester/discovery/api_endpoints.py883 # Check if rate limitedCOMMENT
LOWtheHarvester/discovery/api_endpoints.py892 # Check if this is an interesting endpointCOMMENT
AI Slop Vocabulary1 hit · 3 pts
SeverityFileLineSnippetContext
MEDIUMtheHarvester/discovery/api_endpoints.py158 # Add comprehensive API paths categorized by functionalityCOMMENT
Cross-Language Confusion1 hit · 2 pts
SeverityFileLineSnippetContext
HIGHtests/e2e/test_harvestview.py458 return buttonBox.top >= dialogBox.top && buttonBox.bottom <= dialogBox.bottom && buttonBox.bottom <= innerHeigSTRING
Over-Commented Block2 hits · 2 pts
SeverityFileLineSnippetContext
LOW.github/workflows/codeql-analysis.yml1# For most projects, this workflow file will not need changing; you simply needCOMMENT
LOW.github/workflows/codeql-analysis.yml61 # Prefix the list here with "+" to use these queries and those in the config file.COMMENT
AI Structural Patterns1 hit · 1 pts
SeverityFileLineSnippetContext
LOWtheHarvester/lib/completed_result.py424CODE