From 3c0c1606a01234a5d7d100f654b9f8a5edd60ce2 Mon Sep 17 00:00:00 2001 From: Valentijn Scholten Date: Tue, 23 Dec 2025 08:42:48 +0100 Subject: [PATCH] Fix Tenable CSV import fails with 'Version of CPE not implemented' - Add exception handling around CPE parsing in TenableCSVParser - Log unsupported CPE versions at DEBUG level instead of crashing - Allows import to continue when encountering unsupported CPE formats - Fixes issue #11243 --- dojo/tools/tenable/csv_format.py | 28 +++++++++++++++++----------- 1 file changed, 17 insertions(+), 11 deletions(-) diff --git a/dojo/tools/tenable/csv_format.py b/dojo/tools/tenable/csv_format.py index 0421776bb78..838419a0962 100644 --- a/dojo/tools/tenable/csv_format.py +++ b/dojo/tools/tenable/csv_format.py @@ -228,17 +228,23 @@ def get_findings(self, filename: str, test: Test): LOGGER.debug( "more than one CPE for a finding. NOT supported by Nessus CSV parser", ) - cpe_decoded = CPE(detected_cpe[0]) - find.component_name = ( - cpe_decoded.get_product()[0] - if len(cpe_decoded.get_product()) > 0 - else None - ) - find.component_version = ( - cpe_decoded.get_version()[0] - if len(cpe_decoded.get_version()) > 0 - else None - ) + try: + cpe_decoded = CPE(detected_cpe[0]) + find.component_name = ( + cpe_decoded.get_product()[0] + if len(cpe_decoded.get_product()) > 0 + else None + ) + find.component_version = ( + cpe_decoded.get_version()[0] + if len(cpe_decoded.get_version()) > 0 + else None + ) + except Exception as e: + LOGGER.debug( + f"Failed to parse CPE '{detected_cpe[0]}': {e}. " + "Skipping component_name and component_version.", + ) find.unsaved_endpoints = [] find.unsaved_vulnerability_ids = []