troubadix 25.2.4__tar.gz → 25.3.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {troubadix-25.2.4 → troubadix-25.3.1}/PKG-INFO +2 -1
- {troubadix-25.2.4 → troubadix-25.3.1}/pyproject.toml +3 -1
- {troubadix-25.2.4 → troubadix-25.3.1}/tests/plugins/test_creation_date.py +40 -0
- troubadix-25.3.1/tests/standalone_plugins/nasl/21.04/21_script.nasl +6 -0
- troubadix-25.3.1/tests/standalone_plugins/nasl/22.04/22_script.nasl +6 -0
- troubadix-25.3.1/tests/standalone_plugins/nasl/common/bar.nasl +10 -0
- troubadix-25.3.1/tests/standalone_plugins/nasl/common/foo.nasl +8 -0
- troubadix-25.3.1/tests/standalone_plugins/nasl/common/foobar.nasl +7 -0
- troubadix-25.3.1/tests/standalone_plugins/nasl/common/gsf/enterprise_script.nasl +5 -0
- troubadix-25.3.1/tests/standalone_plugins/test_dependency_graph.py +201 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/tests/test_naslinter.py +1 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/troubadix/__version__.py +1 -1
- {troubadix-25.2.4 → troubadix-25.3.1}/troubadix/argparser.py +18 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/troubadix/codespell/codespell.exclude +26 -2
- {troubadix-25.2.4 → troubadix-25.3.1}/troubadix/codespell/codespell.ignore +6 -2
- {troubadix-25.2.4 → troubadix-25.3.1}/troubadix/plugins/creation_date.py +49 -35
- {troubadix-25.2.4 → troubadix-25.3.1}/troubadix/plugins/dependencies.py +15 -11
- {troubadix-25.2.4 → troubadix-25.3.1}/troubadix/plugins/spaces_before_dots.py +2 -2
- {troubadix-25.2.4 → troubadix-25.3.1}/troubadix/plugins/valid_oid.py +2 -2
- {troubadix-25.2.4 → troubadix-25.3.1}/troubadix/standalone_plugins/changed_oid.py +2 -8
- troubadix-25.3.1/troubadix/standalone_plugins/dependency_graph/__init__.py +2 -0
- troubadix-25.3.1/troubadix/standalone_plugins/dependency_graph/checks.py +128 -0
- troubadix-25.3.1/troubadix/standalone_plugins/dependency_graph/cli.py +58 -0
- troubadix-25.3.1/troubadix/standalone_plugins/dependency_graph/dependency_graph.py +212 -0
- troubadix-25.3.1/troubadix/standalone_plugins/dependency_graph/models.py +40 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/troubadix/standalone_plugins/deprecate_vts.py +3 -12
- {troubadix-25.2.4 → troubadix-25.3.1}/troubadix/standalone_plugins/file_extensions.py +3 -15
- {troubadix-25.2.4 → troubadix-25.3.1}/troubadix/standalone_plugins/last_modification.py +4 -12
- {troubadix-25.2.4 → troubadix-25.3.1}/troubadix/standalone_plugins/no_solution.py +2 -8
- {troubadix-25.2.4 → troubadix-25.3.1}/troubadix/standalone_plugins/version_updated.py +2 -8
- {troubadix-25.2.4 → troubadix-25.3.1}/LICENSE +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/README.md +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/tests/__init__.py +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/tests/helper/__init__.py +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/tests/helper/test_linguistic_exception_handler.py +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/tests/helper/test_patterns.py +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/tests/plugins/__init__.py +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/tests/plugins/fail.nasl +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/tests/plugins/fail2.nasl +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/tests/plugins/test.nasl +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/tests/plugins/test_badwords.py +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/tests/plugins/test_copyright_text.py +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/tests/plugins/test_copyright_year.py +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/tests/plugins/test_cve_format.py +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/tests/plugins/test_cvss_format.py +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/tests/plugins/test_dependencies.py +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/tests/plugins/test_dependency_category_order.py +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/tests/plugins/test_deprecated_dependency.py +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/tests/plugins/test_deprecated_functions.py +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/tests/plugins/test_double_end_points.py +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/tests/plugins/test_duplicate_oid.py +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/tests/plugins/test_duplicated_script_tags.py +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/tests/plugins/test_encoding.py +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/tests/plugins/test_files/fail_bad_new_line.nasl +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/tests/plugins/test_files/fail_badwords.nasl +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/tests/plugins/test_files/fail_name_and_copyright_newline.nasl +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/tests/plugins/test_files/fail_name_newline.nasl +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/tests/plugins/test_files/fail_permissions.nasl +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/tests/plugins/test_files/fail_spelling.nasl +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/tests/plugins/test_files/nasl/21.04/fail.nasl +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/tests/plugins/test_files/nasl/21.04/fail_badwords.nasl +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/tests/plugins/test_files/nasl/21.04/fail_name_and_copyright_newline.nasl +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/tests/plugins/test_files/nasl/21.04/fail_name_newline.nasl +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/tests/plugins/test_files/nasl/21.04/fail_solution_template.nasl +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/tests/plugins/test_files/nasl/21.04/runner/fail.nasl +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/tests/plugins/test_files/nasl/21.04/runner/fail2.nasl +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/tests/plugins/test_files/nasl/21.04/runner/test.nasl +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/tests/plugins/test_files/nasl/21.04/runner/test_valid_oid.nasl +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/tests/plugins/test_files/nasl/21.04/test.inc +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/tests/plugins/test_files/nasl/21.04/test.nasl +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/tests/plugins/test_files/nasl/warning.nasl +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/tests/plugins/test_files/ok_permissions.nasl +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/tests/plugins/test_files/test_oid.nasl +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/tests/plugins/test_forking_nasl_functions.py +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/tests/plugins/test_get_kb_on_services.py +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/tests/plugins/test_grammar.py +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/tests/plugins/test_http_links_in_tags.py +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/tests/plugins/test_illegal_characters.py +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/tests/plugins/test_log_messages.py +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/tests/plugins/test_malformed_dependencies.py +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/tests/plugins/test_misplaced_compare_in_if.py +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/tests/plugins/test_missing_desc_exit.py +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/tests/plugins/test_missing_tag_solution.py +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/tests/plugins/test_multiple_re_parameters.py +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/tests/plugins/test_newlines.py +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/tests/plugins/test_overlong_description_lines.py +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/tests/plugins/test_overlong_script_tags.py +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/tests/plugins/test_prod_svc_detect_in_vulnvt.py +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/tests/plugins/test_qod.py +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/tests/plugins/test_reporting_consistency.py +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/tests/plugins/test_script_add_preference_type.py +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/tests/plugins/test_script_calls_empty_values.py +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/tests/plugins/test_script_calls_recommended.py +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/tests/plugins/test_script_category.py +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/tests/plugins/test_script_copyright.py +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/tests/plugins/test_script_family.py +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/tests/plugins/test_script_tag_form.py +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/tests/plugins/test_script_tag_whitespaces.py +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/tests/plugins/test_script_tags_mandatory.py +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/tests/plugins/test_script_version_and_last_modification_tags.py +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/tests/plugins/test_script_xref_form.py +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/tests/plugins/test_script_xref_url.py +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/tests/plugins/test_security_messages.py +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/tests/plugins/test_set_get_kb_calls.py +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/tests/plugins/test_solution_text.py +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/tests/plugins/test_solution_type.py +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/tests/plugins/test_spaces_before_dots.py +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/tests/plugins/test_spaces_in_filename.py +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/tests/plugins/test_spelling.py +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/tests/plugins/test_tabs.py +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/tests/plugins/test_todo_tbd.py +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/tests/plugins/test_trailing_spaces_tabs.py +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/tests/plugins/test_using_display.py +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/tests/plugins/test_valid_oid.py +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/tests/plugins/test_valid_script_tag_names.py +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/tests/plugins/test_variable_redefinition_in_foreach.py +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/tests/plugins/test_vt_file_permissions.py +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/tests/plugins/test_vt_placement.py +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/tests/standalone_plugins/__init__.py +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/tests/standalone_plugins/changed_packages/__init__.py +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/tests/standalone_plugins/changed_packages/markers/__init__.py +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/tests/standalone_plugins/changed_packages/markers/test_added_epoch.py +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/tests/standalone_plugins/changed_packages/markers/test_added_release.py +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/tests/standalone_plugins/changed_packages/markers/test_added_udeb.py +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/tests/standalone_plugins/changed_packages/markers/test_changed_update.py +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/tests/standalone_plugins/changed_packages/markers/test_dropped_architecture.py +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/tests/standalone_plugins/changed_packages/test_changed_packages.py +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/tests/standalone_plugins/changed_packages/test_package.py +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/tests/standalone_plugins/test_changed_cves.py +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/tests/standalone_plugins/test_changed_oid.py +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/tests/standalone_plugins/test_deprecate_vts.py +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/tests/standalone_plugins/test_file_extensions.py +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/tests/standalone_plugins/test_last_modification.py +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/tests/standalone_plugins/test_no_solution.py +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/tests/standalone_plugins/test_version_updated.py +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/tests/test_argparser.py +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/tests/test_helper.py +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/tests/test_reporter.py +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/tests/test_results.py +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/tests/test_runner.py +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/troubadix/__init__.py +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/troubadix/codespell/codespell.additions +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/troubadix/helper/__init__.py +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/troubadix/helper/helper.py +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/troubadix/helper/linguistic_exception_handler.py +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/troubadix/helper/patterns.py +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/troubadix/plugin.py +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/troubadix/plugins/__init__.py +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/troubadix/plugins/badwords.py +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/troubadix/plugins/copyright_text.py +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/troubadix/plugins/copyright_year.py +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/troubadix/plugins/cve_format.py +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/troubadix/plugins/cvss_format.py +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/troubadix/plugins/dependency_category_order.py +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/troubadix/plugins/deprecated_dependency.py +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/troubadix/plugins/deprecated_functions.py +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/troubadix/plugins/double_end_points.py +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/troubadix/plugins/duplicate_oid.py +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/troubadix/plugins/duplicated_script_tags.py +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/troubadix/plugins/encoding.py +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/troubadix/plugins/forking_nasl_functions.py +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/troubadix/plugins/get_kb_on_services.py +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/troubadix/plugins/grammar.py +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/troubadix/plugins/http_links_in_tags.py +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/troubadix/plugins/illegal_characters.py +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/troubadix/plugins/log_messages.py +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/troubadix/plugins/malformed_dependencies.py +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/troubadix/plugins/misplaced_compare_in_if.py +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/troubadix/plugins/missing_desc_exit.py +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/troubadix/plugins/missing_tag_solution.py +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/troubadix/plugins/multiple_re_parameters.py +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/troubadix/plugins/newlines.py +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/troubadix/plugins/overlong_description_lines.py +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/troubadix/plugins/overlong_script_tags.py +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/troubadix/plugins/prod_svc_detect_in_vulnvt.py +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/troubadix/plugins/qod.py +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/troubadix/plugins/reporting_consistency.py +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/troubadix/plugins/script_add_preference_type.py +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/troubadix/plugins/script_calls_empty_values.py +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/troubadix/plugins/script_calls_recommended.py +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/troubadix/plugins/script_category.py +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/troubadix/plugins/script_copyright.py +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/troubadix/plugins/script_family.py +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/troubadix/plugins/script_tag_form.py +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/troubadix/plugins/script_tag_whitespaces.py +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/troubadix/plugins/script_tags_mandatory.py +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/troubadix/plugins/script_version_and_last_modification_tags.py +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/troubadix/plugins/script_xref_form.py +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/troubadix/plugins/script_xref_url.py +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/troubadix/plugins/security_messages.py +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/troubadix/plugins/set_get_kb_calls.py +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/troubadix/plugins/solution_text.py +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/troubadix/plugins/solution_type.py +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/troubadix/plugins/spaces_in_filename.py +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/troubadix/plugins/spelling.py +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/troubadix/plugins/tabs.py +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/troubadix/plugins/todo_tbd.py +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/troubadix/plugins/trailing_spaces_tabs.py +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/troubadix/plugins/using_display.py +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/troubadix/plugins/valid_script_tag_names.py +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/troubadix/plugins/variable_assigned_in_if.py +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/troubadix/plugins/variable_redefinition_in_foreach.py +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/troubadix/plugins/vt_file_permissions.py +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/troubadix/plugins/vt_placement.py +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/troubadix/reporter.py +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/troubadix/results.py +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/troubadix/runner.py +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/troubadix/standalone_plugins/__init__.py +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/troubadix/standalone_plugins/allowed_rev_diff.py +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/troubadix/standalone_plugins/changed_cves.py +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/troubadix/standalone_plugins/changed_packages/changed_packages.py +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/troubadix/standalone_plugins/changed_packages/marker/__init__.py +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/troubadix/standalone_plugins/changed_packages/marker/added_epoch.py +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/troubadix/standalone_plugins/changed_packages/marker/added_release.py +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/troubadix/standalone_plugins/changed_packages/marker/added_udeb.py +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/troubadix/standalone_plugins/changed_packages/marker/changed_update.py +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/troubadix/standalone_plugins/changed_packages/marker/dropped_architecture.py +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/troubadix/standalone_plugins/changed_packages/marker/marker.py +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/troubadix/standalone_plugins/changed_packages/package.py +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/troubadix/standalone_plugins/common.py +0 -0
- {troubadix-25.2.4 → troubadix-25.3.1}/troubadix/troubadix.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: troubadix
|
|
3
|
-
Version: 25.
|
|
3
|
+
Version: 25.3.1
|
|
4
4
|
Summary: A linting and QA check tool for NASL files
|
|
5
5
|
License: GPL-3.0-or-later
|
|
6
6
|
Author: Greenbone
|
|
@@ -21,6 +21,7 @@ Requires-Dist: chardet (>=4,<6)
|
|
|
21
21
|
Requires-Dist: charset-normalizer (>=3.2.0,<4.0.0)
|
|
22
22
|
Requires-Dist: codespell (==2.4.1)
|
|
23
23
|
Requires-Dist: gitpython (>=3.1.31,<4.0.0)
|
|
24
|
+
Requires-Dist: networkx (>=3.4.2,<4.0.0)
|
|
24
25
|
Requires-Dist: pontos (>=22.7,<26.0)
|
|
25
26
|
Requires-Dist: python-magic (>=0.4.25,<0.5.0)
|
|
26
27
|
Requires-Dist: validators (>=0.34.0,<0.35.0)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[tool.poetry]
|
|
2
2
|
name = "troubadix"
|
|
3
|
-
version = "25.
|
|
3
|
+
version = "25.3.1"
|
|
4
4
|
description = "A linting and QA check tool for NASL files"
|
|
5
5
|
authors = ["Greenbone <info@greenbone.net>"]
|
|
6
6
|
license = "GPL-3.0-or-later"
|
|
@@ -32,6 +32,7 @@ chardet = ">=4,<6"
|
|
|
32
32
|
validators = "^0.34.0"
|
|
33
33
|
gitpython = "^3.1.31"
|
|
34
34
|
charset-normalizer = "^3.2.0"
|
|
35
|
+
networkx = "^3.4.2"
|
|
35
36
|
|
|
36
37
|
[tool.poetry.group.dev.dependencies]
|
|
37
38
|
autohooks = ">=21.7.0"
|
|
@@ -81,6 +82,7 @@ troubadix-changed-cves = 'troubadix.standalone_plugins.changed_cves:main'
|
|
|
81
82
|
troubadix-allowed-rev-diff = 'troubadix.standalone_plugins.allowed_rev_diff:main'
|
|
82
83
|
troubadix-file-extensions = 'troubadix.standalone_plugins.file_extensions:main'
|
|
83
84
|
troubadix-deprecate-vts = 'troubadix.standalone_plugins.deprecate_vts:main'
|
|
85
|
+
troubadix-dependency-graph = 'troubadix.standalone_plugins.dependency_graph.dependency_graph:main'
|
|
84
86
|
|
|
85
87
|
[build-system]
|
|
86
88
|
requires = ["poetry-core>=1.0.0"]
|
|
@@ -153,3 +153,43 @@ class CheckCreationDateTestCase(PluginTestCase):
|
|
|
153
153
|
"False or incorrectly formatted creation_date.",
|
|
154
154
|
results[0].message,
|
|
155
155
|
)
|
|
156
|
+
|
|
157
|
+
def test_creation_date_greater_than_last_modification(self):
|
|
158
|
+
path = Path("some/file.nasl")
|
|
159
|
+
content = (
|
|
160
|
+
' script_tag(name:"creation_date", value:"2025-01-01 00:00:01 '
|
|
161
|
+
'+0200 (Wed, 01 Jan 2025)");\n'
|
|
162
|
+
' script_tag(name:"last_modification", value:"2025-01-01 00:00:00 '
|
|
163
|
+
'+0200 (Wed, 01 Jan 2025)");\n'
|
|
164
|
+
)
|
|
165
|
+
fake_context = self.create_file_plugin_context(
|
|
166
|
+
nasl_file=path, file_content=content
|
|
167
|
+
)
|
|
168
|
+
plugin = CheckCreationDate(fake_context)
|
|
169
|
+
|
|
170
|
+
results = list(plugin.run())
|
|
171
|
+
|
|
172
|
+
self.assertEqual(len(results), 1)
|
|
173
|
+
|
|
174
|
+
self.assertIsInstance(results[0], LinterError)
|
|
175
|
+
self.assertEqual(
|
|
176
|
+
"The creation_date must not be greater than the last modification date.",
|
|
177
|
+
results[0].message,
|
|
178
|
+
)
|
|
179
|
+
|
|
180
|
+
def test_creation_date_equal_last_modification(self):
|
|
181
|
+
path = Path("some/file.nasl")
|
|
182
|
+
content = (
|
|
183
|
+
' script_tag(name:"creation_date", value:"2025-01-01 00:00:00 '
|
|
184
|
+
'+0200 (Wed, 01 Jan 2025)");\n'
|
|
185
|
+
' script_tag(name:"last_modification", value:"2025-01-01 00:00:00 '
|
|
186
|
+
'+0200 (Wed, 01 Jan 2025)");\n'
|
|
187
|
+
)
|
|
188
|
+
fake_context = self.create_file_plugin_context(
|
|
189
|
+
nasl_file=path, file_content=content
|
|
190
|
+
)
|
|
191
|
+
plugin = CheckCreationDate(fake_context)
|
|
192
|
+
|
|
193
|
+
results = list(plugin.run())
|
|
194
|
+
|
|
195
|
+
self.assertEqual(len(results), 0)
|
|
@@ -0,0 +1,201 @@
|
|
|
1
|
+
# SPDX-License-Identifier: GPL-3.0-or-later
|
|
2
|
+
# SPDX-FileCopyrightText: 2024 Greenbone AG
|
|
3
|
+
import os
|
|
4
|
+
import unittest
|
|
5
|
+
from io import StringIO
|
|
6
|
+
from pathlib import Path
|
|
7
|
+
from unittest.mock import patch
|
|
8
|
+
|
|
9
|
+
from troubadix.plugins.dependency_category_order import VTCategory
|
|
10
|
+
from troubadix.standalone_plugins.dependency_graph.cli import parse_args
|
|
11
|
+
from troubadix.standalone_plugins.dependency_graph.dependency_graph import (
|
|
12
|
+
Reporter,
|
|
13
|
+
create_graph,
|
|
14
|
+
determine_feed,
|
|
15
|
+
extract_category,
|
|
16
|
+
extract_dependencies,
|
|
17
|
+
get_feed,
|
|
18
|
+
get_scripts,
|
|
19
|
+
main,
|
|
20
|
+
)
|
|
21
|
+
from troubadix.standalone_plugins.dependency_graph.models import (
|
|
22
|
+
Dependency,
|
|
23
|
+
Feed,
|
|
24
|
+
Result,
|
|
25
|
+
Script,
|
|
26
|
+
)
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
class TestReporter(unittest.TestCase):
|
|
30
|
+
def setUp(self):
|
|
31
|
+
self.result = Result(
|
|
32
|
+
name="TestScript",
|
|
33
|
+
warnings=["duplicate dependencies"],
|
|
34
|
+
errors=["missing dependencies"],
|
|
35
|
+
)
|
|
36
|
+
|
|
37
|
+
@patch("sys.stdout", new_callable=StringIO)
|
|
38
|
+
def test_report_verbosity_2(self, mock_stdout):
|
|
39
|
+
reporter = Reporter(verbosity=2)
|
|
40
|
+
reporter.report([self.result])
|
|
41
|
+
|
|
42
|
+
output = mock_stdout.getvalue()
|
|
43
|
+
|
|
44
|
+
self.assertIn("TestScript - warnings: 1, errors: 1", output)
|
|
45
|
+
self.assertIn("warning: duplicate dependencies", output)
|
|
46
|
+
self.assertIn("error: missing dependencies", output)
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
class TestCLIArgs(unittest.TestCase):
|
|
50
|
+
@patch(
|
|
51
|
+
"sys.argv",
|
|
52
|
+
[
|
|
53
|
+
"prog",
|
|
54
|
+
"--root",
|
|
55
|
+
"tests/standalone_plugins/nasl",
|
|
56
|
+
"--feed",
|
|
57
|
+
"feed_22_04",
|
|
58
|
+
"--log",
|
|
59
|
+
"info",
|
|
60
|
+
],
|
|
61
|
+
)
|
|
62
|
+
def test_parse_args_ok(self):
|
|
63
|
+
args = parse_args()
|
|
64
|
+
self.assertEqual(args.root, Path("tests/standalone_plugins/nasl"))
|
|
65
|
+
self.assertEqual(args.feed, [Feed.FEED_22_04])
|
|
66
|
+
self.assertEqual(args.log, "info")
|
|
67
|
+
|
|
68
|
+
@patch("sys.stderr", new_callable=StringIO)
|
|
69
|
+
@patch("sys.argv", ["prog", "--root", "not_real_dir"])
|
|
70
|
+
def test_parse_args_no_dir(self, mock_stderr):
|
|
71
|
+
with self.assertRaises(SystemExit):
|
|
72
|
+
parse_args()
|
|
73
|
+
self.assertRegex(mock_stderr.getvalue(), "invalid directory_type")
|
|
74
|
+
|
|
75
|
+
@patch("sys.stderr", new_callable=StringIO)
|
|
76
|
+
@patch(
|
|
77
|
+
"sys.argv",
|
|
78
|
+
[
|
|
79
|
+
"prog",
|
|
80
|
+
"--root",
|
|
81
|
+
"tests/standalone_plugins/nasl",
|
|
82
|
+
"--feed",
|
|
83
|
+
"invalid_feed",
|
|
84
|
+
],
|
|
85
|
+
)
|
|
86
|
+
def test_parse_args_invalid_feed(self, mock_stderr):
|
|
87
|
+
with self.assertRaises(SystemExit):
|
|
88
|
+
parse_args()
|
|
89
|
+
self.assertRegex(mock_stderr.getvalue(), "Invalid Feed value")
|
|
90
|
+
|
|
91
|
+
@patch.dict(os.environ, {"VTDIR": "/mock/env/path"})
|
|
92
|
+
@patch("sys.argv", ["prog"])
|
|
93
|
+
def test_parse_args_with_env(self):
|
|
94
|
+
args = parse_args()
|
|
95
|
+
self.assertEqual(args.root, Path("/mock/env/path"))
|
|
96
|
+
|
|
97
|
+
@patch("sys.argv", ["prog", "--root", "tests/standalone_plugins/nasl"])
|
|
98
|
+
def test_parse_args_defaults(self):
|
|
99
|
+
args = parse_args()
|
|
100
|
+
self.assertEqual(args.log, "WARNING")
|
|
101
|
+
self.assertEqual(args.feed, [Feed.FULL])
|
|
102
|
+
|
|
103
|
+
|
|
104
|
+
class TestDependencyGraph(unittest.TestCase):
|
|
105
|
+
|
|
106
|
+
def setUp(self) -> None:
|
|
107
|
+
self.local_root = "tests/standalone_plugins/nasl"
|
|
108
|
+
self.script_content = """
|
|
109
|
+
if(description)
|
|
110
|
+
{
|
|
111
|
+
script_category(ACT_GATHER_INFO);
|
|
112
|
+
script_dependencies( "foo.nasl", "foo.nasl" );
|
|
113
|
+
|
|
114
|
+
if(FEED_NAME == "GSF" || FEED_NAME == "GEF" || FEED_NAME == "SCM")
|
|
115
|
+
script_dependencies("gsf/enterprise_script.nasl");
|
|
116
|
+
|
|
117
|
+
exit(0);
|
|
118
|
+
}
|
|
119
|
+
"""
|
|
120
|
+
|
|
121
|
+
def test_get_feed(self):
|
|
122
|
+
feed = [Feed.FULL]
|
|
123
|
+
scripts = get_feed(Path(self.local_root), feed)
|
|
124
|
+
self.assertEqual(len(scripts), 6)
|
|
125
|
+
|
|
126
|
+
@patch("pathlib.Path.read_text")
|
|
127
|
+
def test_get_scripts(self, mock_read_text):
|
|
128
|
+
mock_read_text.return_value = self.script_content
|
|
129
|
+
scripts = get_scripts(Path(self.local_root) / "common")
|
|
130
|
+
self.assertEqual(len(scripts), 4)
|
|
131
|
+
self.assertEqual(scripts[0].feed, "community")
|
|
132
|
+
self.assertEqual(len(scripts[0].dependencies), 3)
|
|
133
|
+
self.assertEqual(scripts[0].category, VTCategory.ACT_GATHER_INFO)
|
|
134
|
+
self.assertEqual(scripts[0].deprecated, False)
|
|
135
|
+
|
|
136
|
+
def test_determine_feed(self):
|
|
137
|
+
community_script = Path("foo/script.nasl")
|
|
138
|
+
enterprise_script = Path("gsf/script.nasl")
|
|
139
|
+
|
|
140
|
+
self.assertEqual(determine_feed(community_script), "community")
|
|
141
|
+
self.assertEqual(determine_feed(enterprise_script), "enterprise")
|
|
142
|
+
|
|
143
|
+
def test_extract_dependencies(self):
|
|
144
|
+
dependencies = extract_dependencies(self.script_content)
|
|
145
|
+
self.assertEqual(len(dependencies), 3)
|
|
146
|
+
self.assertEqual(dependencies[0].name, "foo.nasl")
|
|
147
|
+
self.assertEqual(dependencies[1].name, "foo.nasl")
|
|
148
|
+
self.assertEqual(dependencies[2].name, "gsf/enterprise_script.nasl")
|
|
149
|
+
self.assertEqual(dependencies[0].is_enterprise_feed, False)
|
|
150
|
+
self.assertEqual(dependencies[1].is_enterprise_feed, False)
|
|
151
|
+
self.assertEqual(dependencies[2].is_enterprise_feed, True)
|
|
152
|
+
|
|
153
|
+
def test_extract_category(self):
|
|
154
|
+
category = extract_category(self.script_content)
|
|
155
|
+
self.assertEqual(category, VTCategory.ACT_GATHER_INFO)
|
|
156
|
+
|
|
157
|
+
def test_create_graph(self):
|
|
158
|
+
dependency1 = Dependency("bar.nasl", False)
|
|
159
|
+
scripts = [
|
|
160
|
+
Script("foo.nasl", "community", [dependency1], 0, False),
|
|
161
|
+
Script("bar.nasl", "enterprise", [], 0, False),
|
|
162
|
+
]
|
|
163
|
+
graph = create_graph(scripts)
|
|
164
|
+
self.assertEqual(len(list(graph.nodes)), 2)
|
|
165
|
+
|
|
166
|
+
@patch("sys.stdout", new_callable=StringIO) # mock_stdout (second argument)
|
|
167
|
+
@patch("sys.stderr", new_callable=StringIO) # mock_stderr (first argument)
|
|
168
|
+
@patch(
|
|
169
|
+
"sys.argv", ["prog", "--root", "tests/standalone_plugins/nasl", "-v"]
|
|
170
|
+
) # no argument
|
|
171
|
+
def test_full_run(self, mock_stderr, mock_stdout):
|
|
172
|
+
return_code = main()
|
|
173
|
+
output = mock_stdout.getvalue()
|
|
174
|
+
|
|
175
|
+
self.assertIn("error: missing dependency file: missing.nasl:", output)
|
|
176
|
+
self.assertIn(
|
|
177
|
+
"error: cyclic dependency: ", # order is random so can't match the output
|
|
178
|
+
output,
|
|
179
|
+
)
|
|
180
|
+
self.assertIn(
|
|
181
|
+
"error: unchecked cross-feed-dependency: foo.nasl(community feed) depends on"
|
|
182
|
+
" gsf/enterprise_script.nasl(enterprise feed), but the"
|
|
183
|
+
" current feed is not properly checked",
|
|
184
|
+
output,
|
|
185
|
+
)
|
|
186
|
+
self.assertIn(
|
|
187
|
+
"error: bar.nasl depends on foo.nasl which has a lower category order",
|
|
188
|
+
output,
|
|
189
|
+
)
|
|
190
|
+
self.assertIn(
|
|
191
|
+
"error: foo.nasl depends on deprecated script foobar.nasl", output
|
|
192
|
+
)
|
|
193
|
+
self.assertIn(
|
|
194
|
+
"warning: Duplicate dependencies in bar.nasl: foo.nasl", output
|
|
195
|
+
)
|
|
196
|
+
self.assertIn(
|
|
197
|
+
"warning: cross-feed-dependency: bar.nasl(community feed)"
|
|
198
|
+
" depends on gsf/enterprise_script.nasl(enterprise feed)",
|
|
199
|
+
output,
|
|
200
|
+
)
|
|
201
|
+
self.assertEqual(return_code, 1)
|
|
@@ -26,6 +26,7 @@ from pathlib import Path
|
|
|
26
26
|
from pontos.terminal import Terminal
|
|
27
27
|
|
|
28
28
|
|
|
29
|
+
# allows non existent paths and directory paths
|
|
29
30
|
def directory_type(string: str) -> Path:
|
|
30
31
|
directory_path = Path(string)
|
|
31
32
|
if directory_path.exists() and not directory_path.is_dir():
|
|
@@ -33,6 +34,15 @@ def directory_type(string: str) -> Path:
|
|
|
33
34
|
return directory_path
|
|
34
35
|
|
|
35
36
|
|
|
37
|
+
# allows only existing directory paths
|
|
38
|
+
def directory_type_existing(string: str) -> Path:
|
|
39
|
+
directory_path = Path(string)
|
|
40
|
+
if not directory_path.is_dir():
|
|
41
|
+
raise ValueError(f"{string} is not a directory.")
|
|
42
|
+
return directory_path
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
# allows non existent paths and file paths
|
|
36
46
|
def file_type(string: str) -> Path:
|
|
37
47
|
file_path = Path(string)
|
|
38
48
|
if file_path.exists() and not file_path.is_file():
|
|
@@ -40,6 +50,14 @@ def file_type(string: str) -> Path:
|
|
|
40
50
|
return file_path
|
|
41
51
|
|
|
42
52
|
|
|
53
|
+
# allows only existing file paths
|
|
54
|
+
def file_type_existing(string: str) -> Path:
|
|
55
|
+
file_path = Path(string)
|
|
56
|
+
if not file_path.is_file():
|
|
57
|
+
raise ValueError(f"{string} is not a file.")
|
|
58
|
+
return file_path
|
|
59
|
+
|
|
60
|
+
|
|
43
61
|
def check_cpu_count(number: str) -> int:
|
|
44
62
|
"""Make sure this value is valid
|
|
45
63
|
Default: use half of the available cores to not block the machine"""
|
|
@@ -34,6 +34,7 @@
|
|
|
34
34
|
0x20: C8 E6 AB 65 3B A9 5A 0E 14 00 00 05 41 44 4D 49 ...e;.Z.....ADMI
|
|
35
35
|
0x20: D5 A6 22 5D 33 E4 C6 0E 14 00 00 05 61 64 6D 69 .."]3.......admi
|
|
36
36
|
0x40: 61 6C 64 6F 6D 61 69 6E 00 07 64 65 66 61 75 6C aldomain..defaul
|
|
37
|
+
0x40: 66 6C 61 74 65 3D 67 7A 69 70 0D 0A 66 69 6C 65 flate=gzip..file
|
|
37
38
|
# 0x50: 72 6F 2E 70 72 6F 64 75 63 74 2E 64 65 76 69 63 ro.product.devic
|
|
38
39
|
# 0x50: 74 72 69 6E 67 20 6D 69 73 73 69 6E 67 20 6F 72 tring missing or
|
|
39
40
|
# 0x50: 75 65 73 74 3A 20 47 45 54 20 2F 20 uest: GET / # nb: Trailing space
|
|
@@ -231,6 +232,7 @@ Claus Wahlers reported that random images from GPU memory
|
|
|
231
232
|
clen +
|
|
232
233
|
clen = "567";
|
|
233
234
|
clen = data_len( data:_ciphers );
|
|
235
|
+
- Cleo Streem
|
|
234
236
|
"cliente",
|
|
235
237
|
cmd = 'for usr in $(cut -d: -f1 /etc/shadow); do [[ $(chage --list $usr | grep \'^Last password change\' | cut -d: -f2) > $(date) ]] && echo "$usr :$(chage --list $usr | grep \'^Last password change\' | cut -d: -f2)"; done';
|
|
236
238
|
cmd = "mount | grep -w ro";
|
|
@@ -262,6 +264,9 @@ Corrected a badly constracted file which could have allowed treating of
|
|
|
262
264
|
could lead to shared memory segments of other users beeing freed
|
|
263
265
|
cpe = build_cpe(value:appVer, exp:"^([0-9]\.[0-9]+\.[0-9]+)", base:"cpe:/a:shemes:grabit:");
|
|
264
266
|
cpe = build_cpe(value:ver, exp:"^([0-9.]+)", base:"cpe:/a:mitre:ovaldi:");
|
|
267
|
+
cpe = build_cpe(value: vers, exp: "^([0-9.]+)", base: "cpe:/a:aprox:aproxengine:");
|
|
268
|
+
cpe = "cpe:/a:aprox:aproxengine";
|
|
269
|
+
CPE = "cpe:/a:aprox:aproxengine";
|
|
265
270
|
CPE = "cpe:/a:mapp:webtrekk:";
|
|
266
271
|
cpe = "cpe:/a:mitre:ovaldi";
|
|
267
272
|
CPE = "cpe:/a:netsparker:wass";
|
|
@@ -270,6 +275,7 @@ CPE: cpe:/a:tawk:tawk.to_live_chat:0.8.0
|
|
|
270
275
|
cpe =~ "^cpe:/o:hp:laserjet_pro_420[1-3](cdn|dn|dw|dne|dwe)_firmware") {
|
|
271
276
|
CPU' could have occured because a retry loop continually finds the same
|
|
272
277
|
crafted IFF ILBM file. NOTE: some of these details are obtained from
|
|
278
|
+
crafted wLongsPerEntry or nEntriesInUse value in the indx chunk, which
|
|
273
279
|
crapData = string("ALLO ", crap(length: 25000),"\r\n");
|
|
274
280
|
crash) via a malformed file with UPack encoding (CVE-2009-1371).
|
|
275
281
|
Create all system-defined macros defore processing command-line given
|
|
@@ -340,6 +346,7 @@ CVE-2020-36158: Fixed an issue wich might have allowed a remote
|
|
|
340
346
|
CVE-2020-5208: Fixed multiple remote code executtion vulnerabilities
|
|
341
347
|
CVE-2020-8492: Fixed a regular expression in urrlib that was prone to
|
|
342
348
|
CVE-2021-30004: Fixed an issue where forging attacks might have occured
|
|
349
|
+
* CVE-2021-47311: net: qcom/emac: fix UAF in emac_remove (bsc#1225010).
|
|
343
350
|
dass eine geeignete Windows 8.1 Version, vorzugsweise eine 64-Bit Variante, eingesetzt werden muss.");
|
|
344
351
|
"DataArchivingService/webcontent/aas",
|
|
345
352
|
"/DataArchivingService/webcontent/aas/aas_store.jsp");
|
|
@@ -398,7 +405,7 @@ Enable log information of starting/stoping services. (bsc#1144923,
|
|
|
398
405
|
<!-- Ende Message Box -->
|
|
399
406
|
Engineering (TE) database and then a subsequent operation attempts to process these, rpd will
|
|
400
407
|
Engineering (TE) tunnel's physical source interface is not propagated to hardware after the adjacency is lost.
|
|
401
|
-
- ERRO[0000] Error creating docker key file: CreateKeyFile write root.key file failed. open /root/.docker/root.key: permission denied
|
|
408
|
+
- ERRO[0000] Error creating docker key file: CreateKeyFile write root.key file failed. open /root/.docker/root.key: permission denied
|
|
402
409
|
eSpace IAD, eSpace U1981 and eSpace USM.");
|
|
403
410
|
establishment of the Cisco Nexus 9000 Series Application Centric Infrastructure (ACI) Mode Switch
|
|
404
411
|
exact-width integer types int{N}_t and uint{N}_t.
|
|
@@ -410,10 +417,13 @@ EXP=expext.dll
|
|
|
410
417
|
expressions that are not properly handled by a stap script that
|
|
411
418
|
* extended EAP-SIM/AKA fast re-authentication to allow use with FILS
|
|
412
419
|
extended EAP-SIM/AKA fast re-authentication to allow use with FILS
|
|
420
|
+
- Extended HTTP methods: ACL, BASELINE-CONTROL, BIND, CHECKIN, CHECKOUT, COPY, LABEL, LINK, LOCK,
|
|
421
|
+
extended_methods = make_list("ACL", "BASELINE-CONTROL", "BIND", "CHECKIN", "CHECKOUT", "COPY",
|
|
413
422
|
external emulators, which may have cuased Xen to crash, resulting in a
|
|
414
423
|
'facsimiletelephonenumber' to the Access Control Instruction (ACI) for user
|
|
415
424
|
family_id = 'oval:org.mitre.oval:obj:99';
|
|
416
425
|
family_xml = '\t\t<family_item xmlns="http://oval.mitre.org/XMLSchema/oval-sys' +
|
|
426
|
+
"Faroe Islands" : [ "FO", "English", "PAL", "(UTC+00:00) Dublin", 0 ],
|
|
417
427
|
(FATE#312793, bnc#782369). The userland utilities were published seperately to support this feature.
|
|
418
428
|
(FATE#313309) The ipset userland utility will be published seperately to support this feature.
|
|
419
429
|
(FATE#314441). A seperate hyper-v package will be published to support this feature.
|
|
@@ -546,6 +556,7 @@ if (http_vuln_check(port: port, url: url, pattern: "<title>WAN Setup", check_hea
|
|
|
546
556
|
if(!isnull(res = isdpkgvuln(pkg:"nd", ver:"0.5.0-1woody1", rls:"DEB3.0"))) {
|
|
547
557
|
if(!isnull(res = isrpmvuln(pkg:"libell", rpm:"libell~0.26~1.fc31", rls:"FC31"))) {
|
|
548
558
|
if( "Login successed" >< recv ) {
|
|
559
|
+
if (methods = egrep(pattern: "^([Aa]llow|[Pp]ublic)\s*:", string: res, icase: FALSE)) {
|
|
549
560
|
if( model =~ "^(RICOH|LANIER|SAVIN|NRG)" && "Network Printer" >< model ) {
|
|
550
561
|
if( ( model =~ '^RP200' || model =~ '^TE[3456]0' ) && revcomp( a: version, b: "v600r006c00spc500" ) < 0) {
|
|
551
562
|
if( model =~ '^TE[3456]0' && revcomp( a: version, b: "v600r006c00spc500" ) < 0 ) {
|
|
@@ -565,7 +576,9 @@ if (prod =~ "^BMX\s*NOE\s*0110$") {
|
|
|
565
576
|
if (prod =~ "^BMX\s*NOE\s*0110$" || prod =~ "^BMX\s*NOE\s*0110H$") {
|
|
566
577
|
if (prod =~ "^BMX\s*NOE\s*0110" && version_is_less(version: version, test_version: "6.5")) {
|
|
567
578
|
if (prod =~ "^BMX\s*NOE\s*0110" && version_is_less(version: version, test_version: "6.70")) {
|
|
579
|
+
if (prod =~ "^BMX\s*NOE\s*0200") {
|
|
568
580
|
if (!prod || (prod !~ "^BMX\s*P34" && prod !~ "^BMX\s*NOE\s*01[01]0"))
|
|
581
|
+
if (!prod || (prod !~ "^BMX\s*P34" && prod !~ "^BMX\s*NOE\s*0(1[01]|20)0"))
|
|
569
582
|
if (!prod || (prod !~ "^BMX\s*P34" && prod !~ "^BMX\s*NOR\s*0200H" && prod !~ "^BMX\s*NOE\s*0100" &&
|
|
570
583
|
if( r =~ " (A\. A\. Milne|Albert Einstein|Anonimo|Antico proverbio cinese|Autor desconocido|Charles Dickens|Francisco de Quevedo y Villegas|George Bernard Shaw|Jaime Balmes|Johann Wolfgang von Goethe|Jil Sander|Juana de Asbaje|Konfucius|Lord Philip Chesterfield|Montaigne|Petrarca|Ralph Waldo Emerson|Seneca|Syrus|Werner von Siemens)" ||
|
|
571
584
|
if(rcvRes && '>iAm[i]nE<' >< rcvRes)
|
|
@@ -585,6 +598,7 @@ if( "Server: Boa" >!< banner || ( "AirLive" >!< banner && banner !~ "(WL|MD|BU|P
|
|
|
585
598
|
if (sysdesc =~ "^(RICOH|LANIER|SAVIN|NRG)" && (sysdesc =~ "(RICOH|LANIER|SAVIN|NRG) Network Printer" ||
|
|
586
599
|
if ("<title>Cisco NFVIS</title>" >< res && 'content="Xenon Boostrap Admin Panel"' >< res) {
|
|
587
600
|
if ("<title>COMfortel</title>" >< res && "/statics/script/pageChallenge.js" >< res) {
|
|
601
|
+
if( "<title>Login to Axis2:: Administartion page</title>" >< buf8 ||
|
|
588
602
|
if( "[Xx]-[Aa]dobe-[Cc]ontent" >< pattern )
|
|
589
603
|
if( "[Xx]-[Aa]dobe-[Cc]ontent" >< pattern )
|
|
590
604
|
If you disable this policy setting, transcripting of PowerShell-based applications is disabled by
|
|
@@ -678,7 +692,9 @@ kJtP0F6mv/Afe/5s7yd3ZJ/72yT73NjLg0vWbmLkop6eOR+CKw4nxorWxpocAj0p
|
|
|
678
692
|
# Kubernetes Dashboard Public WAN (Internet) Accessible
|
|
679
693
|
L3: conring size for XEN HV's with huge memory to small. Inital Xen logs
|
|
680
694
|
LAST_PATCH_UPDATE UpToDate
|
|
695
|
+
"leadin/readme.txt", "HubSpot#---#=== HubSpot -#---#Stable tag: ([0-9.]+)#---#cpe:/a:hubspot:hubspot",
|
|
681
696
|
leaks because of a missing check when transfering pages via
|
|
697
|
+
<li><a href="Status_Router.asp"><strong><script type="text/javascript">Capture(bmenu.statu)</script></strong></a></li>
|
|
682
698
|
library: Increment to 7:0:1 No changes, no removals New fuctions:
|
|
683
699
|
[link moved to references] has more informations.
|
|
684
700
|
<link rel="stylesheet" href="/bui/base.css?v=GWAY-8.3.1-0086" />
|
|
@@ -718,6 +734,7 @@ Mark Shepard discovered a double free in the TCP listener cleanup which could re
|
|
|
718
734
|
"messasges",
|
|
719
735
|
"Metastasio (Ipermestra)" >< banner || '"\r\nAnonimo' >< banner || banner =~ '^"[^"]+" *Autor desconocido[ \t\r\n]*$' || "/usr/games/fortune: not found" >< banner ||
|
|
720
736
|
"Metastasio (Ipermestra)" >< r || '"\r\nAnonimo' >< r || r =~ '^"[^"]+" *Autor desconocido[ \t\r\n]*$' ) {
|
|
737
|
+
methods = eregmatch(pattern: "^([Aa]llow|[Pp]ublic)\s*:\s*([A-Z,]+\s*([A-Z ,]+)?)", string: methods,
|
|
721
738
|
MFSA 2012-27 / CVE-2012-0474: Security researchers Jordi Chancel and Eddy Bordi reported that they could short-circuit page loads to show the address of a different site than what is ... [Please see the references for more information on the vulnerabilities]");
|
|
722
739
|
MFSA 2012-75 / CVE-2012-3984: Security researcher David Bloom of Cue discovered that 'select' elements are always-on-top chromeless windows and that navigation away from a page with an active 'select' menu does not remove this window.When another menu is opened programmatically on a new page, the original 'select' menu can be retained and arbitrary HTML content within it rendered, allowing an attacker to cover arbitrary portions of the new page through absolute positioning/scrolling, leading to spoofing attacks. Security researcher Jordi Chancel found a variation that would allow for click-jacking attacks was well.
|
|
723
740
|
MFSA 2013-23 / CVE-2013-0765: Mozilla developer Boris Zbarsky reported that in some circumstances a wrapped WebIDL object can be wrapped multiple times, overwriting the existing wrapp... [Please see the references for more information on the vulnerabilities]");
|
|
@@ -863,6 +880,7 @@ reenable php7-dba support of Berkeley DB (bsc#1108554)");
|
|
|
863
880
|
# Ref : http://www.hsc.fr/ressources/articles/win_net_srv/index.html.en by Jean-Baptiste Marchand
|
|
864
881
|
register_and_report_cpe( app:"Netsparker - Web Application Security Scanner", ver:netVer, base:"cpe:/a:netsparker:wass:", expr:"^([0-9.]+)", insloc:netPath );
|
|
865
882
|
register_and_report_cpe(app:"Wiesemann & Theis GmbH " + appName, ver:version, concluded:concluded,
|
|
883
|
+
* [REGRESSION] 'call into AER handling regardless of severity' triggers
|
|
866
884
|
reg_xml = '\t\t<registry_item' + status + ' xmlns="http://oval.mitre.org/' +
|
|
867
885
|
Reject invalid eliptic curve point coordinates (bsc#1131291)");
|
|
868
886
|
rejection for EXTRAVERSION = -xfs, but likely little else will be
|
|
@@ -891,6 +909,7 @@ req = string("POST /UE/ProcessForm HTTP/1.1\r\n",
|
|
|
891
909
|
res = http_get_cache(port: port, item: dir + "/product.comparision.php");
|
|
892
910
|
- Restrict envrionment variable expansion to `ENV`, `ADD`, `COPY`,
|
|
893
911
|
result = "Diese Vorgabe muss manuell ueberprueft werden.";
|
|
912
|
+
"resutls": {
|
|
894
913
|
return -1, "The following script_xref of VT '" + str(file) + "' is pointing to Mitre/NVD which is already covered by the script_cve_id. This is a redundant info and the script_xref needs to be removed:" + nvd_mitre_link_tags
|
|
895
914
|
return("Diese Vorgabe muss manuell ueberprueft werden.");
|
|
896
915
|
return make_list( "error", text_response + 'Ueberpruefung fehlgeschlagen. Die Verwendung der benoetigten win_cmd_exec Funktion wurde in "Options for Local Security Checks (OID: 1.3.6.1.4.1.25623.1.0.100509)" manuell deaktiviert.\n' );
|
|
@@ -939,6 +958,7 @@ SAML/CAS tokens in the session database, an attacker can open an anonymous
|
|
|
939
958
|
script_mandatory_keys("Jasig CAS server/Installed");
|
|
940
959
|
script_mandatory_keys("shttp/detected");
|
|
941
960
|
script_mandatory_keys("telnet/huawei/te/detected");
|
|
961
|
+
script_mandatory_keys("wordpress/plugin/leadin/detected");
|
|
942
962
|
script_mandatory_keys("wordpress/plugin/mailin/detected");
|
|
943
963
|
script_name("Acronis Cyber Infrastructure (ACI) Detection (HTTP)");
|
|
944
964
|
script_name("Acronis Cyber Infrastructure (ACI) RCE Vulnerability (SEC-6452)");
|
|
@@ -1002,6 +1022,7 @@ SAML/CAS tokens in the session database, an attacker can open an anonymous
|
|
|
1002
1022
|
script_tag(name:"affected", value:"Petite Annonce version 1.0 is known to be affected. Other
|
|
1003
1023
|
script_tag(name:"affected", value:"RV320 Dual Gigabit WAN VPN Router and RV325 Dual Gigabit WAN
|
|
1004
1024
|
script_tag(name:"affected", value:"RV320 Dual Gigabit WAN VPN Router and RV325 Dual Gigabit WAN VPN Router.");
|
|
1025
|
+
script_tag(name:"affected", value:"Symantec Encryption Management Server (SEMS)
|
|
1005
1026
|
script_tag(name:"affected", value:"tre on Fedora 23");
|
|
1006
1027
|
script_tag(name:"affected", value:"tre on Fedora 24");
|
|
1007
1028
|
script_tag(name:"affected", value:"tre on Fedora 25");
|
|
@@ -1042,6 +1063,7 @@ SAML/CAS tokens in the session database, an attacker can open an anonymous
|
|
|
1042
1063
|
script_tag(name:"insight", value:"Federico Manuel Bento discovered that the Linux kernel did not properly
|
|
1043
1064
|
script_tag(name:"insight", value:"FreeS/WAN, Openswan, strongSwan and Super-FreeS/WAN contain two bugs when
|
|
1044
1065
|
script_tag(name:"insight", value:"In Apache::Session::Browseable before 1.3.6, validity of the X.509 certificate is not checked by default when connecting to remote LDAP backends, because the default configuration of the Net::LDAPS module for Perl is used.
|
|
1066
|
+
script_tag(name:"insight", value:"It was discovered that a race condition existed in the ARC EMAC ethernet
|
|
1045
1067
|
script_tag(name:"insight", value:"It was discovered that a specially-crafted packet sent to the racoon ipsec key exchange server could cause a tunnel to crash, resulting in a denial of service.
|
|
1046
1068
|
script_tag(name:"insight", value:"It was discovered that the VLC CAF demuxer incorrectly handled certain
|
|
1047
1069
|
script_tag(name:"insight", value:"James Troup discovered that MAAS stored RabbitMQ
|
|
@@ -1053,6 +1075,7 @@ SAML/CAS tokens in the session database, an attacker can open an anonymous
|
|
|
1053
1075
|
script_tag(name:"insight", value:"Juraj Somorovsky, Robert Merget and Nimrod Aviram discovered a padding oracle attack in OpenSSL.
|
|
1054
1076
|
script_tag(name:"insight", value:"Juraj Somorovsky, Robert Merget, and Nimrod Aviram discovered that certain
|
|
1055
1077
|
script_tag(name:"insight", value:"libsoup without ca path added, accepted all SSL certificats as trusted. This has been fixed. CVE-2012-2132 has been assigned to this issue.
|
|
1078
|
+
script_tag(name:"insight", value:"Local ABL Client bypass of the required PASOE security checks
|
|
1056
1079
|
script_tag(name:"insight", value:"LSAT insecurely creates temporary files which can lead to symlink attacks
|
|
1057
1080
|
script_tag(name:"insight", value:"Manuel Nickschas discovered that Konversation did not properly perform
|
|
1058
1081
|
script_tag(name:"insight", value:"Meh Chang discovered that Exim incorrectly
|
|
@@ -1126,6 +1149,7 @@ SAML/CAS tokens in the session database, an attacker can open an anonymous
|
|
|
1126
1149
|
script_tag(name:"summary", value:"Palo Alto PAN-OS is prone to a vulnerability in Panorama SD WAN.");
|
|
1127
1150
|
script_tag(name:"summary", value:"Petite Annonce is prone to a cross-site scripting (XSS)
|
|
1128
1151
|
script_tag(name:"summary", value:"Telnet based detection of Huawei TE (Telepresence and
|
|
1152
|
+
script_tag(name:"summary", value:"The management console for Symantec Encryption Management Server (SEMS) is susceptible to potential OS command execution,
|
|
1129
1153
|
script_tag(name:"summary", value:"The remote host is a SIP Express Router (SER).
|
|
1130
1154
|
script_tag(name:"summary", value:"The remote host is missing an update for the 'Recommended udpate for SUSE Manager Client Tools' package(s) announced via the SUSE-SU-2016:1366-1 advisory.");
|
|
1131
1155
|
script_tag(name:"summary", value:"The remote host is missing an update for the 'tre'
|
|
@@ -1471,6 +1495,7 @@ url = "/statics/html/index.htm";
|
|
|
1471
1495
|
url = "/statics/pageChallenge.html";
|
|
1472
1496
|
url = "/status/infomation.htm";
|
|
1473
1497
|
url = string(dir, "/config.xml.sav");
|
|
1498
|
+
url = string( dir, "/index.php?file=Liens&op=", raw_string( 0x22 ), "><script>window.alert('test');</script>" );
|
|
1474
1499
|
url = string(openVer[2], "/obj/autorisation.class.php?path_om=../../../../../../../../vt-rfi.txt");
|
|
1475
1500
|
url = "/UE/advanced.html";
|
|
1476
1501
|
url = "/UE/welcome_login.html";
|
|
@@ -1578,4 +1603,3 @@ xml += string( '<oval_system_characteristics xmlns="http://oval.mitre.org/XMLSch
|
|
|
1578
1603
|
- XSS via a crafted WAN name on the General Setup screen (CVE-2019-16534)");
|
|
1579
1604
|
"^[Xx]-[Aa]dobe-[Cc]ontent\s*:\s*AEM" );
|
|
1580
1605
|
Zhongling Wen discovered that the h323 conntrack handler did not correctly
|
|
1581
|
-
* CVE-2021-47311: net: qcom/emac: fix UAF in emac_remove (bsc#1225010).
|
|
@@ -22,10 +22,14 @@ complies
|
|
|
22
22
|
# mentioned here this correction is fully ingored.
|
|
23
23
|
racoon
|
|
24
24
|
# re-use vs. reuse currently unclear, e.g. there is the following from https://dict.leo.org/forum/viewGeneraldiscussion.php?idForum=4&idThread=5586&lp=ende&lang=en:
|
|
25
|
-
# Not even the wise and educated English native speakers seem to have a rule on hyphenation and there are differences between BE and AE.
|
|
26
|
-
#
|
|
25
|
+
# > Not even the wise and educated English native speakers seem to have a rule on hyphenation and there are differences between BE and AE.
|
|
26
|
+
# https://en.wiktionary.org/wiki/re-uses lists and https://en.wiktionary.org/wiki/re-use lists these as valid as well.
|
|
27
|
+
# As e.g. the spelling correction in Mozilla Firefox is accepting all we're excluding this for now
|
|
27
28
|
re-use
|
|
29
|
+
re-used
|
|
30
|
+
re-uses
|
|
28
31
|
re-usable
|
|
32
|
+
re-using
|
|
29
33
|
# Bootup is commonly used in e.g. example output and seems to be also generally valid like seen on:
|
|
30
34
|
# https://en.wiktionary.org/wiki/bootup
|
|
31
35
|
# so it is ignored (at least for now)
|