diff --git a/surface/sca/management/commands/resync_sbom_repo.py b/surface/sca/management/commands/resync_sbom_repo.py index 5cc3ac99..7a9f7f7b 100644 --- a/surface/sca/management/commands/resync_sbom_repo.py +++ b/surface/sca/management/commands/resync_sbom_repo.py @@ -60,6 +60,13 @@ def create_dependency(self, purl: str, scan_date: str) -> tuple[PackageURL | Non return purl, dep_object + def is_valid_version(self, version: str) -> bool: + try: + semver.Version.parse(version, optional_minor_and_patch=True) + return True + except ValueError: + return False + # Check for EOL dependencies def handle_eol(self, purl: PackageURL, dependency: SCADependency): # Get Suppressed Findings for current dependency @@ -116,7 +123,7 @@ def handle_vuln(self, vuln: dict[str, Any], pkg_obj: SCADependency): for version in vuln.get("affected", {}) for version_range in version.get("ranges", {}) for event in version_range.get("events", {}) - if "fixed" in event + if "fixed" in event and self.is_valid_version(event["fixed"]) ] SCAFinding.objects.update_or_create( diff --git a/surface/sca/templates/views/layout.html b/surface/sca/templates/views/layout.html index d8e5c6e6..915f46b4 100644 --- a/surface/sca/templates/views/layout.html +++ b/surface/sca/templates/views/layout.html @@ -145,6 +145,10 @@ .ui.dropdown > .text { color: var(--ui-control-foreground) !important; } + tbody a[href]:not(.ui.label) { + color: var(--color-primary-500) !important; + } + {% endblock %} diff --git a/surface/sca/templates/views/vulnerabilities.html b/surface/sca/templates/views/vulnerabilities.html index ddb7240b..dca18e36 100644 --- a/surface/sca/templates/views/vulnerabilities.html +++ b/surface/sca/templates/views/vulnerabilities.html @@ -104,13 +104,13 @@ {% endif %}
{% empty %}