/* Sprint 3 (25.09.): Light-Mode-Overrides der Seite-spezifischen
Glass-/Tint-Tokens (die globalen --color-/-threat-Tokens schalten
selbst um; nur die hier lokal definierten rgba-Tints brauchen
explizite Light-Werte).
Welle ML-16 (27.09.): PARSE-FIX — dieser Kommentar enthielt bis-
her im Token-Doppelnamen die Zeichenfolge Stern+Slash und schloss
sich damit VORZEITIG; der Rest wurde zu CSS-Muell und der Parser
verschluckte die gesamte folgende Light-Regel. Der Block war seit
Sprint 3 NIEMALS aktiv (die Light-Optik der Seite kam allein aus
den globalen default.css-Tokens). */
html[data-bs-theme="light"] {
--surface-glass: rgba(248, 250, 252, 0.92);
--border-glass: rgba(15, 23, 42, 0.14);
--surface-1: rgba(226, 232, 240, 0.45);
--surface-2: rgba(226, 232, 240, 0.65);
--surface-3: rgba(226, 232, 240, 0.6);
--cyan-bg: rgba(8, 145, 178, 0.08);
--cyan-bg-hover: rgba(8, 145, 178, 0.18);
--cyan-border: rgba(8, 145, 178, 0.35);
--cyan-border-strong: rgba(8, 145, 178, 0.45);
--ring: 0 0 0 2px rgba(8, 145, 178, 0.45);
--sev-critical-bg: rgba(220, 38, 38, 0.12);
--sev-critical-bd: rgba(220, 38, 38, 0.35);
--sev-high-bg: rgba(234, 88, 12, 0.12);
--sev-high-bd: rgba(234, 88, 12, 0.35);
--sev-medium-bg: rgba(202, 138, 4, 0.12);
--sev-medium-bd: rgba(202, 138, 4, 0.35);
--sev-low-bg: rgba(22, 163, 74, 0.12);
--sev-low-bd: rgba(22, 163, 74, 0.35);
/* Welle ML-16 (27.09.): Text-Tokens der Severity-Skala im Light —
die Dark-300/400er (--threat-* bzw. #facc15-Familie) liegen auf
#f8fafc bei 1.6-2.8:1 (R8-Walk, 15 Funde). 600/700er-Pendants,
Projekt-Muster #b45309 (RCI-Heilung text-warning). */
--sev-critical: #b91c1c; --sev-critical-solid: #dc2626;
--sev-high: #c2410c; --sev-high-solid: #ea580c;
--sev-medium: #b45309; --sev-medium-solid: #d97706;
--sev-low: #0369a1; --sev-low-solid: #0284c7;
}
body {
background-color: var(--surface-ground, #0b0f19);
color: var(--color-text-heading, #f8fafc);
font-family: var(--font-sans);
min-height: 100vh;
}
html[data-bs-theme="light"] body {
color: var(--color-text-heading, #090d16);
}
/* Bootstrap-Mono-Kanal auf Marke umlenken (CVE-IDs, Scores, EPSS-Zahlen) */
body { --bs-font-monospace: var(--font-mono); }
/* Kontrastanhebung im Seiten-Scope (betrifft ~25 extra-small-Texte) */
body .text-muted { color: var(--text-muted) !important; }
/* Tastatur-Fokus: sichtbarer Cyan-Ring für alle Interaktiven */
a:focus-visible, button:focus-visible, [role="button"]:focus-visible,
.filter-btn:focus-visible, .chip:focus-visible, .ms-option:focus-visible, input:focus-visible {
outline: none; box-shadow: var(--ring); border-radius: var(--radius-pill);
}
.cve-card {
background: var(--surface-glass);
border: 1px solid var(--border-glass);
border-radius: var(--radius-card);
transition: transform 0.2s cubic-bezier(0.16, 1, 0.3, 1), border-color 0.2s ease, box-shadow 0.2s ease, backdrop-filter 0.2s ease;
}
.cve-card:hover, .cve-card.spotlight {
backdrop-filter: blur(16px); /* Blur-Kosten nur bei Interesse, nicht dauerhaft auf 60 Karten */
}
.cve-card:hover {
transform: translateY(-3px);
border-color: var(--cyan-border-strong);
box-shadow: 0 10px 25px rgba(0, 240, 255, 0.08);
}
.cve-card.critical { border-left: 4px solid var(--sev-critical-solid); }
.cve-card.high { border-left: 4px solid var(--sev-high-solid); }
.cve-card.medium { border-left: 4px solid var(--sev-medium-solid); }
.cve-card.low { border-left: 4px solid var(--sev-low-solid); }
.cve-card.spotlight {
border: 2px solid var(--cyan) !important;
box-shadow: 0 0 35px rgba(0, 240, 255, 0.3) !important;
}
.badge-critical { background: var(--sev-critical-bg); color: var(--sev-critical); border: 1px solid var(--sev-critical-bd); font-weight: 700; }
.badge-high { background: var(--sev-high-bg); color: var(--sev-high); border: 1px solid var(--sev-high-bd); font-weight: 700; }
.badge-medium { background: var(--sev-medium-bg); color: var(--sev-medium); border: 1px solid var(--sev-medium-bd); font-weight: 700; }
.badge-kev { background: #c03030; color: #fff; font-weight: 800; } /* WCAG 1.4.3: 5.67:1 — rgba(.9)-Rot war 4.46:1; LH1-W6: pulse entfernt — Opacity-Dip 0,55 blendete mitten im Puls auf #d88687/#fbf9fa (2,6:1, axe-Sampler) — gleiche Entscheidung wie §13 Flash-Banner */
/* Zeit- & Bedrohungs-Signale (10.10.2026): NEU-Badge, KEV-Alter,
EPSS-Trendpfeil, aktualisiert-Fußnote. Bewusst OHNE Pulse/Animation
(gleiche axe-Begründung wie badge-kev oben), fixe Kontrastfarben. */
.badge-new { background: #0891b2; color: #fff; font-weight: 800; letter-spacing: .05em; } /* Cyan-600 auf Karten-Panels */
.badge-kev .kev-age { color: rgba(255, 255, 255, .88); font-weight: 700; }
.badge-kev .kev-fresh { color: #fde047; } /* frisch im KEV (≤ 7 T) — Gelb-Akzent im roten Badge, theme-unabhängig */
.epss-trend { font-size: .72rem; line-height: 1; font-weight: 800; }
.epss-trend.up { color: #f87171; } /* steigende Exploit-Wahrscheinlichkeit = rot-warm */
.epss-trend.down { color: #4ade80; } /* sinkend = Grün */
.card-updated { opacity: .85; }
/* --- Karten v2: Score-Typo + EPSS-Minibar + Icon-Signalleiste --- */
.card-score {
font-family: var(--bs-font-monospace, ui-monospace, monospace);
font-size: 1.35rem; font-weight: 800; line-height: 1;
letter-spacing: -0.02em;
}
.card-score.critical { color: var(--sev-critical); }
.card-score.high { color: var(--sev-high); }
.card-score.medium { color: var(--sev-medium); }
.card-score.low { color: var(--sev-low); }
.epss-track {
height: 4px; border-radius: 2px; background: rgba(148, 163, 184, 0.18);
overflow: hidden; min-width: 5.5rem;
}
.epss-fill { height: 100%; border-radius: 2px; transition: width 0.6s cubic-bezier(0.16, 1, 0.3, 1); }
.epss-fill.tier-danger { background: linear-gradient(90deg, #ef4444, #f87171); }
.epss-fill.tier-warning { background: linear-gradient(90deg, #f59e0b, #fbbf24); }
.epss-fill.tier-info { background: linear-gradient(90deg, #0ea5e9, #38bdf8); }
.epss-fill.tier-muted { background: linear-gradient(90deg, #475569, #94a3b8); }
.signal-chip {
display: inline-flex; align-items: center; gap: 0.2rem;
font-size: 0.68rem; font-weight: 700; letter-spacing: 0.02em;
padding: 0.12rem 0.45rem; border-radius: var(--radius-pill);
border: 1px solid var(--border-glass); background: var(--surface-1);
}
.filter-btn {
background: rgba(30, 41, 59, 0.6);
border: 1px solid var(--border-glass);
color: var(--text-muted);
font-size: 0.82rem;
font-weight: 600;
padding: 0.35rem 0.85rem;
border-radius: 9999px;
cursor: pointer;
transition: all 0.2s ease;
}
.filter-btn:hover, .filter-btn.active {
background: var(--cyan);
color: var(--surface-ground, #0b0f19);
border-color: var(--cyan);
font-weight: 700;
}
.vendor-stat-tile {
background: rgba(30, 41, 59, 0.4);
border: 1px solid var(--border-glass);
border-radius: 0.75rem;
padding: 0.6rem 0.9rem;
cursor: pointer;
transition: all 0.2s ease;
}
.vendor-stat-tile:hover {
border-color: rgba(0, 240, 255, 0.5);
background: rgba(30, 41, 59, 0.8);
transform: translateY(-2px);
}
/* --- Nachgelieferte Utilities: im Markup referenziert, aber in keinem der geladenen Stylesheets definiert --- */
.extra-small { font-size: 0.72rem; }
/* R6-B1 (18.09.): statische Inline-Style-Muster aus dem Karten-Loop
(×60 pro Render) auf Utilities — A3b-Vertrag auch auf Standalone-
Routen. Dynamische Werte (Balken-width-%) bleiben inline. */
.extra-small-xs { font-size: 0.68rem; }
.text-uppercase-track { text-transform: uppercase; letter-spacing: 0.04em; }
.measure-card { max-width: var(--measure-card, 65ch); }
.text-critical-rose { color: #fb7185; }
.btn-inherit { background: transparent; border: none; color: inherit; font: inherit; text-align: left; cursor: pointer; }
.text-cyan { color: var(--cyan); }
.bg-cyan { background-color: var(--cyan); }
.border-cyan { border-color: var(--cyan); }
a.hover-cyan:hover, .hover-cyan:hover { color: var(--cyan); }
.btn-xs { padding: 0.2rem 0.6rem; font-size: 0.72rem; }
.text-truncate-3 { display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.tracking-wider { letter-spacing: 0.05em; }
.leading-snug { line-height: 1.375; }
.cursor-pointer { cursor: pointer; }
.p-3\.5 { padding: 0.875rem; }
.mb-1\.5 { margin-bottom: 0.375rem; }
.mb-2\.5 { margin-bottom: 0.625rem; }
.mt-2\.5 { margin-top: 0.625rem; }
.px-1\.5 { padding-left: 0.375rem; padding-right: 0.375rem; }
.px-2\.5 { padding-left: 0.625rem; padding-right: 0.625rem; }
.py-0\.5 { padding-top: 0.125rem; padding-bottom: 0.125rem; }
.py-1\.5 { padding-top: 0.375rem; padding-bottom: 0.375rem; }
.gap-1\.5 { gap: 0.375rem; }
@keyframes pulse { 0%, 100% { opacity: 1; } 50% { opacity: 0.55; } }
.animate-pulse { animation: pulse 2s infinite; }
@keyframes fade-in-up { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }
.animate-fade-in { animation: fade-in-up 0.4s ease-out; }
/* --- EUVD-Quelle & Exploit-Status Badges (gleiche Optik wie .badge-critical etc.) --- */
.badge-euvd { background: rgba(0, 240, 255, 0.15); color: #22d3ee; border: 1px solid rgba(0, 240, 255, 0.4); font-weight: 700; } /* W21 (3. Rev, fixe Messung): Badge-Tint liegt auf DUNKLEN Panels (≈ #0d3244) — Original-Cyan trägt 6.6:1; die 1.39-Messung war ein Sampler-Alpha-Artefakt. Zurückgesetzt. */
.badge-exploited { background: var(--sev-critical-bg, rgba(239, 68, 68, 0.25)); color: var(--sev-critical); border: 1px solid rgba(239, 68, 68, 0.5); font-weight: 700; }
.badge-poc { background: transparent; color: #fb7185; border: 1px dashed rgba(251, 113, 133, 0.55); font-weight: 600; }
.cve-card.low { border-left: 4px solid #38bdf8; }
.badge-low { background: rgba(56, 189, 248, 0.2); color: #7dd3fc; border: 1px solid rgba(56, 189, 248, 0.4); font-weight: 700; }
/* --- CVE-Dossier (?cve=-Detailansicht) --- */
.dossier-rejected { background: rgba(245, 158, 11, 0.12); border: 1px solid rgba(245, 158, 11, 0.45); }
.metric-tile { background: rgba(30, 41, 59, 0.55); border: 1px solid var(--border-glass); border-radius: 0.6rem; padding: 0.45rem 0.6rem; height: 100%; }
.metric-tile .metric-name { display: block; font-size: 0.62rem; text-transform: uppercase; letter-spacing: 0.04em; color: var(--text-muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.metric-tile .metric-value { display: block; font-size: 0.8rem; font-weight: 700; margin-top: 2px; }
.metric-bad .metric-value { color: var(--sev-critical); }
.metric-warn .metric-value { color: #facc15; }
.metric-good .metric-value { color: #4ade80; }
.chip { display: inline-flex; align-items: center; border-radius: 9999px; padding: 0.18rem 0.6rem; font-size: 0.72rem; font-weight: 600; border: 1px solid; text-decoration: none; line-height: 1.4; }
.chip-cwe { background: rgba(34, 211, 238, 0.12); color: #67e8f9; border-color: rgba(34, 211, 238, 0.35); }
.chip-alias { background: rgba(0, 240, 255, 0.08); color: #22d3ee; border-color: rgba(0, 240, 255, 0.35); }
.chip-alias:hover { background: rgba(0, 240, 255, 0.2); color: #a5f3fc; }
.chip-vendor { background: rgba(96, 165, 250, 0.12); color: #93c5fd; border-color: rgba(96, 165, 250, 0.35); }
.chip-capec { background: rgba(245, 158, 11, 0.1); color: #fbbf24; border-color: rgba(245, 158, 11, 0.35); }
.chip-capec:hover { background: rgba(245, 158, 11, 0.22); color: #fde68a; }
.chip-attack { background: rgba(248, 113, 113, 0.1); color: #fca5a5; border-color: rgba(248, 113, 113, 0.35); }
.chip-attack:hover { background: rgba(248, 113, 113, 0.22); color: #fecaca; }
.chip-product { background: rgba(52, 211, 153, 0.1); color: #6ee7b7; border-color: rgba(52, 211, 153, 0.3); }
.dossier-refs li { padding: 0.15rem 0; }
.dossier-refs a { color: #7dd3fc; text-decoration: none; font-size: 0.78rem; word-break: break-all; }
.dossier-refs a:hover { color: #bae6fd; text-decoration: underline; }
.dossier-meta { background: rgba(30, 41, 59, 0.4); border: 1px solid var(--border-glass); }
/* --- Welle ML-16 (27.09.): Light-Scopes der themenunabhaengig
gepinnten Dark-Paletten (R8-Walk-Funde auf #f8fafc). 600/700er-
Pendants, alle >= 4.5:1 auf der Light-Glasflaeche. --- */
html[data-bs-theme="light"] .text-critical-rose { color: #be123c; }
/* LH1-W4b: EUVD/CWE/Alias-Badges auf #075985 vertieft (wie badge-low) —
#0369a1 lag auf der Panel-Fläche (#ccdfea-Blend) bei 4,3:1. */
html[data-bs-theme="light"] .badge-euvd { background: rgba(8, 145, 178, 0.1); color: #075985; border-color: rgba(8, 145, 178, 0.4); }
/* Zeit- & Bedrohungs-Signale (10.10.2026): 600/700er-Pendants auf
Light-Glas (gleiche Disziplin wie die Zeile darüber). */
html[data-bs-theme="light"] .badge-new { background: #0e7490; color: #fff; }
html[data-bs-theme="light"] .epss-trend.up { color: #b91c1c; }
html[data-bs-theme="light"] .epss-trend.down { color: #15803d; }
html[data-bs-theme="light"] .chip-cwe { background: rgba(8, 145, 178, 0.08); color: #075985; border-color: rgba(8, 145, 178, 0.35); }
html[data-bs-theme="light"] .chip-alias { background: rgba(8, 145, 178, 0.08); color: #075985; border-color: rgba(8, 145, 178, 0.35); }
html[data-bs-theme="light"] .chip-alias:hover { background: rgba(8, 145, 178, 0.16); color: #075985; }
html[data-bs-theme="light"] .chip-vendor { background: rgba(29, 78, 216, 0.08); color: #1d4ed8; border-color: rgba(29, 78, 216, 0.35); }
html[data-bs-theme="light"] .chip-capec { background: rgba(180, 83, 9, 0.08); color: #b45309; border-color: rgba(180, 83, 9, 0.35); }
html[data-bs-theme="light"] .chip-capec:hover { background: rgba(180, 83, 9, 0.16); color: #92400e; }
html[data-bs-theme="light"] .chip-attack { background: rgba(185, 28, 28, 0.08); color: #b91c1c; border-color: rgba(185, 28, 28, 0.35); }
html[data-bs-theme="light"] .chip-attack:hover { background: rgba(185, 28, 28, 0.16); color: #991b1b; }
html[data-bs-theme="light"] .chip-product { background: rgba(4, 120, 87, 0.08); color: #047857; border-color: rgba(4, 120, 87, 0.3); }
html[data-bs-theme="light"] .dossier-refs a { color: #0369a1; }
html[data-bs-theme="light"] .dossier-refs a:hover { color: #075985; }
html[data-bs-theme="light"] .dossier-meta { background: rgba(226, 232, 240, 0.5); }
html[data-bs-theme="light"] .metric-good .metric-value { color: #047857; }
/* MFF-2.5 (28.09.): Gegenheilung der hartcodierten Dunkel-Stats-Boxen —
.metric-tile/.vendor-stat-tile blieben im Light dunkel, während die
Text-Tokens (--text-muted/--sev-*) auf dunkle 600/700er kippten
(dunkel-auf-dunkel). Flächen folgen dem Light-Glas-Vertrag,
.metric-warn erhält sein 600er-Pendant (#facc15 → #a16207). */
html[data-bs-theme="light"] .metric-tile { background: rgba(226, 232, 240, 0.55); }
html[data-bs-theme="light"] .metric-warn .metric-value { color: #a16207; }
html[data-bs-theme="light"] .vendor-stat-tile { background: rgba(226, 232, 240, 0.5); }
html[data-bs-theme="light"] .vendor-stat-tile:hover { background: rgba(226, 232, 240, 0.8); border-color: rgba(8, 145, 178, 0.5); }
/* text-warning liegt Bootstrap-default (#ffc107) auf Light bei 1.6:1 —
Projekt-Heiler aus RCI (#b45309) nachziehen, da /cve die globalen
CSS-Ketten nicht laedt. */
/* LH1-W4b: Light-Töne auf die 800er-Stufe vertieft — #b45309/#0e7490
lagen auf der soliden Panel-Fläche #e2e8f0 bei 4,1–4,3:1 (grenzwertig
gefailt); #92400e/#155e75 halten 6+:1 auf Glas UND Panel. */
html[data-bs-theme="light"] .cve-page .text-warning { color: #92400e !important; }
/* Vendor-Dots/-Linien (Chart-Legende) erhalten ihre Light-Farbe als
--vc-light inline aus dem PHP-Map (dunkler Wert bleibt Inline-Style). */
html[data-bs-theme="light"] .vendor-dot { color: var(--vc-light, #475569) !important; }
html[data-bs-theme="light"] .vendor-line { stroke: var(--vc-light, #64748b); }
/* ML-3b (27.09., ergänzend zu ML-16): Stats-Inseln — Bootstrap-.text-info
(#0dcaf0) auf der hellen Glasfläche ≈1.7:1 (R8-Walk; intel-value,
EUVD-ID, CW-/EPSS-Tabellen). #0e7490 = 5.1:1. */
html[data-bs-theme="light"] .cve-page .text-info { color: #155e75 !important; }
/* .badge-low war der einzige ungescoopete Severity-Badge (#7dd3fc auf
Light-Glas ~2:1) — gleicher Aufbau wie badge-euvd oben. */
html[data-bs-theme="light"] .badge-low { background: rgba(8, 145, 178, 0.1); color: #075985; border-color: rgba(8, 145, 178, 0.4); }
/* LH1-W4b (01.10., Kontrast-Langtail 13/54 → 0): Die rgba(30,41,59,α)-
Panels blendeten über dem hellen Grund auf #525b69/#a1a6af/#b7bbc2 —
Token-Texte (#475569/#334155/#b45309/#0e7490) darauf = 1,2–4,4:1.
Solide Light-Fläche via Theme-Var (Inline-Styles konsumieren sie). */
html[data-bs-theme="light"] .cve-page { --cve-panel-bg: #e2e8f0; }
/* Filter-Pills: rgba-Glas + text-muted kippte auf 1,2:1 — solides Light-
Paar; Aktiv-/Hover-Zustand Weiß-auf-Cyan (3,0) → Weiß auf sky-800. */
html[data-bs-theme="light"] .cve-page .filter-btn { background: #e2e8f0; color: #334155; border-color: #cbd5e1; }
html[data-bs-theme="light"] .cve-page .filter-btn:hover,
html[data-bs-theme="light"] .cve-page .filter-btn.active { background: #0369a1; color: #ffffff; border-color: #0369a1; }
/* Aktiv-Filter-Chip: --cyan-soft (#0891b2) auf --cyan-bg ≈ 3,5:1. */
html[data-bs-theme="light"] .cve-page .filters-active-chip { color: #0c4a6e; }
/* Card-/Matrix-Outline-Buttons: Bootstrap btn-outline-info-Text
#0dcaf0 auf heller Karte (21× gemessen) → cyan-800. */
html[data-bs-theme="light"] .cve-page .btn-outline-info { color: #155e75 !important; border-color: rgba(21, 94, 117, 0.6); }
/* Navbar-CVE bleibt dunkel — die Light-Heiler (#92400e/#155e75) dürfen
die dunklen Navbar-Pills nicht treffen (dort 2,6–3,0:1); helle
300er-Töne bestehen auf #232630 mit 7–8:1. Deckt cmdkTrigger mit. */
html[data-bs-theme="light"] .navbar-cve .text-warning,
html[data-bs-theme="light"] .navbar-cve .btn-warning,
html[data-bs-theme="light"] .navbar-cve .btn-outline-warning { color: #f59e0b !important; }
html[data-bs-theme="light"] .navbar-cve .text-info,
html[data-bs-theme="light"] .navbar-cve .btn-outline-info { color: #22d3ee !important; }
/* LH1-W4b: Lesezeichen-Pill (btn-outline-warning) — spezifischere
(0,3,1)-Regel, damit kein anderes Light-Heilen durchgreifen kann. */
html[data-bs-theme="light"] .navbar-cve a.btn-outline-warning { color: #f59e0b !important; border-color: rgba(245, 158, 11, 0.6) !important; }
/* --- Multiselect (Hersteller-Filter aus der EUVD-Datenquelle) --- */
.multiselect { position: relative; }
.ms-panel {
background: var(--surface-glass);
backdrop-filter: blur(16px);
border: 1px solid var(--border-glass);
border-radius: 0.9rem;
padding: 0.75rem;
margin-top: 0.5rem;
width: min(100%, 26rem);
}
.ms-options { max-height: 16rem; overflow-y: auto; display: flex; flex-direction: column; gap: 0.15rem; }
.ms-option {
display: flex; align-items: center; gap: 0.5rem;
padding: 0.3rem 0.5rem; border-radius: 0.5rem; cursor: pointer;
font-size: 0.8rem; color: var(--color-text-heading, #e2e8f0);
}
.ms-option:hover { background: rgba(0, 240, 255, 0.07); }
.ms-option input { accent-color: var(--cyan); }
.ms-option .ms-name { flex: 1 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ms-count {
flex: 0 0 auto; font-size: 0.66rem; font-weight: 700; color: #67e8f9;
background: rgba(0, 240, 255, 0.1); border: 1px solid rgba(0, 240, 255, 0.25);
border-radius: 9999px; padding: 0.05rem 0.45rem; font-variant-numeric: tabular-nums;
}
/* --- Intelligence-Stats-Kacheln (Landing) --- */
.intel-tile {
background: var(--surface-glass);
backdrop-filter: blur(12px);
border: 1px solid var(--border-glass);
border-radius: var(--radius-tile);
padding: 0.85rem 0.95rem;
height: 100%;
transition: transform 0.2s ease, border-color 0.2s ease;
}
.intel-tile:hover { border-color: var(--cyan-border-strong); transform: translateY(-2px); }
.intel-tile .intel-value { display: block; font-size: 1.3rem; font-weight: 800; line-height: 1.15; }
.intel-tile .intel-label { display: block; font-size: 0.66rem; text-transform: uppercase; letter-spacing: 0.05em; color: var(--text-muted); margin-top: 0.2rem; }
/* --- Render-Performance: 60 Karten ohne Offscreen-Paint-Kosten --- */
.cve-item {
content-visibility: auto;
contain-intrinsic-size: auto 320px;
}
/* --- Karten-Stagger: sanftes Einlaufen, gedeckelt auf 12 --- */
#cveGrid .cve-item { animation: fade-in-up 0.4s ease-out both; }
#cveGrid .cve-item:nth-child(1) { animation-delay: 0.02s; }
#cveGrid .cve-item:nth-child(n+2):nth-child(-n+12) { animation-delay: calc((var(--stagger, 0) + 0.02s) + 0.018s * (n - 1)); }
#cveGrid .cve-item:nth-child(n+13) { animation-delay: 0.24s; }
/* --- Sticky-Layout --- */
.navbar-cve { position: sticky; top: 0; z-index: 1030; }
@media (max-width: 767.98px) {
.navbar-cve .container {
flex-wrap: wrap;
gap: 0.75rem;
}
.navbar-cve .container > div:last-child {
flex-wrap: wrap;
width: 100%;
justify-content: flex-start;
gap: 0.5rem;
}
.navbar-cve .btn-sm {
padding: 0.35rem 0.65rem;
font-size: 0.78rem;
}
}
@media (min-width: 992px) {
.dossier-aside { position: sticky; top: 5rem; }
}
/* --- Filter-Aktiv-Anzeige + Empty-State --- */
.filters-active-chip {
display: inline-flex; align-items: center; gap: 0.4rem;
background: var(--cyan-bg); border: 1px solid var(--cyan-border);
color: var(--cyan-soft); border-radius: var(--radius-pill);
padding: 0.25rem 0.8rem; font-size: 0.78rem; font-weight: 700;
}
.empty-state { border: 1px dashed var(--border-glass); border-radius: var(--radius-card); }
/* --- Command-Palette (⌘K) --- */
.cmdk-backdrop {
position: fixed; inset: 0; z-index: 2000;
background: rgba(7, 12, 24, 0.7); backdrop-filter: blur(4px);
display: flex; align-items: flex-start; justify-content: center;
padding: 8vh 1rem 1rem;
}
.cmdk-panel {
width: min(100%, 40rem);
background: var(--surface-glass); backdrop-filter: blur(24px);
border: 1px solid var(--cyan-border); border-radius: 0.9rem;
box-shadow: 0 24px 60px rgba(0, 0, 0, 0.5), 0 0 40px rgba(0, 240, 255, 0.06);
overflow: hidden;
}
.cmdk-input {
width: 100%; background: transparent; border: 0; outline: none;
color: #f8fafc; font-size: 1rem; padding: 0.9rem 1.1rem;
border-bottom: 1px solid var(--border-glass);
}
.cmdk-input::placeholder { color: var(--text-muted); }
.cmdk-list { max-height: 18rem; overflow-y: auto; padding: 0.4rem; }
.cmdk-item {
display: flex; align-items: center; gap: 0.6rem;
padding: 0.5rem 0.7rem; border-radius: 0.5rem;
color: #e2e8f0; text-decoration: none; font-size: 0.88rem; cursor: pointer;
}
.cmdk-item:hover, .cmdk-item[aria-selected="true"] { background: var(--cyan-bg); color: #fff; }
.cmdk-item .cmdk-hint { margin-left: auto; font-size: 0.68rem; color: var(--text-muted); }
.cmdk-section {
font-size: 0.64rem; text-transform: uppercase; letter-spacing: 0.08em;
color: var(--text-muted); padding: 0.5rem 0.7rem 0.2rem; font-weight: 700;
}
.cmdk-foot {
display: flex; gap: 1rem; padding: 0.5rem 0.9rem; font-size: 0.66rem; color: var(--text-muted);
border-top: 1px solid var(--border-glass); background: rgba(7, 12, 24, 0.3);
}
.cmdk-foot kbd {
background: var(--surface-2); border: 1px solid var(--border-glass);
border-radius: 0.3rem; padding: 0 0.3rem; font-family: var(--font-mono);
}
/* --- Mobile-Filter ( .row { display: none; }
#filterMatrix.expanded > .row { display: flex; }
}
/* --- Respekt vor reduced-motion: alles Bewegliche aus --- */
@media (prefers-reduced-motion: reduce) {
*, *::before, *::after {
animation-duration: 0.01ms !important;
animation-iteration-count: 1 !important;
transition-duration: 0.01ms !important;
}
.cve-card:hover, .intel-tile:hover, .vendor-stat-tile:hover { transform: none; }
}
/* --- Ausnutzungs-Timeline (Dossier, CSS-only) --- */
.ex-timeline { position: relative; padding: 0.2rem 0 0.1rem; }
.ex-timeline-line {
position: absolute; left: 0.55rem; right: 0.55rem; top: 0.62rem; height: 2px;
background: linear-gradient(90deg, var(--cyan-border) 0%, rgba(248, 113, 113, 0.5) 100%);
}
.ex-timeline-points { display: flex; justify-content: space-between; position: relative; }
.ex-tl-point { display: flex; flex-direction: column; align-items: center; gap: 0.3rem; flex: 1; min-width: 0; }
.ex-tl-dot {
width: 0.72rem; height: 0.72rem; border-radius: 50%;
background: var(--surface-3); border: 2px solid var(--text-muted); flex-shrink: 0;
}
.ex-tl-point.is-milestone .ex-tl-dot { background: var(--cyan); border-color: var(--cyan); box-shadow: 0 0 8px rgba(0, 240, 255, 0.5); }
.ex-tl-point.is-kev .ex-tl-dot { background: var(--sev-critical); border-color: var(--sev-critical); box-shadow: 0 0 8px rgba(239, 68, 68, 0.55); }
.ex-tl-label { font-size: 0.6rem; text-transform: uppercase; letter-spacing: 0.06em; color: var(--text-muted); text-align: center; line-height: 1.25; }
.ex-tl-value { font-size: 0.68rem; font-weight: 700; color: #e2e8f0; font-family: var(--font-mono); text-align: center; }
.ex-tl-point.is-kev .ex-tl-value { color: var(--sev-critical); }
/* --- Toast (Share-Feedback) --- */
.tsec-toast {
position: fixed; right: 1.2rem; bottom: 1.2rem; z-index: 2100;
background: var(--surface-glass); backdrop-filter: blur(16px);
border: 1px solid var(--cyan-border); color: #e2e8f0;
border-radius: 0.7rem; padding: 0.6rem 1rem; font-size: 0.85rem; font-weight: 600;
box-shadow: 0 12px 30px rgba(0, 0, 0, 0.45);
}
/* --- Karten-Titel: Text-Link-Affordanz --- */
.cve-card h3 a { text-decoration: none; }
.cve-card h3 a:hover, .cve-card h3 a:focus-visible { text-decoration: underline; text-decoration-color: var(--cyan-border-strong); text-underline-offset: 3px; }
/* --- Druck-Ansicht: Dossier als heller Report-Anhang --- */
@media print {
@page { margin: 14mm 12mm; }
body { background: #fff !important; color: #111 !important; }
body .text-muted { color: #555 !important; }
.navbar-cve, .filters-toggle, #filterMatrix, #cveSearchInput, .input-group,
#cmdkBackdrop, #cmdkTrigger, .watchlist-modal, .modal, .modal-backdrop,
.filters-active-chip, .empty-state, .tsec-toast, #cveEmptyState,
.vendor-stat-tile, .intel-tile, .dossier-refs a::before { display: none !important; }
main.container { max-width: 100%; padding: 0; }
/* Dossier: Collapse-Inhalte immer drucken */
.collapse { display: block !important; }
.cve-card, .dossier-meta, .cmdk-panel, .metric-tile, .ms-panel {
background: #fff !important; backdrop-filter: none !important;
border-color: #bbb !important; box-shadow: none !important; color: #111 !important;
}
.cve-card.critical { border-left-color: #b91c1c !important; }
.cve-card.high { border-left-color: #c2410c !important; }
.cve-card.medium { border-left-color: #a16207 !important; }
.text-white, .fw-bold.text-white { color: #111 !important; }
.text-info { color: #0e7490 !important; }
/* Referenz-URLs sichtbar machen */
.dossier-refs a::after { content: " (" attr(href) ")"; font-size: 0.66rem; color: #555; word-break: break-all; }
/* Grid 2-spaltig, Karte kompakt */
#cveGrid { display: grid !important; grid-template-columns: 1fr 1fr; gap: 6mm; }
#cveGrid .cve-item { content-visibility: visible; contain-intrinsic-size: none; break-inside: avoid; }
.ex-timeline-line { background: #999 !important; }
a { color: #0e7490 !important; text-decoration: none; }
}
/* W14 (07.09., Auto-Audit): Dark-Lock-Kontraste — Bootstrap-Konstanten
(text-danger #dc3545, text-success #198754, outline-secondary) liegen
auf den fixen Dunkel-Islands der Seite bei 3.4–4.2:1. Heiler im Layer
`bootstrap` (text-*-Utilities tragen !important — ungeschichtete
normale Regeln verlieren gegen geschichtete Importants, css-cascade-5;
dieses
CVE-2025-54952 | An integer overflow vulnerability in the loading of ExecuTorch models can cause smaller-than-expected memory regions to be allocated, potentially resulting in code execution or other undesirable effects. This issue affects ExecuTorch prior to commit 8f062d3f661e20bb19b24b767b9a9a46e8359f2b.
An integer overflow vulnerability in the loading of ExecuTorch models can cause smaller-than-expected memory regions to be allocated, potentially resulting in code execution or other undesirable effects. This issue affects ExecuTorch prior to commit 8f062d3f661e20bb19b24b767b9a9a46e8359f2b.
CWE-680 Meta Platforms, Inc ExecuTorch 0 <https://github.com/pytorch/executorch/commit/8f062d3f661e20bb19b24b767b9a9a46e8359f2b
CWE-680 · Integer Overflow to Buffer Overflow
▾
🩹 8f062d3f661e20bb19b24b767b9a9a46e8359f2b (Commit)
Reserviert
2025
Veröffentlicht
08/2025
Heute
10.10.
AV · Angriffsvektor
Netzwerk
🔴
Live Security Advisory & EPSS Exploit Radar
Zero-Day & Vulnerability Intelligence Hub
Echtzeit-Tracking mit EPSS Exploit-Wahrscheinlichkeiten, Angriffsvektor-Decodern und KI-Patch-Anleitungen.
📊 Historien-Charts — Criticals-Trend · Vendors · EPSS-Verteilung
🔴 Criticals pro Monat (12 M)
2025-11: 257
Nov 25
2025-12: 426
2026-01: 431
Jan 26
2026-02: 417
2026-03: 649
Mär 26
2026-04: 574
2026-05: 682
Mai 26
2026-06: 941
2026-07: 1327
Jul 26
2026-08: 1827
2026-09: 1513
Sep 26
2026-10: 397
🏢 Top-Vendor-Veröffentlichungen (6 M)
Apache Software Foundation
Google
IBM
Linux
Microsoft
Oracle Corporation
📈 EPSS-Verteilung (Messungen)
Datenquellen & Methodik:
Primärquelle ist die EUVD der ENISA (laufender Datenbank-Sync, alle 15 Minuten), abgeglichen mit dem CISA-KEV-Katalog und der NVD — Detail-Dossiers reichern fehlende Felder live per NVD an — mit Fallback auf CIRCL vulnerability-lookup (EU/Non-Profit, aggregiert CVE-, GitHub- und OSV-Advisories). Der CISA-KEV-Katalog (Known Exploited Vulnerabilities, ~1.700 aktiv ausgenutzte Schwachstellen) wird bei jedem Sync vollständig neu geladen und kreuzreferenziert — filterbar über die KEV-Pille. CVSS 3.1 wird nach Ampel-Logik aus Verteidigersicht dekodiert; EPSS bezeichnet die 30-Tage-Exploit-Wahrscheinlichkeit (FIRST.org).
🇪🇺 ENISA EUVD
🇺🇸 NVD
⚠️ CISA KEV
⚡ EPSS
☰ Filter & Suche ▾
Alle
🔴 Critical (9.0+)
🟠 High (7.0+)
🟡 Medium
⚠️ CISA KEV Exploited
Alle Quellen
🇪🇺 EUVD (ENISA)
📡 RSS-Feeds
🔍
Keine Treffer mit den aktiven Filtern
Filter zurücksetzen
💾 Watchlist & Abos liegen nur in diesem Browser.
Kostenlos registrieren — dann syncen sie geräteübergreifend mit deinem Profil.
☁️ Mit deinem Konto synchronisiert — Watchlist & Abos folgen dir auf jedes Gerät.
⚡ Live-Karten neuer Meldungen sofort oben einschieben
🔊 Akustisches Signal (Web Audio Chime) bei Eilmeldungen
Linux
Microsoft
Oracle Corporation
Google
IBM
Adobe
Apple
Cisco
Filter
Home
Gemerkt
RSS
Theme
Noch keine Analyse zu CVE-2025-54952
Sei der Erste: Einschätzung, Betroffenheit, Workaround oder PoC — mit Antworten im Thread.