SearXNG is a free internet metasearch engine which aggregates results from various search services and databases. Users are neither tracked nor profiled.
This report summarizes scanner evidence for searxng/searxng, a Python project with 38,198 GitHub stars. SynthScan examined 142,511 lines of code across 623 source files, recording 801 pattern matches distributed across 18 syntactic categories. The legacy adjusted pattern signal is 8.4 (Moderate pattern signal); it is not an authorship estimate.
Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.
Use each vector to guide manual verification of the underlying findings.
Can maintainers explain intent, assumptions, and trade-offs? 268 finding(s).
Are imports declared and package/API names verified? 354 finding(s).
Are wrappers, guards, and repeated structures necessary? 291 finding(s).
Which changes need focused human review? 801 finding(s).
This chart tracks the legacy adjusted pattern score across scan runs. Changes can reflect source changes, scan coverage, or detector/scoring versions; they do not measure AI adoption or prove that a team refactored code. Compare runs only when their scoring versions are compatible. The dashed line tracks the raw pattern-hit count.
Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.
This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.
The scanner identified 801 distinct pattern matches across 18 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.
Reading the findings table: The Severity column indicates the configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | searx/settings_defaults.py | 4 | CODE | |
| LOW | searx/external_bang.py | 14 | CODE | |
| LOW | searx/webutils.py | 14 | CODE | |
| LOW | searx/webutils.py | 27 | CODE | |
| LOW | searx/webutils.py | 28 | CODE | |
| LOW | searx/webutils.py | 29 | CODE | |
| LOW | searx/webutils.py | 30 | CODE | |
| LOW | searx/__init__.py | 3 | CODE | |
| LOW | searx/extended_types.py | 35 | CODE | |
| LOW | searx/extended_types.py | 36 | CODE | |
| LOW | searx/extended_types.py | 37 | CODE | |
| LOW | searx/extended_types.py | 37 | CODE | |
| LOW | searx/extended_types.py | 37 | CODE | |
| LOW | searx/exceptions.py | 7 | CODE | |
| LOW | searx/autocomplete.py | 28 | CODE | |
| LOW | searx/brand.py | 8 | CODE | |
| LOW | searx/metrics/__init__.py | 11 | CODE | |
| LOW | searx/metrics/__init__.py | 11 | CODE | |
| LOW | searx/answerers/__init__.py | 44 | CODE | |
| LOW | searx/answerers/__init__.py | 44 | CODE | |
| LOW | searx/favicons/__init__.py | 16 | CODE | |
| LOW | searx/favicons/__init__.py | 16 | CODE | |
| LOW | searx/plugins/tor_check.py | 20 | CODE | |
| LOW | searx/plugins/tor_check.py | 21 | CODE | |
| LOW | searx/plugins/tor_check.py | 22 | CODE | |
| LOW | searx/plugins/infinite_scroll.py | 11 | CODE | |
| LOW | searx/plugins/oa_doi_rewrite.py | 16 | CODE | |
| LOW | searx/plugins/oa_doi_rewrite.py | 17 | CODE | |
| LOW | searx/plugins/oa_doi_rewrite.py | 18 | CODE | |
| LOW | searx/plugins/oa_doi_rewrite.py | 18 | CODE | |
| LOW | searx/plugins/oa_doi_rewrite.py | 19 | CODE | |
| LOW | searx/plugins/self_info.py | 15 | CODE | |
| LOW | searx/plugins/self_info.py | 16 | CODE | |
| LOW | searx/plugins/self_info.py | 17 | CODE | |
| LOW | searx/plugins/time_zone.py | 15 | CODE | |
| LOW | searx/plugins/time_zone.py | 16 | CODE | |
| LOW | searx/plugins/time_zone.py | 17 | CODE | |
| LOW | searx/plugins/__init__.py | 120 | CODE | |
| LOW | searx/plugins/__init__.py | 120 | CODE | |
| LOW | searx/plugins/__init__.py | 120 | CODE | |
| LOW | searx/plugins/hostnames.py | 98 | CODE | |
| LOW | searx/plugins/hostnames.py | 99 | CODE | |
| LOW | searx/plugins/hostnames.py | 100 | CODE | |
| LOW | searx/plugins/hostnames.py | 101 | CODE | |
| LOW | searx/plugins/hostnames.py | 102 | CODE | |
| LOW | searx/plugins/unit_converter.py | 23 | CODE | |
| LOW | searx/plugins/unit_converter.py | 24 | CODE | |
| LOW | searx/plugins/unit_converter.py | 25 | CODE | |
| LOW | searx/plugins/_core.py | 20 | CODE | |
| LOW | searx/plugins/_core.py | 21 | CODE | |
| LOW | searx/plugins/_core.py | 21 | CODE | |
| LOW | searx/plugins/_core.py | 21 | CODE | |
| LOW | searx/plugins/_core.py | 22 | CODE | |
| LOW | searx/plugins/calculator.py | 11 | CODE | |
| LOW | searx/plugins/ahmia_filter.py | 14 | CODE | |
| LOW | searx/plugins/ahmia_filter.py | 15 | CODE | |
| LOW | searx/plugins/ahmia_filter.py | 16 | CODE | |
| LOW | searx/plugins/ahmia_filter.py | 17 | CODE | |
| LOW | searx/plugins/ahmia_filter.py | 18 | CODE | |
| LOW | searx/plugins/hash_plugin.py | 14 | CODE | |
| 253 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | searx/sqlitedb.py | 87 | except Exception: # pylint: disable=broad-exception-caught | CODE |
| HIGH | searx/sqlitedb.py | 235 | except sqlite3.OperationalError: | CODE |
| HIGH | searx/utils.py | 813 | except (ValueError, TypeError): | CODE |
| HIGH | searx/autocomplete.py | 280 | except json.JSONDecodeError: | CODE |
| HIGH | searx/autocomplete.py | 325 | except json.JSONDecodeError: | CODE |
| HIGH | searx/favicons/proxy.py | 187 | except (RequestException, SearxEngineResponseException): | CODE |
| HIGH | searx/network/client.py | 40 | except RequestException: | CODE |
| HIGH | searx/network/__init__.py | 211 | except StreamConsumedError: | CODE |
| HIGH | searx/network/network.py | 233 | except RequestException: | CODE |
| HIGH | searx/result_types/code.py | 120 | except ClassNotFound: | CODE |
| HIGH | searx/result_types/code.py | 116 | except ClassNotFound: | CODE |
| HIGH | searx/search/models.py | 59 | except babel.core.UnknownLocaleError: | CODE |
| HIGH | searx/engines/searchrockit.py | 60 | except parser.ParserError: | CODE |
| HIGH | searx/engines/keenable.py | 54 | except ValueError: | CODE |
| HIGH | searx/engines/postgresql.py | 28 | except ImportError: | CODE |
| HIGH | searx/engines/postgresql.py | 99 | except psycopg2.ProgrammingError: | CODE |
| HIGH | searx/engines/piratebay.py | 84 | except: # pylint: disable=bare-except | CODE |
| HIGH | searx/engines/tiger.py | 156 | except parser.ParserError: | CODE |
| HIGH | searx/engines/apple_maps.py | 40 | except: # pylint: disable=bare-except | CODE |
| HIGH | searx/engines/wikicommons.py | 148 | except OverflowError: | CODE |
| HIGH | searx/engines/pubmed.py | 136 | except ValueError: | CODE |
| HIGH | searx/engines/chinaso.py | 130 | except (ValueError, TypeError): | CODE |
| HIGH | searx/engines/acfun.py | 87 | except (ValueError, TypeError): | CODE |
| HIGH | searx/engines/acfun.py | 95 | except (ValueError, TypeError): | CODE |
| HIGH | searx/engines/iqiyi.py | 47 | except (ValueError, TypeError): | CODE |
| HIGH | searx/engines/mongodb.py | 45 | except ImportError: | CODE |
| HIGH | searx/engines/jina.py | 77 | except parser.ParserError: | CODE |
| HIGH | searx/engines/solidtorrents.py | 70 | except ValueError: | CODE |
| HIGH | searx/engines/naver.py | 118 | except (ValueError, TypeError, SearxEngineXPathException): | CODE |
| HIGH | searx/engines/naver.py | 180 | except (ValueError, TypeError, SearxEngineXPathException): | CODE |
| HIGH | searx/engines/naver.py | 207 | except (ValueError, TypeError, SearxEngineXPathException): | CODE |
| HIGH | searx/engines/naver.py | 213 | except (ValueError, TypeError): | CODE |
| HIGH | searx/engines/mysql_server.py | 34 | except ImportError: | CODE |
| HIGH | searx/engines/core.py | 126 | except (ValueError, AttributeError): | CODE |
| HIGH | searx/engines/startpagina.py | 69 | except parser.ParserError: | CODE |
| HIGH | searx/engines/duckduckgo_definitions.py | 266 | except ValueError: | CODE |
| HIGH | searx/engines/huggingface.py | 96 | except (ValueError, TypeError): | CODE |
| HIGH | searx/engines/tokyotoshokan.py | 74 | except: # pylint: disable=bare-except | CODE |
| HIGH | searx/engines/tokyotoshokan.py | 81 | except: # pylint: disable=bare-except | CODE |
| HIGH | searx/engines/niconico.py | 65 | except ValueError: | CODE |
| HIGH | searx/engines/niconico.py | 73 | except ValueError: | CODE |
| HIGH | searx/engines/sogou.py | 131 | except (ValueError, TypeError): | CODE |
| HIGH | searx/engines/sogou.py | 100 | except (ValueError, TypeError): | CODE |
| HIGH | searx/engines/startpage.py | 362 | except ValueError: | CODE |
| HIGH | searx/engines/startpage.py | 400 | except (TypeError, ValueError): | CODE |
| HIGH | searx/engines/mariadb_server.py | 33 | except ImportError: | CODE |
| HIGH | searx/engines/qwant.py | 169 | except ValueError: | CODE |
| HIGH | searx/engines/quark.py | 321 | except (ValueError, TypeError): | CODE |
| HIGH | searx/engines/json_engine.py | 390 | except: # pylint: disable=bare-except | CODE |
| HIGH | searx/engines/ollama.py | 47 | except ValueError: | CODE |
| HIGH | searx/engines/base.py | 107 | except: # pylint: disable=bare-except | CODE |
| HIGH | searx/engines/youtube_noapi.py | 105 | except: # pylint: disable=bare-except | CODE |
| HIGH | searx/engines/wikipedia.py | 171 | except Exception: # pylint: disable=broad-except | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | searxng_extra/update/update_engine_descriptions.py | 225 | def fetch_wikidata_descriptions(): | STRING |
| LOW | searxng_extra/update/update_engine_descriptions.py | 250 | def fetch_wikipedia_descriptions(): | STRING |
| LOW | searxng_extra/update/update_engine_descriptions.py | 293 | def fetch_website_description(engine_name: str, website: str): | STRING |
| LOW | searxng_extra/update/update_engine_descriptions.py | 345 | def fetch_website_descriptions(): | STRING |
| LOW | searxng_extra/update/update_engine_descriptions.py | 353 | def get_engine_descriptions_filename(): | STRING |
| LOW | searxng_extra/update/update_firefox_version.py | 61 | def fetch_firefox_last_versions(): | CODE |
| LOW | searxng_extra/update/update_currencies.py | 93 | def wikidata_request_result_iterator(request): | STRING |
| LOW | searx/external_bang.py | 30 | def get_bang_definition_and_ac(external_bangs_db: dict[str, t.Any], bang: str): | CODE |
| LOW | searx/external_bang.py | 64 | def get_bang_definition_and_autocomplete( | CODE |
| LOW | searx/external_urls.py | 55 | def get_earth_coordinates_url(latitude, longitude, osm_zoom, alternative='default'): | CODE |
| LOW | searx/query.py | 311 | def get_autocomplete_full_query(self, text): | CODE |
| LOW | searx/utils.py | 479 | def get_string_replaces_function(replaces: dict[str, str]) -> Callable[[str], str]: | CODE |
| LOW | searx/exceptions.py | 82 | def _get_default_suspended_time(self) -> int: | CODE |
| LOW | searx/webadapter.py | 16 | def deduplicate_engineref_list(engineref_list: List[EngineRef]) -> List[EngineRef]: | CODE |
| LOW | searx/webadapter.py | 158 | def get_engineref_from_category_list( # pylint: disable=invalid-name | CODE |
| LOW | searx/webadapter.py | 221 | def get_search_query_from_webapp( | CODE |
| LOW | searx/metrics/error_recorder.py | 109 | def get_request_exception_messages( | CODE |
| LOW | searx/plugins/hostnames.py | 161 | def _load_regular_expressions(self, settings_key) -> dict[re.Pattern, str] | set | None: | CODE |
| LOW | searx/network/raise_for_httperror.py | 33 | def raise_for_cloudflare_captcha(resp: "SXNG_Response"): | CODE |
| LOW | searx/network/network.py | 243 | def extract_do_raise_for_httperror(kwargs: dict[str, t.Any]): | CODE |
| LOW | searx/network/network.py | 319 | def check_network_configuration(): | CODE |
| LOW | searx/search/processors/abstract.py | 239 | def extend_container_if_suspended(self, result_container: "ResultContainer") -> bool: | CODE |
| LOW | searx/engines/elasticsearch.py | 117 | def _simple_query_string_query(query): | CODE |
| LOW | searx/engines/command.py | 156 | def _get_results_from_process(res: EngineResults, cmd, pageno): | CODE |
| LOW | searx/engines/swisscows.py | 99 | def caesar_shift_with_switch_case(s: str, offset: int = 13) -> str: | CODE |
| LOW | searx/engines/swisscows.py | 132 | def generate_nonce_and_signature(base_path: str, args: dict[str, t.Any]) -> tuple[str, str]: | CODE |
| LOW | searx/engines/yandex.py | 76 | def _time_range_to_start_date(time_range: TimeRangeType) -> datetime: | CODE |
| LOW | searx/engines/__init__.py | 236 | def update_attributes_for_tor(engine: "Engine | types.ModuleType"): | CODE |
| LOW | searx/engines/__init__.py | 242 | def is_missing_required_attributes(engine: "Engine | types.ModuleType"): | CODE |
| LOW | searx/engines/luxxle.py | 115 | def _extract_url_from_redirect(url: str): | CODE |
| LOW | searx/engines/sogou.py | 118 | def _parse_results_with_image(item, item_html): | CODE |
| LOW | searx/engines/fireball.py | 62 | def _get_search_settings_cookie(params: 'OnlineParams') -> str: | CODE |
| LOW | searx/engines/google_cse.py | 86 | def _get_start_and_end_date_str(time_range: str) -> tuple[str, str]: | CODE |
| LOW | searx/engines/wikidata.py | 262 | def debug_explain_wikidata_query(query: str, method: str = "GET"): | CODE |
| LOW | searx/engines/quark.py | 242 | def parse_life_show_general_image(data): | CODE |
| LOW | searx/engines/quark.py | 368 | def parse_travel_dest_overview(data): | CODE |
| LOW | searx/engines/quark.py | 376 | def parse_travel_ranking_list(data): | CODE |
| LOW | searx/engines/youtube_noapi.py | 111 | def parse_first_page_response(response_text): | CODE |
| LOW | searx/botdetection/ip_lists.py | 74 | def ip_is_subnet_of_member_in_list( | CODE |
| LOW | tests/unit/test_webadapter.py | 26 | def test_with_incorrect_token(self): | CODE |
| LOW | tests/unit/test_webutils.py | 31 | def test_highlight_content_none(self, content, query, expected): | CODE |
| LOW | tests/unit/test_webutils.py | 34 | def test_highlight_content_same(self): | CODE |
| LOW | tests/unit/test_webutils.py | 77 | def test_highlight_content_equal(self, query: str, content: str, expected: str): | CODE |
| LOW⚡ | tests/unit/test_utils.py | 52 | def test_extract_text_allow_none(self): | STRING |
| LOW⚡ | tests/unit/test_utils.py | 55 | def test_extract_text_error_none(self): | STRING |
| LOW⚡ | tests/unit/test_utils.py | 59 | def test_extract_text_error_empty(self): | STRING |
| LOW⚡ | tests/unit/test_utils.py | 94 | def test_html_to_text_with_a_style_span(self): | STRING |
| LOW | tests/unit/test_utils.py | 145 | def test_eval_xpath_unregistered_function(self): | CODE |
| LOW⚡ | tests/unit/test_preferences.py | 32 | def test_map_setting_invalid_default_value(self): | CODE |
| LOW⚡ | tests/unit/test_preferences.py | 36 | def test_map_setting_invalid_choice(self): | CODE |
| LOW⚡ | tests/unit/test_preferences.py | 41 | def test_map_setting_valid_default(self): | CODE |
| LOW⚡ | tests/unit/test_preferences.py | 45 | def test_map_setting_valid_choice(self): | CODE |
| LOW⚡ | tests/unit/test_preferences.py | 53 | def test_enum_setting_invalid_default_value(self): | CODE |
| LOW⚡ | tests/unit/test_preferences.py | 57 | def test_enum_setting_invalid_choice(self): | CODE |
| LOW⚡ | tests/unit/test_preferences.py | 62 | def test_enum_setting_valid_default(self): | CODE |
| LOW⚡ | tests/unit/test_preferences.py | 66 | def test_enum_setting_valid_choice(self): | CODE |
| LOW⚡ | tests/unit/test_preferences.py | 74 | def test_multiple_setting_invalid_default_value(self): | CODE |
| LOW⚡ | tests/unit/test_preferences.py | 78 | def test_multiple_setting_invalid_choice(self): | CODE |
| LOW⚡ | tests/unit/test_preferences.py | 83 | def test_multiple_setting_valid_default(self): | CODE |
| LOW⚡ | tests/unit/test_preferences.py | 87 | def test_multiple_setting_valid_choice(self): | CODE |
| 47 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | searx/plugins/oa_doi_rewrite.py | 0 | returns bool ``true`` to use url unchanged (``false`` to ignore url). if url should be modified, the returned string is | STRING |
| HIGH | searx/plugins/hostnames.py | 0 | returns bool ``true`` to use url unchanged (``false`` to ignore url). if url should be modified, the returned string is | STRING |
| HIGH | searx/plugins/tracker_url_remover.py | 0 | returns bool ``true`` to use url unchanged (``false`` to ignore url). if url should be modified, the returned string is | STRING |
| HIGH | searx/engines/wolframalpha_noapi.py | 0 | persistent (sqlite) key/value cache that deletes its values after ``expire`` seconds. | STRING |
| HIGH | searx/engines/radio_browser.py | 0 | persistent (sqlite) key/value cache that deletes its values after ``expire`` seconds. | STRING |
| HIGH | searx/engines/demo_offline.py | 0 | persistent (sqlite) key/value cache that deletes its values after ``expire`` seconds. | STRING |
| HIGH | searx/engines/azure.py | 0 | persistent (sqlite) key/value cache that deletes its values after ``expire`` seconds. | STRING |
| HIGH | searx/engines/soundcloud.py | 0 | persistent (sqlite) key/value cache that deletes its values after ``expire`` seconds. | STRING |
| HIGH | searx/engines/semantic_scholar.py | 0 | persistent (sqlite) key/value cache that deletes its values after ``expire`` seconds. | STRING |
| HIGH | searx/engines/startpage.py | 0 | persistent (sqlite) key/value cache that deletes its values after ``expire`` seconds. | STRING |
| HIGH | searx/engines/duckduckgo.py | 0 | persistent (sqlite) key/value cache that deletes its values after ``expire`` seconds. | STRING |
| HIGH | searx/engines/astrophysics_data_system.py | 0 | initialization of the core_ engine, checks whether the :py:obj:`api_key` is set, otherwise the engine is inactive. | STRING |
| HIGH | searx/engines/springer.py | 0 | initialization of the core_ engine, checks whether the :py:obj:`api_key` is set, otherwise the engine is inactive. | STRING |
| HIGH | searx/engines/core.py | 0 | initialization of the core_ engine, checks whether the :py:obj:`api_key` is set, otherwise the engine is inactive. | STRING |
| HIGH | searx/engines/google_videos.py | 0 | google supports up to 50 pages of results, see the `google max_page discussion`_. .. _google max_page discussion: https: | STRING |
| HIGH | searx/engines/google_images.py | 0 | google supports up to 50 pages of results, see the `google max_page discussion`_. .. _google max_page discussion: https: | STRING |
| HIGH | searx/engines/google.py | 0 | google supports up to 50 pages of results, see the `google max_page discussion`_. .. _google max_page discussion: https: | STRING |
| HIGH | searx/engines/google_news.py | 0 | google supports up to 50 pages of results, see the `google max_page discussion`_. .. _google max_page discussion: https: | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | searx/compat.py | 7 | # ------------------------------ | COMMENT |
| MEDIUM | searx/engines/google.py | 82 | # ------------------------ | COMMENT |
| MEDIUM | searx/engines/duckduckgo_extra.py | 95 | # ============ | COMMENT |
| MEDIUM | searx/engines/duckduckgo_extra.py | 110 | # ================ | COMMENT |
| MEDIUM | searx/engines/duckduckgo.py | 376 | # ============ | COMMENT |
| MEDIUM | searx/engines/duckduckgo.py | 396 | # =========================== | COMMENT |
| MEDIUM | utils/lib_nvm.sh | 16 | # ------------------------- | COMMENT |
| MEDIUM | utils/lib_nvm.sh | 24 | # ------------------------- | COMMENT |
| MEDIUM | utils/lib_nvm.sh | 55 | # ----------------------- | COMMENT |
| MEDIUM | utils/lib_nvm.sh | 89 | # -------------------------- | COMMENT |
| MEDIUM | utils/lib.sh | 757 | # ---------- | COMMENT |
| MEDIUM | utils/lib.sh | 852 | # --------------- | COMMENT |
| MEDIUM | utils/lib.sh | 1499 | # ------------------------ | COMMENT |
| MEDIUM | utils/lib.sh | 1596 | # ----------- | COMMENT |
| MEDIUM | utils/searxng.sh | 1011 | # ---------------------------------------------------------------------------- | COMMENT |
| MEDIUM | utils/searxng.sh | 1013 | # ---------------------------------------------------------------------------- | COMMENT |
| MEDIUM | utils/lib_govm.sh | 12 | # -------------------------------------- | COMMENT |
| MEDIUM | utils/lib_govm.sh | 28 | # ----------------------- | COMMENT |
| MEDIUM | utils/lib_govm.sh | 103 | # ----------------------------- | COMMENT |
| MEDIUM | utils/templates/etc/uwsgi/apps-available/searxng.ini | 5 | # ---------- | COMMENT |
| MEDIUM | utils/templates/etc/uwsgi/apps-available/searxng.ini | 58 | # -------------- | COMMENT |
| MEDIUM | utils/templates/etc/uwsgi/apps-available/searxng.ini | 73 | # ----------------- | COMMENT |
| MEDIUM | utils/templates/etc/uwsgi/apps-archlinux/searxng.ini | 5 | # ---------- | COMMENT |
| MEDIUM | utils/templates/etc/uwsgi/apps-archlinux/searxng.ini | 55 | # -------------- | COMMENT |
| MEDIUM | utils/templates/etc/uwsgi/apps-archlinux/searxng.ini | 70 | # ----------------- | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | searxng_extra/update/update_engine_descriptions.py | 225 | CODE | |
| LOW | searxng_extra/update/update_engine_descriptions.py | 250 | CODE | |
| LOW | searxng_extra/update/update_engine_descriptions.py | 357 | CODE | |
| LOW | searx/settings_defaults.py | 143 | CODE | |
| LOW | searx/babel_extract.py | 30 | CODE | |
| LOW | searx/results.py | 274 | CODE | |
| LOW | searx/results.py | 82 | CODE | |
| LOW | searx/results.py | 154 | CODE | |
| LOW | searx/results.py | 193 | CODE | |
| LOW | searx/settings_loader.py | 127 | CODE | |
| LOW | searx/preferences.py | 526 | CODE | |
| LOW | searx/preferences.py | 542 | CODE | |
| LOW | searx/wikidata_properties.py | 316 | CODE | |
| LOW | searx/utils.py | 595 | CODE | |
| LOW | searx/utils.py | 709 | CODE | |
| LOW | searx/webadapter.py | 117 | CODE | |
| LOW | searx/webadapter.py | 172 | CODE | |
| LOW | searx/metrics/models.py | 69 | CODE | |
| LOW | searx/metrics/models.py | 84 | CODE | |
| LOW | searx/favicons/cache.py | 381 | CODE | |
| LOW | searx/plugins/unit_converter.py | 48 | CODE | |
| LOW | searx/network/network.py | 337 | CODE | |
| LOW | searx/network/network.py | 124 | CODE | |
| LOW | searx/result_types/_base.py | 128 | CODE | |
| LOW | searx/result_types/file.py | 73 | CODE | |
| LOW | searx/search/__init__.py | 78 | CODE | |
| LOW | searx/engines/wolframalpha_noapi.py | 77 | CODE | |
| LOW | searx/engines/uxwing.py | 25 | CODE | |
| LOW | searx/engines/tiger.py | 130 | CODE | |
| LOW | searx/engines/ccc_media.py | 34 | CODE | |
| LOW | searx/engines/tineye.py | 152 | CODE | |
| LOW | searx/engines/springer.py | 120 | CODE | |
| LOW | searx/engines/command.py | 156 | CODE | |
| LOW | searx/engines/command.py | 196 | CODE | |
| LOW | searx/engines/swisscows.py | 239 | CODE | |
| LOW | searx/engines/acfun.py | 36 | CODE | |
| LOW | searx/engines/github_code.py | 161 | CODE | |
| LOW | searx/engines/azure.py | 158 | CODE | |
| LOW | searx/engines/bing.py | 93 | CODE | |
| LOW | searx/engines/bing.py | 136 | CODE | |
| LOW | searx/engines/doku.py | 47 | CODE | |
| LOW | searx/engines/core.py | 89 | CODE | |
| LOW | searx/engines/bing_news.py | 74 | CODE | |
| LOW | searx/engines/startpagina.py | 51 | CODE | |
| LOW | searx/engines/duckduckgo_definitions.py | 79 | CODE | |
| LOW | searx/engines/dogpile.py | 80 | CODE | |
| LOW | searx/engines/neosearch.py | 59 | CODE | |
| LOW | searx/engines/openstreetmap.py | 212 | CODE | |
| LOW | searx/engines/tokyotoshokan.py | 37 | CODE | |
| LOW | searx/engines/privacywall.py | 174 | CODE | |
| LOW | searx/engines/xpath.py | 277 | CODE | |
| LOW | searx/engines/jisho.py | 34 | CODE | |
| LOW | searx/engines/duckduckgo_extra.py | 184 | CODE | |
| LOW | searx/engines/startpage.py | 450 | CODE | |
| LOW | searx/engines/fireball.py | 117 | CODE | |
| LOW | searx/engines/yacy.py | 153 | CODE | |
| LOW | searx/engines/qwant.py | 154 | CODE | |
| LOW | searx/engines/wikidata.py | 158 | CODE | |
| LOW | searx/engines/quark.py | 84 | CODE | |
| LOW | searx/engines/json_engine.py | 289 | CODE | |
| 11 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | searxng_extra/__init__.py | 1 | # SPDX-License-Identifier: AGPL-3.0-or-later | COMMENT |
| LOW | searxng_extra/update/__init__.py | 1 | # SPDX-License-Identifier: AGPL-3.0-or-later | COMMENT |
| LOW | searx/sqlitedb.py | 301 | """ | COMMENT |
| LOW | searx/weather.py | 61 | COMMENT | |
| LOW | searx/utils.py | 721 | # ['{ a:', '"', 'f\\', '"', 'irst', '"', ', c:', "'", 'sec', '"', 'ond', "'", '}'] | COMMENT |
| LOW | searx/utils.py | 761 | # replace simple quote by double quote | COMMENT |
| LOW | searx/settings.yml | 21 | docs_url: https://docs.searxng.org/ | COMMENT |
| LOW | searx/settings.yml | 41 | # Filter results. 0: None, 1: Moderate, 2: Strict | COMMENT |
| LOW | searx/settings.yml | 61 | # - de | COMMENT |
| LOW | searx/settings.yml | 121 | # URL to connect valkey database. Is overwritten by ${SEARXNG_VALKEY_URL}. | COMMENT |
| LOW | searx/settings.yml | 141 | # use codes from the 'locales' config section | COMMENT |
| LOW | searx/settings.yml | 161 | # - autocomplete | COMMENT |
| LOW | searx/settings.yml | 181 | # suffix of searxng_useragent, could contain information like an email address | COMMENT |
| LOW | searx/settings.yml | 201 | # Extra seconds to add in order to account for the time taken by the proxy | COMMENT |
| LOW | searx/settings.yml | 261 | # '(www\.)?twitter\.com$': 'nitter.example.com' | COMMENT |
| LOW | searx/settings.yml | 1401 | # - name: kagi | COMMENT |
| LOW | searx/settings.yml | 1721 | COMMENT | |
| LOW | searx/settings.yml | 2001 | # image proxy of https://www.pixiv.pics | COMMENT |
| LOW | searx/settings.yml | 2101 | disabled: true | COMMENT |
| LOW | searx/settings.yml | 2161 | # Required dependency: valkey | COMMENT |
| LOW | searx/settings.yml | 2401 | # Query to test: "!mediathekview concert" | COMMENT |
| LOW | searx/settings.yml | 2501 | # - name: tubearchivist | COMMENT |
| LOW | searx/settings.yml | 2801 | timeout: 5.0 | COMMENT |
| LOW | searx/settings.yml | 3421 | # - name: ubuntuwiki | COMMENT |
| LOW | searx/settings.yml | 3441 | # running a public instance. Do not expose any sensitive | COMMENT |
| LOW | searx/settings.yml | 3461 | # query_type: path | COMMENT |
| LOW | searx/settings.yml | 3481 | # keys: ['line'] | COMMENT |
| LOW | searx/favicons/favicons.toml | 21 | # db_url = "/var/cache/searxng/faviconcache.db" # default: "/tmp/faviconcache.db" | COMMENT |
| LOW | searx/engines/google.py | 161 | # '!go 日 :zh-CN' --> https://zh.m.wikipedia.org/zh/%E6%97%A5 | COMMENT |
| LOW | searx/engines/google.py | 181 | # documents written in a particular language. | COMMENT |
| LOW | searx/engines/google.py | 201 | COMMENT | |
| LOW | searx/engines/google.py | 221 | # https://github.com/searxng/searxng/issues/2515#issuecomment-1606294635 | COMMENT |
| LOW | tests/unit/test_js_variable_to_python.py | 141 | [ | COMMENT |
| LOW | tests/unit/test_js_variable_to_python.py | 161 | # ("[-0x12]", [-18]), | COMMENT |
| LOW | tests/unit/test_js_variable_to_python.py | 261 | # ("", []), | COMMENT |
| LOW | tests/unit/network/__init__.py | 1 | # SPDX-License-Identifier: AGPL-3.0-or-later | COMMENT |
| LOW | tests/unit/processors/__init__.py | 1 | # SPDX-License-Identifier: AGPL-3.0-or-later | COMMENT |
| LOW | tests/unit/engines/__init__.py | 1 | # SPDX-License-Identifier: AGPL-3.0-or-later | COMMENT |
| LOW | tests/robot/__init__.py | 1 | # SPDX-License-Identifier: AGPL-3.0-or-later | COMMENT |
| LOW | utils/lib_nvm.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | utils/lib_sxng_weblate.sh | 121 | pyenv.cmd wlc unlock | COMMENT |
| LOW | utils/lib.sh | 401 | echo | COMMENT |
| LOW | utils/lib.sh | 1601 | # usage: | COMMENT |
| LOW | utils/templates/etc/searxng/settings.yml | 21 | # by ${SEARXNG_BASE_URL}. | COMMENT |
| LOW | utils/templates/etc/searxng/settings.yml | 41 | # - name: mediathekviewweb | COMMENT |
| LOW | utils/templates/etc/uwsgi/apps-available/searxng.ini | 1 | # -*- mode: conf; coding: utf-8 -*- | COMMENT |
| LOW | utils/templates/etc/uwsgi/apps-available/searxng.ini | 41 | lazy-apps = true | COMMENT |
| LOW | utils/templates/etc/uwsgi/apps-archlinux/searxng.ini | 41 | plugin = python | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | searxng_extra/update/update_engine_descriptions.py | 146 | except Exception as e: # pylint: disable=broad-except | STRING |
| LOW | searxng_extra/update/update_engine_descriptions.py | 175 | except Exception: # pylint: disable=broad-except | STRING |
| LOW | searx/settings_defaults.py | 169 | except Exception as e: # pylint: disable=broad-except | CODE |
| LOW | searx/webapp.py | 188 | except Exception as e: # pylint: disable=broad-except | CODE |
| LOW | searx/webapp.py | 500 | except Exception as e: # pylint: disable=broad-except | CODE |
| LOW | searx/webapp.py | 516 | except Exception as e: # pylint: disable=broad-except | CODE |
| LOW | searx/webapp.py | 682 | except Exception as e: # pylint: disable=broad-except | CODE |
| LOW | searx/sqlitedb.py | 87 | except Exception: # pylint: disable=broad-exception-caught | CODE |
| MEDIUM | searx/sqlitedb.py | 77 | def __del__(self): | CODE |
| LOW | searx/wikidata_properties.py | 333 | except Exception: # pylint: disable=broad-except | CODE |
| LOW | searx/plugins/_core.py | 222 | except Exception as exc: # pylint: disable=broad-exception-caught | CODE |
| LOW | searx/plugins/_core.py | 259 | except Exception: # pylint: disable=broad-except | CODE |
| LOW | searx/plugins/_core.py | 273 | except Exception: # pylint: disable=broad-except | CODE |
| LOW | searx/plugins/_core.py | 301 | except Exception: # pylint: disable=broad-except | CODE |
| LOW | searx/enginelib/traits.py | 219 | except Exception as exc: | CODE |
| LOW | searx/network/__init__.py | 130 | except Exception as e: # pylint: disable=broad-except | CODE |
| LOW | searx/network/__init__.py | 217 | except Exception as e: # pylint: disable=broad-except | CODE |
| LOW | searx/network/network.py | 326 | except Exception: # pylint: disable=broad-except | CODE |
| LOW | searx/result_types/_base.py | 147 | except Exception as exc: # pylint: disable=broad-exception-caught | CODE |
| LOW | searx/result_types/image.py | 107 | except Exception as exc: # pylint: disable=broad-exception-caught | CODE |
| LOW | searx/search/processors/abstract.py | 163 | except Exception as e: # pylint: disable=broad-except | CODE |
| LOW | searx/search/processors/online.py | 286 | except Exception as e: # pylint: disable=broad-except | CODE |
| LOW | searx/search/processors/offline.py | 30 | except Exception as e: # pylint: disable=broad-except | CODE |
| LOW | searx/engines/elasticsearch.py | 111 | except Exception as e: | CODE |
| LOW | searx/engines/elasticsearch.py | 136 | except Exception as e: | CODE |
| LOW | searx/engines/elasticsearch.py | 151 | except Exception as e: | CODE |
| LOW | searx/engines/radio_browser.py | 72 | except Exception: | CODE |
| LOW | searx/engines/360search_videos.py | 36 | except Exception as e: | CODE |
| MEDIUM | searx/engines/360search_videos.py | 33 | def response(resp) -> EngineResults: | CODE |
| LOW | searx/engines/sogou_videos.py | 39 | except Exception as e: | CODE |
| MEDIUM | searx/engines/sogou_videos.py | 36 | def response(resp): | CODE |
| LOW | searx/engines/chinaso.py | 111 | except Exception as e: | CODE |
| MEDIUM | searx/engines/chinaso.py | 108 | def response(resp): | CODE |
| LOW | searx/engines/solr.py | 78 | except Exception as e: | CODE |
| LOW | searx/engines/iqiyi.py | 64 | except Exception as e: | CODE |
| MEDIUM | searx/engines/iqiyi.py | 61 | def response(resp): | CODE |
| LOW | searx/engines/__init__.py | 284 | except Exception as e: # pylint: disable=broad-except | CODE |
| LOW | searx/engines/google.py | 376 | except Exception as e: # pylint: disable=broad-except | CODE |
| LOW | searx/engines/wikipedia.py | 171 | except Exception: # pylint: disable=broad-except | CODE |
| LOW | tests/robot/__main__.py | 61 | except Exception: # pylint: disable=broad-except | CODE |
| MEDIUM | tests/robot/__main__.py | 62 | print('Error occurred: {0}'.format(traceback.format_exc())) | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | searxng_extra/update/update_engine_descriptions.py | 97 | def update_description(engine_name: str, lang: str, description: str, source: str, replace: bool = True) -> None: | STRING |
| LOW | searx/valkeydb.py | 30 | logger = logging.getLogger(__name__) | CODE |
| LOW | searx/external_bang.py | 4 | __all__ = ["get_bang_url"] | CODE |
| LOW | searx/weather.py | 6 | __all__ = [ | CODE |
| LOW | searx/cache.py | 8 | __all__ = ["ExpireCacheCfg", "ExpireCacheStats", "ExpireCache", "ExpireCacheSQLite"] | CODE |
| LOW | searx/extended_types.py | 25 | __all__ = ["SXNG_Request", "sxng_request", "SXNG_Response"] | CODE |
| LOW | searx/wikidata_units.py | 9 | __all__ = ["convert_from_si", "convert_to_si", "symbol_to_si"] | CODE |
| LOW | searx/autocomplete.py | 31 | def update_kwargs(**kwargs) -> None: # type: ignore | CODE |
| LOW | searx/brand.py | 10 | __all__ = ["SettingsBrand"] | CODE |
| LOW | searx/metrics/models.py | 11 | __all__ = ["Histogram", "HistogramStorage", "CounterStorage"] | CODE |
| LOW | searx/metrics/__init__.py | 13 | __all__ = [ | CODE |
| LOW | searx/answerers/__init__.py | 41 | __all__ = ["AnswererInfo", "Answerer", "AnswerStorage"] | CODE |
| LOW | searx/favicons/resolvers.py | 9 | __all__ = ["DEFAULT_RESOLVER_MAP", "allesedv", "duckduckgo", "google", "kagi", "yandex"] | CODE |
| LOW | searx/favicons/__init__.py | 11 | __all__ = ["init", "favicon_url", "favicon_proxy"] | CODE |
| LOW | searx/plugins/__init__.py | 116 | __all__ = ["PluginInfo", "Plugin", "PluginStorage", "PluginCfg"] | CODE |
| LOW | searx/plugins/_core.py | 4 | __all__ = ["PluginInfo", "Plugin", "PluginCfg", "PluginStorage"] | CODE |
| LOW | searx/enginelib/__init__.py | 27 | __all__ = ["EngineCache", "Engine", "EngineAbout", "ENGINES_CACHE"] | CODE |
| LOW | searx/enginelib/traits.py | 138 | def set_traits(self, engine: "Engine | types.ModuleType") -> None: | CODE |
| LOW | searx/enginelib/traits.py | 149 | def _set_traits_v1(self, engine: "Engine") -> None: | CODE |
| LOW | searx/infopage/__init__.py | 21 | __all__ = ['InfoPage', 'InfoPageSet'] | CODE |
| LOW | searx/network/__init__.py | 4 | __all__ = ["get_network", "initialize", "check_network_configuration", "raise_for_httperror"] | CODE |
| LOW | searx/network/network.py | 5 | __all__ = ["get_network"] | CODE |
| LOW | searx/result_types/_base.py | 19 | __all__ = ["Result"] | CODE |
| LOW | searx/result_types/keyvalue.py | 18 | __all__ = ["KeyValue"] | CODE |
| LOW | searx/result_types/answer.py | 33 | __all__ = ["AnswerSet", "Answer", "Translations", "WeatherAnswer"] | CODE |
| LOW | searx/result_types/code.py | 18 | __all__ = ["Code"] | CODE |
| LOW | searx/result_types/paper.py | 25 | __all__ = ["Paper"] | CODE |
| LOW | searx/result_types/__init__.py | 16 | __all__ = [ | CODE |
| LOW | searx/result_types/file.py | 18 | __all__ = ["File"] | CODE |
| LOW | searx/result_types/video.py | 12 | __all__ = ["Video"] | CODE |
| LOW | searx/result_types/image.py | 16 | __all__ = ["Image", "ImageRef"] | CODE |
| LOW | searx/search/__init__.py | 4 | __all__ = ["SearchWithPlugins"] | CODE |
| LOW | searx/search/processors/online.py | 4 | __all__ = ["OnlineProcessor", "OnlineParams"] | CODE |
| LOW | searx/search/processors/__init__.py | 4 | __all__ = [ | CODE |
| LOW | searx/engines/duckduckgo.py | 230 | def set_vqd(query: str | int, value: str, params: "OnlineParams") -> None: | CODE |
| LOW | searx/data/tracker_patterns.py | 8 | __all__ = ["TrackerPatternsDB"] | CODE |
| LOW | searx/data/__init__.py | 10 | __all__ = ["ahmia_blacklist_loader", "data_dir", "get_cache"] | CODE |
| LOW | searx/data/currencies.py | 4 | __all__ = ["CurrenciesDB"] | CODE |
| LOW | searx/botdetection/valkeydb.py | 6 | __all__ = ["set_valkey_client", "get_valkey_client"] | CODE |
| LOW | searx/botdetection/config.py | 18 | __all__ = ['Config', 'UNSET', 'SchemaIssue', 'set_global_cfg', 'get_global_cfg'] | CODE |
| LOW | searx/botdetection/__init__.py | 8 | __all__ = ["init", "dump_request", "get_network", "too_many_requests", "ProxyFix"] | CODE |
| LOW | searx/botdetection/_helpers.py | 6 | __all__ = ["log_error_only_once", "dump_request", "get_network", "logger", "too_many_requests"] | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | searx/utils.py | 160 | >>> html_to_text(r'<p><b>Lorem ipsum </i>dolor sit amet</p>') | STRING |
| LOW⚡ | searx/utils.py | 160 | >>> html_to_text(r'<p><b>Lorem ipsum </i>dolor sit amet</p>') | STRING |
| LOW⚡ | searx/utils.py | 161 | 'Lorem ipsum </i>dolor sit amet</p>' | STRING |
| LOW⚡ | searx/utils.py | 161 | 'Lorem ipsum </i>dolor sit amet</p>' | STRING |
| LOW | searx/infopage/fa_IR/search-syntax.md | 63 | - {{search('md5 lorem ipsum')}} | CODE |
| LOW | searx/infopage/fa_IR/search-syntax.md | 64 | - {{search('sha512 lorem ipsum')}} | CODE |
| LOW | searx/infopage/it/search-syntax.md | 88 | - {{search('md5 lorem ipsum')}} | CODE |
| LOW | searx/infopage/it/search-syntax.md | 89 | - {{search('sha512 lorem ipsum')}} | CODE |
| LOW | searx/infopage/de/search-syntax.md | 92 | - {{search('md5 lorem ipsum')}} | CODE |
| LOW | searx/infopage/de/search-syntax.md | 93 | - {{search('sha512 lorem ipsum')}} | CODE |
| LOW | searx/infopage/fr/search-syntax.md | 96 | - {{search('md5 lorem ipsum')}} | CODE |
| LOW | searx/infopage/fr/search-syntax.md | 97 | - {{search('sha512 lorem ipsum')}} | CODE |
| LOW | searx/infopage/en/search-syntax.md | 83 | - {{search('md5 lorem ipsum')}} | CODE |
| LOW | searx/infopage/en/search-syntax.md | 84 | - {{search('sha512 lorem ipsum')}} | CODE |
| LOW | searx/result_types/__init__.py | 90 | res.add( res.types.Answer(answer="lorem ipsum ..", url="https://example.org") ) | STRING |
| LOW | searx/engines/github_code.py | 152 | params['headers']['Authorization'] = "placeholder" | CODE |
| LOW⚡ | tests/unit/test_utils.py | 87 | (r'<p><b>Lorem ipsum </i>dolor sit amet</p>', 'Lorem ipsum </i>dolor sit amet</p>'), | STRING |
| LOW⚡ | tests/unit/test_utils.py | 87 | (r'<p><b>Lorem ipsum </i>dolor sit amet</p>', 'Lorem ipsum </i>dolor sit amet</p>'), | STRING |
| LOW | tests/unit/test_results.py | 33 | result = dict(suggestion="lorem ipsum ..") | CODE |
| LOW⚡ | tests/unit/test_results.py | 46 | url="https://example.org", title="very long title, lorem ipsum", content="Lorem ipsum dolor sit amet .." | CODE |
| LOW⚡ | tests/unit/test_results.py | 46 | url="https://example.org", title="very long title, lorem ipsum", content="Lorem ipsum dolor sit amet .." | CODE |
| LOW⚡ | tests/unit/test_results.py | 50 | eng2 = dict(url="http://example.org", title=result.title, content="lorem ipsum", engine="duckduckgo") | CODE |
| LOW | tests/unit/test_plugins.py | 104 | get_search_mock("lorem ipsum", user_plugins=["plg001", "plg002"]), | CODE |
| LOW | tests/unit/test_engine_github_code.py | 91 | "fragment": "placeholder", | CODE |
| LOW | tests/unit/test_engine_github_code.py | 96 | "placeholder", | CODE |
| LOW | tests/unit/test_plugin_self_info.py | 121 | "USER-AgenT lorem ipsum", | CODE |
| LOW | tests/unit/network/test_network.py | 123 | a_text = 'Lorem Ipsum' | CODE |
| LOW | tests/unit/network/test_network.py | 134 | TEXT = 'Lorem Ipsum' | CODE |
| LOW | tests/unit/network/test_network.py | 210 | TEXT = 'Lorem Ipsum' | CODE |
| LOW | utils/lib.sh | 151 | # usage: RST_INDENT=1 rst_para "lorem ipsum ..." | COMMENT |
| LOW⚡ | docs/dev/csv_table.txt | 1 | stub col row 1, column, "loremLorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy | CODE |
| LOW⚡ | docs/dev/csv_table.txt | 1 | stub col row 1, column, "loremLorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy | CODE |
| LOW⚡ | docs/dev/csv_table.txt | 5 | kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.", column | CODE |
| LOW⚡ | docs/dev/csv_table.txt | 5 | kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.", column | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | searx/webapp.py | 883 | """Render preferences page && save user preferences""" | STRING |
| HIGH | searx/engines/brave.py | 245 | # form: null, | COMMENT |
| HIGH | searx/engines/seekninja.py | 54 | sha256(nonce || solution).startswith("0" * leading) | STRING |
| HIGH | tests/unit/test_js_variable_to_python.py | 81 | ("{'a': true, 'b': false, 'c': null}", {'a': True, 'b': False, 'c': None}), | CODE |
| HIGH⚡ | tests/unit/test_js_variable_to_python.py | 114 | ('{"a": undefined}', {"a": None}), # chompjs returns {"a": "undefined"} | CODE |
| HIGH⚡ | tests/unit/test_js_variable_to_python.py | 115 | ('[undefined, undefined]', [None, None]), # chompjs returns ["undefined", "undefined"] | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | searx/preferences.py | 199 | """Setting of a value that has to be translated in order to be storable""" | STRING |
| MEDIUM | searx/preferences.py | 228 | """Setting of a boolean value that has to be translated in order to be storable""" | STRING |
| LOW | searx/favicons/resolvers.py | 32 | # will just return a 200 regardless of the favicon existing or not | COMMENT |
| LOW | searx/favicons/proxy.py | 141 | # if resolver is empty or not valid, just return HTTP 400. | COMMENT |
| LOW | searx/favicons/proxy.py | 218 | # if resolver is empty or not valid, just return nothing. | COMMENT |
| LOW | searx/search/processors/abstract.py | 285 | # search processor, just pass the value from user's choice unchanged to | COMMENT |
| MEDIUM | searx/engines/postgresql.py | 2 | """PostgreSQL is a powerful and robust open source database. Before configuring | STRING |
| MEDIUM | searx/engines/brave.py | 289 | # video results utilize same schema as video search -> re-use _parse_video_result | COMMENT |
| MEDIUM | searx/engines/core.py | 2 | """CORE_ (COnnecting REpositories) provides a comprehensive bibliographic | STRING |
| MEDIUM | searx/engines/europepmc.py | 2 | """`Europe PMC`_ provides comprehensive access to life sciences literature from | STRING |
| MEDIUM | searx/engines/recoll.py | 131 | # facilitate preview support for known mime types | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | searx/utils.py | 142 | Extract text from a HTML string Args: * html_str (str): string HTML Returns: * str: extracted | STRING |
| HIGH | searx/utils.py | 183 | Extract text from a Markdown string Args: * markdown_str (str): string Markdown Returns: * str | STRING |
| HIGH | searx/utils.py | 250 | Normalize URL: add protocol, join URL with base_url, add trailing slash if there is no path Args: * url (st | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | searx/webapp.py | 1061 | # we make sure to close the response between searxng and the HTTP server | COMMENT |
| MEDIUM | searx/settings.yml | 269 | # Alternatively you can use external files for configuring the "Hostnames plugin": | COMMENT |
| MEDIUM | searx/engines/meilisearch.py | 23 | Here is a simple example to query a Meilisearch instance: | STRING |
| MEDIUM | searx/engines/xpath.py | 55 | Here is a simple example of a XPath engine configured in the :ref:`settings | STRING |
| MEDIUM | searx/engines/json_engine.py | 57 | Here is a simple example of a JSON engine configure in the :ref:`settings | STRING |
| LOW | utils/lib_sxng_weblate.sh | 119 | ( # make sure to always unlock weblate | CODE |
| LOW | utils/lib_sxng_weblate.sh | 221 | ( # make sure to always unlock weblate | CODE |
| MEDIUM | utils/lib.sh | 417 | # replacements you can use:: | COMMENT |
| LOW | utils/searxng.sh | 363 | info_msg "Don't forget to install HTTP site." | CODE |
| LOW | utils/searxng.sh | 386 | MSG="** Don't forget to remove your public site! (${SEARXNG_URL}) **" wait_key 10 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | searx/babel_extract.py | 2 | """This module implements the :origin:`searxng_msg <babel.cfg>` extractor to | STRING |
| MEDIUM | searx/extended_types.py | 2 | """This module implements the type extensions applied by SearXNG. | STRING |
| MEDIUM | searx/autocomplete.py | 2 | """This module implements functions needed for the autocompleter.""" | STRING |
| MEDIUM | searx/search/processors/online.py | 127 | """This method is called in a thread, and before the base method is | STRING |
| MEDIUM | searx/engines/zlibrary.py | 229 | # Create a Locale object for the current locale | COMMENT |
| MEDIUM | searx/engines/wikidata.py | 2 | """This module implements the Wikidata engine. | STRING |
| MEDIUM | searx/engines/wikipedia.py | 2 | """This module implements the Wikipedia engine. Some of this implementations | STRING |
| MEDIUM | searx/botdetection/link_token.py | 94 | """This function is called by a request to URL ``/client<token>.css``. If | STRING |
| MEDIUM | searx/botdetection/link_token.py | 146 | # This function is also called when limiter is inactive / no valkey DB | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | searx/cache.py | 466 | # Check if value is expired. It's possible that it's expired but has not | COMMENT |
| LOW | utils/lib_sxng_container.sh | 80 | # Check if podman or docker is installed | COMMENT |
| LOW | container/entrypoint.sh | 5 | # Check if it's a valid file | COMMENT |
| LOW | container/entrypoint.sh | 20 | # Check if it's a valid directory | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | searx/webutils.py | 173 | CODE | |
| LOW | searx/network/network.py | 72 | CODE | |
| LOW | searx/search/models.py | 31 | CODE | |
| LOW | searx/engines/genius.py | 71 | CODE | |
| LOW | tests/unit/test_plugins.py | 39 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | searx/engines/braveapi.py | 21 | api_key: 'YOUR-API-KEY' # required | STRING |