diff --git a/public/pages/Correlations/containers/CorrelationsTableView.tsx b/public/pages/Correlations/containers/CorrelationsTableView.tsx index 0ae1c2c32..3e58b9abc 100644 --- a/public/pages/Correlations/containers/CorrelationsTableView.tsx +++ b/public/pages/Correlations/containers/CorrelationsTableView.tsx @@ -164,9 +164,9 @@ export class CorrelationsTableView extends React.Component< .map((item) => item.id.toLowerCase()); return tableData.filter((row) => { - const logTypeMatch = row.logTypes.some((logType) => selectedLogTypes.includes(logType)); + const logTypeMatch = row.logTypes?.some((logType) => selectedLogTypes.includes(logType)); - const severityMatch = row.alertSeverity.some((severity) => + const severityMatch = row.alertSeverity?.some((severity) => selectedSeverities.includes(alertSeverityMap[severity]) ); @@ -174,12 +174,12 @@ export class CorrelationsTableView extends React.Component< const searchMatch = searchTerm === '' || row.correlationRule?.toLowerCase().includes(searchLower) || - row.logTypes.some((type) => type.toLowerCase().includes(searchLower)) || - row.alertSeverity.some((severity) => + row.logTypes?.some((type) => type.toLowerCase().includes(searchLower)) || + row.alertSeverity?.some((severity) => alertSeverityMap[severity].toLowerCase().includes(searchLower) ) || - row.findingsSeverity.some((severity) => severity.toLowerCase().includes(searchLower)) || - row.resources.some((resource) => resource.toLowerCase().includes(searchLower)); + row.findingsSeverity?.some((severity) => severity.toLowerCase().includes(searchLower)) || + row.resources?.some((resource) => resource.toLowerCase().includes(searchLower)); return logTypeMatch && severityMatch && searchMatch; }); }; diff --git a/public/pages/Overview/components/Widgets/RecentThreatIntelFindingsWidget.tsx b/public/pages/Overview/components/Widgets/RecentThreatIntelFindingsWidget.tsx index a6e100e3d..0bb60c3be 100644 --- a/public/pages/Overview/components/Widgets/RecentThreatIntelFindingsWidget.tsx +++ b/public/pages/Overview/components/Widgets/RecentThreatIntelFindingsWidget.tsx @@ -38,9 +38,17 @@ const columns: EuiBasicTableColumn[] = [ name: 'Threat intel source', field: 'ioc_feed_ids', render: (ioc_feed_ids: ThreatIntelFinding['ioc_feed_ids']) => { - return ( - {ioc_feed_ids.map((ids) => ids.feed_name).join(', ') || DEFAULT_EMPTY_DATA} - ); + // Add defensive checks for undefined/null array and nested properties + if (!ioc_feed_ids || !Array.isArray(ioc_feed_ids) || ioc_feed_ids.length === 0) { + return {DEFAULT_EMPTY_DATA}; + } + + const feedNames = ioc_feed_ids + .map((ids) => ids?.feed_name) + .filter((name) => name) // Remove undefined/null values + .join(', '); + + return {feedNames || DEFAULT_EMPTY_DATA}; }, }, ]; diff --git a/public/pages/Rules/components/RuleContentViewer/__snapshots__/RuleContentYamlViewer.test.tsx.snap b/public/pages/Rules/components/RuleContentViewer/__snapshots__/RuleContentYamlViewer.test.tsx.snap index 6b1c742ef..3bccf5d45 100644 --- a/public/pages/Rules/components/RuleContentViewer/__snapshots__/RuleContentYamlViewer.test.tsx.snap +++ b/public/pages/Rules/components/RuleContentViewer/__snapshots__/RuleContentYamlViewer.test.tsx.snap @@ -262,13 +262,37 @@ exports[` spec renders the component 1`] = ` > - - + https - 'https://securelist.com/operation-tunnelsnake-and-moriya-rootkit/101831' + : - + //securelist.com/operation + + - + + tunnelsnake + + - + + and + + - + + moriya + + - + + rootkit/101831