troubadix 25.12.2__tar.gz → 25.12.4__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.12.2 → troubadix-25.12.4}/PKG-INFO +1 -1
- {troubadix-25.12.2 → troubadix-25.12.4}/pyproject.toml +1 -1
- {troubadix-25.12.2 → troubadix-25.12.4}/tests/plugins/test_grammar.py +91 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/troubadix/__version__.py +1 -1
- {troubadix-25.12.2 → troubadix-25.12.4}/troubadix/plugins/grammar.py +17 -2
- {troubadix-25.12.2 → troubadix-25.12.4}/LICENSE +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/README.md +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/tests/__init__.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/tests/helper/__init__.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/tests/helper/test_date_format.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/tests/helper/test_if_block_parser.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/tests/helper/test_linguistic_exception_handler.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/tests/helper/test_patterns.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/tests/helper/test_remove_comments.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/tests/helper/test_text_utils.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/tests/manual_tests/comment_removal_diff.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/tests/plugins/__init__.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/tests/plugins/fail.nasl +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/tests/plugins/fail2.nasl +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/tests/plugins/test.nasl +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/tests/plugins/test_badwords.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/tests/plugins/test_copyright_text.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/tests/plugins/test_copyright_year.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/tests/plugins/test_creation_date.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/tests/plugins/test_cve_format.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/tests/plugins/test_cvss_format.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/tests/plugins/test_dependencies.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/tests/plugins/test_dependency_category_order.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/tests/plugins/test_deprecated_dependency.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/tests/plugins/test_deprecated_functions.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/tests/plugins/test_double_end_points.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/tests/plugins/test_duplicate_oid.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/tests/plugins/test_duplicated_script_tags.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/tests/plugins/test_encoding.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/tests/plugins/test_files/fail_bad_new_line.nasl +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/tests/plugins/test_files/fail_badwords.nasl +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/tests/plugins/test_files/fail_name_and_copyright_newline.nasl +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/tests/plugins/test_files/fail_name_newline.nasl +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/tests/plugins/test_files/fail_permissions.nasl +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/tests/plugins/test_files/fail_spelling.nasl +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/tests/plugins/test_files/nasl/21.04/fail.nasl +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/tests/plugins/test_files/nasl/21.04/fail_badwords.nasl +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/tests/plugins/test_files/nasl/21.04/fail_name_and_copyright_newline.nasl +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/tests/plugins/test_files/nasl/21.04/fail_name_newline.nasl +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/tests/plugins/test_files/nasl/21.04/fail_solution_template.nasl +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/tests/plugins/test_files/nasl/21.04/runner/fail.nasl +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/tests/plugins/test_files/nasl/21.04/runner/fail2.nasl +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/tests/plugins/test_files/nasl/21.04/runner/test.nasl +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/tests/plugins/test_files/nasl/21.04/runner/test_valid_oid.nasl +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/tests/plugins/test_files/nasl/21.04/test.inc +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/tests/plugins/test_files/nasl/21.04/test.nasl +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/tests/plugins/test_files/nasl/warning.nasl +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/tests/plugins/test_files/ok_permissions.nasl +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/tests/plugins/test_files/test_oid.nasl +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/tests/plugins/test_forking_nasl_functions.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/tests/plugins/test_get_kb_on_services.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/tests/plugins/test_http_links_in_tags.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/tests/plugins/test_if_statement_syntax.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/tests/plugins/test_illegal_characters.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/tests/plugins/test_log_messages.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/tests/plugins/test_malformed_dependencies.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/tests/plugins/test_misplaced_compare_in_if.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/tests/plugins/test_missing_desc_exit.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/tests/plugins/test_missing_tag_solution.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/tests/plugins/test_multiple_re_parameters.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/tests/plugins/test_newlines.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/tests/plugins/test_overlong_description_lines.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/tests/plugins/test_overlong_script_tags.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/tests/plugins/test_prod_svc_detect_in_vulnvt.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/tests/plugins/test_qod.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/tests/plugins/test_reporting_consistency.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/tests/plugins/test_script_add_preference_id.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/tests/plugins/test_script_add_preference_type.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/tests/plugins/test_script_calls_empty_values.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/tests/plugins/test_script_calls_recommended.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/tests/plugins/test_script_category.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/tests/plugins/test_script_copyright.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/tests/plugins/test_script_family.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/tests/plugins/test_script_tag_form.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/tests/plugins/test_script_tag_whitespaces.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/tests/plugins/test_script_tags_mandatory.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/tests/plugins/test_script_version_and_last_modification_tags.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/tests/plugins/test_script_xref_form.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/tests/plugins/test_script_xref_url.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/tests/plugins/test_security_messages.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/tests/plugins/test_set_get_kb_calls.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/tests/plugins/test_severity_date.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/tests/plugins/test_severity_format.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/tests/plugins/test_severity_origin.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/tests/plugins/test_solution_text.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/tests/plugins/test_solution_type.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/tests/plugins/test_spaces_before_dots.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/tests/plugins/test_spaces_in_filename.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/tests/plugins/test_spelling.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/tests/plugins/test_tabs.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/tests/plugins/test_todo_tbd.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/tests/plugins/test_trailing_spaces_tabs.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/tests/plugins/test_using_display.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/tests/plugins/test_valid_oid.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/tests/plugins/test_valid_script_tag_names.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/tests/plugins/test_variable_redefinition_in_foreach.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/tests/plugins/test_vt_file_permissions.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/tests/plugins/test_vt_placement.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/tests/standalone_plugins/__init__.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/tests/standalone_plugins/changed_packages/__init__.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/tests/standalone_plugins/changed_packages/markers/__init__.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/tests/standalone_plugins/changed_packages/markers/test_added_epoch.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/tests/standalone_plugins/changed_packages/markers/test_added_release.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/tests/standalone_plugins/changed_packages/markers/test_added_udeb.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/tests/standalone_plugins/changed_packages/markers/test_changed_update.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/tests/standalone_plugins/changed_packages/markers/test_dropped_architecture.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/tests/standalone_plugins/changed_packages/test_changed_packages.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/tests/standalone_plugins/changed_packages/test_package.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/tests/standalone_plugins/nasl/21.04/21_script.nasl +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/tests/standalone_plugins/nasl/22.04/22_script.nasl +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/tests/standalone_plugins/nasl/common/bar.nasl +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/tests/standalone_plugins/nasl/common/foo.nasl +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/tests/standalone_plugins/nasl/common/foobar.nasl +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/tests/standalone_plugins/nasl/common/gsf/enterprise_script.nasl +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/tests/standalone_plugins/test_changed_creation_date.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/tests/standalone_plugins/test_changed_cves.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/tests/standalone_plugins/test_changed_oid.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/tests/standalone_plugins/test_dependency_graph.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/tests/standalone_plugins/test_deprecate_vts.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/tests/standalone_plugins/test_file_extensions.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/tests/standalone_plugins/test_last_modification.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/tests/standalone_plugins/test_no_solution.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/tests/standalone_plugins/test_version_updated.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/tests/test_argparser.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/tests/test_helper.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/tests/test_naslinter.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/tests/test_reporter.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/tests/test_results.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/tests/test_runner.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/troubadix/__init__.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/troubadix/argparser.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/troubadix/codespell/codespell.additions +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/troubadix/codespell/codespell.exclude +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/troubadix/codespell/codespell.ignore +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/troubadix/helper/__init__.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/troubadix/helper/date_format.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/troubadix/helper/helper.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/troubadix/helper/if_block_parser.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/troubadix/helper/linguistic_exception_handler.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/troubadix/helper/patterns.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/troubadix/helper/remove_comments.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/troubadix/helper/text_utils.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/troubadix/plugin.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/troubadix/plugins/__init__.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/troubadix/plugins/badwords.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/troubadix/plugins/copyright_text.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/troubadix/plugins/copyright_year.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/troubadix/plugins/creation_date.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/troubadix/plugins/cve_format.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/troubadix/plugins/cvss_format.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/troubadix/plugins/dependencies.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/troubadix/plugins/dependency_category_order.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/troubadix/plugins/deprecated_dependency.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/troubadix/plugins/deprecated_functions.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/troubadix/plugins/double_end_points.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/troubadix/plugins/duplicate_oid.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/troubadix/plugins/duplicated_script_tags.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/troubadix/plugins/encoding.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/troubadix/plugins/forking_nasl_functions.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/troubadix/plugins/get_kb_on_services.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/troubadix/plugins/http_links_in_tags.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/troubadix/plugins/if_statement_syntax.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/troubadix/plugins/illegal_characters.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/troubadix/plugins/log_messages.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/troubadix/plugins/malformed_dependencies.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/troubadix/plugins/misplaced_compare_in_if.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/troubadix/plugins/missing_desc_exit.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/troubadix/plugins/missing_tag_solution.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/troubadix/plugins/multiple_re_parameters.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/troubadix/plugins/newlines.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/troubadix/plugins/overlong_description_lines.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/troubadix/plugins/overlong_script_tags.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/troubadix/plugins/prod_svc_detect_in_vulnvt.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/troubadix/plugins/qod.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/troubadix/plugins/reporting_consistency.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/troubadix/plugins/script_add_preference_id.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/troubadix/plugins/script_add_preference_type.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/troubadix/plugins/script_calls_empty_values.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/troubadix/plugins/script_calls_recommended.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/troubadix/plugins/script_category.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/troubadix/plugins/script_copyright.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/troubadix/plugins/script_family.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/troubadix/plugins/script_tag_form.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/troubadix/plugins/script_tag_whitespaces.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/troubadix/plugins/script_tags_mandatory.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/troubadix/plugins/script_version_and_last_modification_tags.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/troubadix/plugins/script_xref_form.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/troubadix/plugins/script_xref_url.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/troubadix/plugins/security_messages.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/troubadix/plugins/set_get_kb_calls.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/troubadix/plugins/severity_date.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/troubadix/plugins/severity_format.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/troubadix/plugins/severity_origin.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/troubadix/plugins/solution_text.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/troubadix/plugins/solution_type.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/troubadix/plugins/spaces_before_dots.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/troubadix/plugins/spaces_in_filename.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/troubadix/plugins/spelling.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/troubadix/plugins/tabs.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/troubadix/plugins/todo_tbd.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/troubadix/plugins/trailing_spaces_tabs.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/troubadix/plugins/using_display.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/troubadix/plugins/valid_oid.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/troubadix/plugins/valid_script_tag_names.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/troubadix/plugins/variable_assigned_in_if.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/troubadix/plugins/variable_redefinition_in_foreach.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/troubadix/plugins/vt_file_permissions.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/troubadix/plugins/vt_placement.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/troubadix/reporter.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/troubadix/results.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/troubadix/runner.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/troubadix/standalone_plugins/__init__.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/troubadix/standalone_plugins/allowed_rev_diff.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/troubadix/standalone_plugins/changed_creation_date.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/troubadix/standalone_plugins/changed_cves.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/troubadix/standalone_plugins/changed_oid.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/troubadix/standalone_plugins/changed_packages/changed_packages.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/troubadix/standalone_plugins/changed_packages/marker/__init__.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/troubadix/standalone_plugins/changed_packages/marker/added_epoch.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/troubadix/standalone_plugins/changed_packages/marker/added_release.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/troubadix/standalone_plugins/changed_packages/marker/added_udeb.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/troubadix/standalone_plugins/changed_packages/marker/changed_update.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/troubadix/standalone_plugins/changed_packages/marker/dropped_architecture.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/troubadix/standalone_plugins/changed_packages/marker/marker.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/troubadix/standalone_plugins/changed_packages/package.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/troubadix/standalone_plugins/common.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/troubadix/standalone_plugins/dependency_graph/__init__.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/troubadix/standalone_plugins/dependency_graph/checks.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/troubadix/standalone_plugins/dependency_graph/cli.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/troubadix/standalone_plugins/dependency_graph/dependency_graph.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/troubadix/standalone_plugins/dependency_graph/models.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/troubadix/standalone_plugins/deprecate_vts.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/troubadix/standalone_plugins/file_extensions.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/troubadix/standalone_plugins/last_modification.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/troubadix/standalone_plugins/no_solution.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/troubadix/standalone_plugins/util.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/troubadix/standalone_plugins/version_updated.py +0 -0
- {troubadix-25.12.2 → troubadix-25.12.4}/troubadix/troubadix.py +0 -0
|
@@ -328,6 +328,58 @@ class CheckNewlinesTestCase(PluginTestCase):
|
|
|
328
328
|
results[0].message,
|
|
329
329
|
)
|
|
330
330
|
|
|
331
|
+
def test_grammar11(self):
|
|
332
|
+
nasl_file = Path(__file__).parent / "test.nasl"
|
|
333
|
+
content = (
|
|
334
|
+
' script_tag(name:"cvss_base", value:"4.0");\n'
|
|
335
|
+
' script_tag(name:"impact", value:"Inadequate checks in '
|
|
336
|
+
"com_contact could allowed mail submission\n"
|
|
337
|
+
' script_tag(name:"solution_type", value:"VendorFix");\n'
|
|
338
|
+
)
|
|
339
|
+
|
|
340
|
+
fake_context = self.create_file_plugin_context(
|
|
341
|
+
nasl_file=nasl_file, file_content=content
|
|
342
|
+
)
|
|
343
|
+
plugin = CheckGrammar(fake_context)
|
|
344
|
+
|
|
345
|
+
results = list(plugin.run())
|
|
346
|
+
|
|
347
|
+
self.assertEqual(len(results), 1)
|
|
348
|
+
self.assertIsInstance(results[0], LinterError)
|
|
349
|
+
self.assertEqual(
|
|
350
|
+
"VT/Include has the following grammar problem:\n"
|
|
351
|
+
"- Hit: could allowed\n"
|
|
352
|
+
'- Full line: script_tag(name:"impact", value:"Inadequate checks '
|
|
353
|
+
"in com_contact could allowed mail submission",
|
|
354
|
+
results[0].message,
|
|
355
|
+
)
|
|
356
|
+
|
|
357
|
+
def test_grammar12(self):
|
|
358
|
+
nasl_file = Path(__file__).parent / "test.nasl"
|
|
359
|
+
content = (
|
|
360
|
+
' script_tag(name:"cvss_base", value:"4.0");\n'
|
|
361
|
+
' script_tag(name:"impact", value:"This allow an attacker to gain '
|
|
362
|
+
"administrative access to the\n"
|
|
363
|
+
' script_tag(name:"solution_type", value:"VendorFix");\n'
|
|
364
|
+
)
|
|
365
|
+
|
|
366
|
+
fake_context = self.create_file_plugin_context(
|
|
367
|
+
nasl_file=nasl_file, file_content=content
|
|
368
|
+
)
|
|
369
|
+
plugin = CheckGrammar(fake_context)
|
|
370
|
+
|
|
371
|
+
results = list(plugin.run())
|
|
372
|
+
|
|
373
|
+
self.assertEqual(len(results), 1)
|
|
374
|
+
self.assertIsInstance(results[0], LinterError)
|
|
375
|
+
self.assertEqual(
|
|
376
|
+
"VT/Include has the following grammar problem:\n"
|
|
377
|
+
"- Hit: This allow\n"
|
|
378
|
+
'- Full line: script_tag(name:"impact", value:"This allow an '
|
|
379
|
+
"attacker to gain administrative access to the",
|
|
380
|
+
results[0].message,
|
|
381
|
+
)
|
|
382
|
+
|
|
331
383
|
def test_grammar_fp(self):
|
|
332
384
|
nasl_file = Path(__file__).parent / "test.nasl"
|
|
333
385
|
content = (
|
|
@@ -383,3 +435,42 @@ class CheckNewlinesTestCase(PluginTestCase):
|
|
|
383
435
|
results = list(plugin.run())
|
|
384
436
|
|
|
385
437
|
self.assertEqual(len(results), 0)
|
|
438
|
+
|
|
439
|
+
def test_grammar_fp3(self):
|
|
440
|
+
nasl_file = Path(__file__).parent / "test.nasl"
|
|
441
|
+
content = (
|
|
442
|
+
' script_tag(name:"cvss_base", value:"4.0");\n'
|
|
443
|
+
' script_tag(name:"insight", value:"*snip* connection string to '
|
|
444
|
+
'provide\nproperties that are not on this allow list.");\n'
|
|
445
|
+
' script_tag(name:"solution_type", value:"VendorFix");\n'
|
|
446
|
+
' script_tag(name:"solution", value:"meh");\n'
|
|
447
|
+
)
|
|
448
|
+
fake_context = self.create_file_plugin_context(
|
|
449
|
+
nasl_file=nasl_file, file_content=content
|
|
450
|
+
)
|
|
451
|
+
plugin = CheckGrammar(fake_context)
|
|
452
|
+
|
|
453
|
+
results = list(plugin.run())
|
|
454
|
+
|
|
455
|
+
self.assertEqual(len(results), 0)
|
|
456
|
+
|
|
457
|
+
def test_grammar_fp4(self):
|
|
458
|
+
nasl_file = Path(__file__).parent / "test.nasl"
|
|
459
|
+
content = (
|
|
460
|
+
' script_tag(name:"cvss_base", value:"4.0");\n'
|
|
461
|
+
' script_tag(name:"insight", value:"*snip*\n'
|
|
462
|
+
" control of a remote NFS server to create a setuid root "
|
|
463
|
+
"executable on\n the exported filesystem of the remote NFS "
|
|
464
|
+
"server. If this filesystem\n was mounted with the default "
|
|
465
|
+
'hosts map, it would allow the user to\n *snip*");\n'
|
|
466
|
+
' script_tag(name:"solution_type", value:"VendorFix");\n'
|
|
467
|
+
' script_tag(name:"solution", value:"meh");\n'
|
|
468
|
+
)
|
|
469
|
+
fake_context = self.create_file_plugin_context(
|
|
470
|
+
nasl_file=nasl_file, file_content=content
|
|
471
|
+
)
|
|
472
|
+
plugin = CheckGrammar(fake_context)
|
|
473
|
+
|
|
474
|
+
results = list(plugin.run())
|
|
475
|
+
|
|
476
|
+
self.assertEqual(len(results), 0)
|
|
@@ -43,8 +43,17 @@ exceptions = [
|
|
|
43
43
|
# From several Ubuntu LSCs like e.g.:
|
|
44
44
|
# 2021/ubuntu/gb_ubuntu_USN_4711_1.nasl
|
|
45
45
|
TextCheck("An attacker with access to at least one LUN in a multiple"),
|
|
46
|
-
# nb:
|
|
47
|
-
|
|
46
|
+
# nb:
|
|
47
|
+
# - The regex to catch e.g. "this files" or "This allow an attacker" might
|
|
48
|
+
# catch this wrongly...
|
|
49
|
+
# - Cases like "this filesystem" vs. "these filesystems" are also handled /
|
|
50
|
+
# excluded here
|
|
51
|
+
PatternCheck(
|
|
52
|
+
r'this\s+(filesystem|allow\s+list)([\s.",]+|$)', re.IGNORECASE
|
|
53
|
+
),
|
|
54
|
+
PatternCheck(
|
|
55
|
+
r'these\s+(filesystem|allow\s+list)s([\s.",]+|$)', re.IGNORECASE
|
|
56
|
+
),
|
|
48
57
|
# Like seen in e.g. 2008/freebsd/freebsd_mod_php4-twig.nasl
|
|
49
58
|
PatternCheck(r'(\s+|")[Aa]\s+multiple\s+of'),
|
|
50
59
|
# WITH can be used like e.g. the following which is valid:
|
|
@@ -183,6 +192,12 @@ def get_grammer_pattern() -> re.Pattern:
|
|
|
183
192
|
# Successful exploitation may allows an attacker to run arbitrary
|
|
184
193
|
# An error in INSTALL_JAR procedure might allows remote authenticated
|
|
185
194
|
r"(could|may|will|might|should|can)\s+allows\s+|"
|
|
195
|
+
# e.g.:
|
|
196
|
+
# - Inadequate checks in com_contact could allowed mail submission
|
|
197
|
+
r"(could|may|will|might|should|can)\s+allowed\s+|"
|
|
198
|
+
# e.g.:
|
|
199
|
+
# This allow an attacker to gain administrative access to the
|
|
200
|
+
r"This\s+allow\s+|"
|
|
186
201
|
# nb: Next few could happen when copy'n'paste some text parts around
|
|
187
202
|
# like e.g.:
|
|
188
203
|
# is prone to a to a remote denial-of-service vulnerability
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{troubadix-25.12.2 → troubadix-25.12.4}/tests/plugins/test_files/nasl/21.04/fail_badwords.nasl
RENAMED
|
File without changes
|
|
File without changes
|
{troubadix-25.12.2 → troubadix-25.12.4}/tests/plugins/test_files/nasl/21.04/fail_name_newline.nasl
RENAMED
|
File without changes
|
|
File without changes
|
{troubadix-25.12.2 → troubadix-25.12.4}/tests/plugins/test_files/nasl/21.04/runner/fail.nasl
RENAMED
|
File without changes
|
{troubadix-25.12.2 → troubadix-25.12.4}/tests/plugins/test_files/nasl/21.04/runner/fail2.nasl
RENAMED
|
File without changes
|
{troubadix-25.12.2 → troubadix-25.12.4}/tests/plugins/test_files/nasl/21.04/runner/test.nasl
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{troubadix-25.12.2 → troubadix-25.12.4}/tests/plugins/test_variable_redefinition_in_foreach.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{troubadix-25.12.2 → troubadix-25.12.4}/tests/standalone_plugins/changed_packages/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{troubadix-25.12.2 → troubadix-25.12.4}/tests/standalone_plugins/changed_packages/test_package.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{troubadix-25.12.2 → troubadix-25.12.4}/tests/standalone_plugins/test_changed_creation_date.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{troubadix-25.12.2 → troubadix-25.12.4}/troubadix/plugins/variable_redefinition_in_foreach.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{troubadix-25.12.2 → troubadix-25.12.4}/troubadix/standalone_plugins/changed_creation_date.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{troubadix-25.12.2 → troubadix-25.12.4}/troubadix/standalone_plugins/changed_packages/package.py
RENAMED
|
File without changes
|
|
File without changes
|
{troubadix-25.12.2 → troubadix-25.12.4}/troubadix/standalone_plugins/dependency_graph/__init__.py
RENAMED
|
File without changes
|
{troubadix-25.12.2 → troubadix-25.12.4}/troubadix/standalone_plugins/dependency_graph/checks.py
RENAMED
|
File without changes
|
{troubadix-25.12.2 → troubadix-25.12.4}/troubadix/standalone_plugins/dependency_graph/cli.py
RENAMED
|
File without changes
|
|
File without changes
|
{troubadix-25.12.2 → troubadix-25.12.4}/troubadix/standalone_plugins/dependency_graph/models.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|