diff --git a/app/utils/parse-vulnerable-api-finding.ts b/app/utils/parse-vulnerable-api-finding.ts index 067b2b67b7..2be34e6e23 100644 --- a/app/utils/parse-vulnerable-api-finding.ts +++ b/app/utils/parse-vulnerable-api-finding.ts @@ -74,7 +74,18 @@ function initializeVulnerableApiFinding(): VulnerableApiFinding { * @returns `true` if the content contains vulnerability indicators, otherwise `false`. */ export function isVulnerableApiFinding(content: string): boolean { - const vulnerabilityPattern = /(\bseverity\b|\bconfidence\b|\bmethod\b)/; + const severityPattern = + '\bseverity:s*?(PASSED|LOW|MEDIUM|HIGH|CRITICAL|UNKNOWN)\b'; + + const confidencePattern = '\bconfidence:s*?(LOW|HIGH|MEDIUM)\b'; + + const methodPattern = + '\bmethod:s*?(GET|POST|PUT|DELETE|TRACE|HEAD|CONNECT|OPTIONS|PATCH)\b'; + + const vulnerabilityPattern = new RegExp( + `${severityPattern}|${confidencePattern}|${methodPattern}`, + 'i' + ); return content.length > 0 && vulnerabilityPattern.test(content); } @@ -114,12 +125,12 @@ function isValidVulnerableApiFinding(finding: VulnerableApiFinding): boolean { } /** - * Splits the report content into blocks based on double or triple newlines. - * @param report - The report content to split. - * @returns An array of strings, each representing a block of the report. + * Splits the content into blocks based on double or triple newlines. + * @param content - The content to split. + * @returns An array of strings, each representing a block of the content. */ -function splitVulnerableApiFindingIntoBlocks(report: string): string[] { - return report.split(/\n{2,3}/); +function splitVulnerableApiFindingIntoBlocks(content: string): string[] { + return content.split(/\n{2,3}/); } /**