feat(euvd): link every CVE to its ENISA EUVD record
The EUVD link on the detail page only appeared when enrichment had stored an euvd_id, which only happens for rows the EUVD KEV feed covers. Every other CVE showed no EU record at all. The EUVD resolves a CVE id to the same page as its own EUVD-ID (/vulnerability/CVE-2026-68820 == /vulnerability/EUVD-2026-56468), so the link needs no id mapping: use the EUVD-ID when we know it, the CVE id otherwise. Label keeps the EUVD-ID in parentheses when present.
This commit is contained in:
@@ -757,21 +757,23 @@ export default function VulnerabilityDetailPage() {
|
||||
>
|
||||
Exploit-DB →
|
||||
</a>
|
||||
{/* ENISA EUVD — the EU authoritative record. Only
|
||||
with a known EUVD-ID: the id is not derivable
|
||||
from the CVE, so without it there is nothing to
|
||||
link to that would not be a guess. */}
|
||||
{vuln.euvd_id && (
|
||||
<a
|
||||
href={`https://euvd.enisa.europa.eu/vulnerability/${vuln.euvd_id}`}
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
title={`ENISA EUVD record ${vuln.euvd_id}`}
|
||||
className="inline-flex items-center gap-2 px-4 py-2 bg-indigo-50 text-indigo-700 rounded-lg hover:bg-indigo-100 transition-colors font-mono text-sm"
|
||||
>
|
||||
ENISA EUVD ({vuln.euvd_id}) →
|
||||
</a>
|
||||
)}
|
||||
{/* ENISA EUVD — the EU authoritative record. The
|
||||
EUVD resolves a CVE id to the same page as its
|
||||
own EUVD-ID, so every CVE gets a link: the
|
||||
EUVD-ID when enrichment knows it (only KEV rows
|
||||
do), the CVE id otherwise. No mapping table
|
||||
needed. */}
|
||||
<a
|
||||
href={`https://euvd.enisa.europa.eu/vulnerability/${vuln.euvd_id || vuln.cve_id}`}
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
title={vuln.euvd_id
|
||||
? `ENISA EUVD record ${vuln.euvd_id}`
|
||||
: `ENISA EUVD record for ${vuln.cve_id}`}
|
||||
className="inline-flex items-center gap-2 px-4 py-2 bg-indigo-50 text-indigo-700 rounded-lg hover:bg-indigo-100 transition-colors font-mono text-sm"
|
||||
>
|
||||
ENISA EUVD{vuln.euvd_id ? ` (${vuln.euvd_id})` : ''} →
|
||||
</a>
|
||||
{/* Always offered: the repo advisory search when the
|
||||
product maps to a repo that publishes its own
|
||||
(the only place those records exist), otherwise
|
||||
|
||||
Reference in New Issue
Block a user