diff --git a/.github/workflows/update-index.yml b/.github/workflows/update-index.yml index 01b25b69c..88aac5eb8 100644 --- a/.github/workflows/update-index.yml +++ b/.github/workflows/update-index.yml @@ -52,6 +52,10 @@ jobs: with: ref: ${{ github.ref_name }} token: ${{ steps.generate-token.outputs.token }} + # Full history: generate_index.py reads git log to credit each file's + # original author on the viewer's welcome page (a shallow clone would + # attribute everything to the latest commit). + fetch-depth: 0 - name: Set up Python uses: actions/setup-python@v5 with: diff --git a/pages/app.js b/pages/app.js index d2a1a1968..a307f3599 100644 --- a/pages/app.js +++ b/pages/app.js @@ -85,6 +85,7 @@ const sidebarHideBtn = document.getElementById("sidebar-hide-btn"); const sidebarShowBtn = document.getElementById("sidebar-show-btn"); let allFiles = []; // [{path, name, dir}] +let recentContributions = []; // [{path, added, author, login}] - from index.json's "recent" let activePath = null; collapseAllBtn.addEventListener("click", () => { @@ -132,8 +133,12 @@ async function loadFileList(forceRefresh) { if (!res.ok) throw new Error(`Could not load index.json (${res.status})`); const data = await res.json(); allFiles = (data.files || []).slice().sort((a, b) => a.path.localeCompare(b.path)); + recentContributions = data.recent || []; // absent in an older/CI-less index: welcome page just omits the list renderTree(allFiles); statusTextEl.textContent = `${allFiles.length} files`; + // A manual Refresh while on the welcome page should update its list too + // (initial load is handled by init(), which knows whether ?file= is set). + if (forceRefresh && !activePath) showWelcome(); } catch (err) { statusTextEl.textContent = "Failed to load file list"; treeRootEl.innerHTML = ""; @@ -291,9 +296,132 @@ window.addEventListener("popstate", () => { if (path) { activePath = path; loadAndRenderFile(path); + } else { + // Back to the entry that had no ?file= : the default view. + activePath = null; + document.querySelectorAll(".tree-file.active").forEach((el) => el.classList.remove("active")); + showWelcome(); } }); +/* --------------------------------------------------------------------- + * Welcome (default) view + * Shown when no file is selected: a greeting, a pointer to the source repo + * for full search/browse, and the most recent contributions. The list comes + * from index.json's "recent" array, which generate_index.py builds from git + * history and credits to each file's ORIGINAL author (not the bot that later + * renamed it) - this page never talks to GitHub's API. + * ------------------------------------------------------------------- */ + +function showWelcome() { + mainEl.innerHTML = ""; + const root = document.createElement("section"); + root.className = "welcome"; + + const h1 = document.createElement("h1"); + h1.textContent = "Welcome to the BigFix Community Content Viewer"; + root.appendChild(h1); + + const lead = document.createElement("p"); + lead.className = "welcome-lead"; + lead.textContent = + "Browse the Fixlets, Tasks, Analyses, Baselines and Inventory Signatures shared by the BigFix community. " + + "Pick an item from the file list to preview its description, relevance and actions."; + root.appendChild(lead); + + // The filter box only matches file paths, so be upfront about what this viewer can't do. + const notice = document.createElement("div"); + notice.className = "welcome-notice"; + const strong = document.createElement("strong"); + strong.textContent = "Looking for something specific? "; + notice.appendChild(strong); + notice.appendChild( + document.createTextNode( + "This viewer is a lightweight preview, and its filter only matches file names. " + + "For full searchability and browsing, refer back to the source GitHub repository: " + ) + ); + const repoA = document.createElement("a"); + repoA.href = repoLinkEl.href; + repoA.target = "_blank"; + repoA.rel = "noopener"; + repoA.textContent = repoLinkEl.textContent; + notice.appendChild(repoA); + notice.appendChild(document.createTextNode(".")); + root.appendChild(notice); + + const h2 = document.createElement("h2"); + h2.textContent = "Recent contributions"; + root.appendChild(h2); + + const byPath = new Map(allFiles.map((f) => [f.path, f])); + // Skip anything no longer in the file list (e.g. index.json regenerated mid-session). + const items = recentContributions.filter((r) => byPath.has(r.path)); + if (items.length === 0) { + const none = document.createElement("p"); + none.className = "welcome-empty"; + none.textContent = "Recent contribution details aren't available right now."; + root.appendChild(none); + } else { + const list = document.createElement("ol"); + list.className = "recent-list"; + for (const r of items) list.appendChild(renderRecentItem(r, byPath.get(r.path))); + root.appendChild(list); + } + + mainEl.appendChild(root); + mainEl.scrollTop = 0; +} + +function renderRecentItem(r, file) { + const li = document.createElement("li"); + li.className = "recent-item"; + + const dot = document.createElement("span"); + dot.className = `type-dot ${typeDotClass(file.type)}`; + li.appendChild(dot); + + // A real href (the same ?file= URL selectFile pushes) so open-in-new-tab and + // copy-link work, while a plain click is handled in-page without a reload. + const link = document.createElement("a"); + const url = new URL(location.href); + url.search = ""; + url.searchParams.set("file", r.path); + link.href = url.href; + link.className = "recent-title"; + link.textContent = file.title || file.name.replace(/\.bes$/i, ""); + link.onclick = (ev) => { + if (ev.ctrlKey || ev.metaKey || ev.shiftKey || ev.button !== 0) return; + ev.preventDefault(); + selectFile(r.path); + }; + li.appendChild(link); + + const meta = document.createElement("span"); + meta.className = "recent-meta"; + meta.appendChild(document.createTextNode(`${file.type || "Other"} · by `)); + if (r.login) { + const who = document.createElement("a"); + who.href = `https://${GITHUB_SITE}/${encodeURIComponent(r.login)}`; + who.target = "_blank"; + who.rel = "noopener"; + who.textContent = r.author || r.login; + meta.appendChild(who); + } else { + meta.appendChild(document.createTextNode(r.author || "unknown")); + } + const when = new Date(r.added); + if (!isNaN(when)) { + meta.appendChild( + document.createTextNode( + ` · ${when.toLocaleDateString(undefined, { year: "numeric", month: "short", day: "numeric" })}` + ) + ); + } + li.appendChild(meta); + return li; +} + async function loadAndRenderFile(path) { mainEl.innerHTML = `
Loading ${escapeText(path)}…
`; try { @@ -1002,5 +1130,7 @@ function sanitizeNode(parent) { activePath = initialPath; renderTree(allFiles); loadAndRenderFile(initialPath); + } else { + showWelcome(); } })(); diff --git a/pages/generate_index.py b/pages/generate_index.py index f9eb5e7b2..23011e785 100644 --- a/pages/generate_index.py +++ b/pages/generate_index.py @@ -14,7 +14,9 @@ python scripts/generate_index.py """ import json +from datetime import datetime import re +import subprocess import sys import xml.etree.ElementTree as ET from pathlib import Path @@ -24,6 +26,14 @@ SIGNATURE_ROOT = REPO_ROOT / "Signatures" OUTPUT_PATH = REPO_ROOT / "pages" / "index.json" +# How many entries the viewer's welcome page lists under "Recent contributions". +RECENT_COUNT = 10 + +# GitHub's privacy-preserving commit emails: "+@users.noreply.github.com" +# (current) or "@users.noreply.github.com" (legacy). The only place a git +# commit reveals a GitHub login without calling the API. +NOREPLY_EMAIL_RE = re.compile(r"^(?:\d+\+)?([^@+]+)@users\.noreply\.github\.com$") + KNOWN_ROOT_TAGS = {"Task", "Fixlet", "Analysis", "Baseline", "TaskCondition", "ComputerGroup"} # Both .bes exports and Signatures/*.xml files carry their metadata as @@ -164,12 +174,126 @@ def describe_signature(source_rel_path: Path): return entry +def git(*args): + """Run git in the repo and return stdout as text; raises on failure.""" + result = subprocess.run( + ["git", "-c", "core.quotepath=false", *args], + cwd=REPO_ROOT, check=True, capture_output=True, + ) + return result.stdout.decode("utf-8", errors="replace") + + +def parse_author(header): + """Split a '\\x1f\\x1f' record into a contribution dict.""" + name, email, date = (header.split("\x1f") + ["", "", ""])[:3] + m = NOREPLY_EMAIL_RE.match(email) + return { + "author": name, + # Only trust a noreply email for a profile link, and never for bots. + "login": m.group(1) if m and not name.endswith("[bot]") else "", + "date": date, + } + + +def newest_paths_on_main(): + """Current content paths, most recently landed on main first. + + Replays the first-parent (main line) history oldest -> newest with rename + detection, so a file's "landing" position survives the update-index + workflow's ID-prefix renames: A(dd) stamps the path with the commit's + position, R(ename) carries the stamp to the new path, D(elete) drops it. + First-parent (with -m, so merge commits diff against their first parent) + keeps the replay linear and correct even when content arrived via a + pull-request merge after being deleted and re-added on other branches. + This only ORDERS files by recency; who actually authored them is resolved + separately (see original_author), because a merge/bot commit's own author + is not the contributor. + """ + out = git( + "log", "-z", "--first-parent", "-m", "--reverse", "-M", "-l0", + "--name-status", "--format=%x01", "--", "Sites", "Signatures", + ) + # With -z, --name-status emits NUL-separated tokens: a "\x01" header per + # commit, then per file "", "" (renames: "", ""). + tokens = [t.lstrip("\n") for t in out.split("\0")] + landed: dict[str, int] = {} + seq = 0 + i = 0 + while i < len(tokens): + tok = tokens[i] + i += 1 + if not tok: + continue + if tok.startswith("\x01"): + seq += 1 + continue + status = tok[0] # A, M, D, R, C, T, ... + if status in "RC" and i + 1 < len(tokens): + old, new = tokens[i], tokens[i + 1] + i += 2 + landed[new] = landed.pop(old, seq) if status == "R" else seq + elif i < len(tokens): + path = tokens[i] + i += 1 + if status == "A": + landed[path] = seq + elif status == "D": + landed.pop(path, None) + return [p for p, _seq in sorted(landed.items(), key=lambda kv: (kv[1], kv[0]), reverse=True)] + + +def original_author(path): + """Who first added `path`, following it back across renames (or None). + + `--follow` walks the file's history through the bot's ID-prefix rename to + its original name; --diff-filter=A keeps only the add commits, and the + oldest of those is the original contribution. + """ + out = git( + "log", "--follow", "--diff-filter=A", "-M", "--format=%an%x1f%ae%x1f%aI", "--", path + ) + lines = [ln for ln in out.splitlines() if ln.strip()] + return parse_author(lines[-1]) if lines else None + + +def recent_contributions(existing_paths): + """The RECENT_COUNT most recent contributions, newest first, as + [{path, added, author, login}], credited to the original author. + + Needs full git history (CI must check out with fetch-depth: 0); returns [] + with a warning when history is unavailable so the index still builds and + the viewer simply omits the list. + """ + try: + if git("rev-parse", "--is-shallow-repository").strip() == "true": + print("warning: shallow clone - contribution data would be wrong; " + "check out with fetch-depth: 0. Skipping 'recent'.", file=sys.stderr) + return [] + candidates = [p for p in newest_paths_on_main() if p in existing_paths] + # A pull request can land many files at once, so look past RECENT_COUNT, + # then order by each file's original authored date. + rows = [] + for path in candidates[: RECENT_COUNT * 5]: + info = original_author(path) + if info and info["date"]: + rows.append({"path": path, "added": info["date"], + "author": info["author"], "login": info["login"]}) + except (OSError, subprocess.CalledProcessError) as e: + print(f"warning: git history unavailable, skipping 'recent': {e}", file=sys.stderr) + return [] + rows.sort(key=lambda r: (datetime.fromisoformat(r["added"]), r["path"]), reverse=True) + return rows[:RECENT_COUNT] + + def main(): rel_paths = list(find_source_bes_files()) entries = [describe(rel) for rel in rel_paths] signature_rel_paths = list(find_source_signature_files()) entries += [describe_signature(rel) for rel in signature_rel_paths] payload = { + # Drives the viewer's welcome page; credited to whoever first added each + # file, not to the bots/maintainers that later renamed or touched it. + "recent": recent_contributions({e["path"] for e in entries}), "files": entries, } OUTPUT_PATH.parent.mkdir(parents=True, exist_ok=True) diff --git a/pages/index.json b/pages/index.json index 066b461b1..3e8e0269e 100644 --- a/pages/index.json +++ b/pages/index.json @@ -1,81 +1,67 @@ { - "files": [ + "recent": [ { - "path": "Sites/AIX Management/Fixlets/Fixlets/878-GTS UKI - AIX Patching - Populate Repository - 7100-03 (TL) - v1.0 (20772).bes", - "name": "878-GTS UKI - AIX Patching - Populate Repository - 7100-03 (TL) - v1.0 (20772).bes", - "dir": "Sites/AIX Management/Fixlets/Fixlets", - "type": "Task", - "title": "GTS UKI - AIX Patching - Populate Repository - 7100-03 (TL) - v1.0", - "source": "GTS UKI", - "sourceReleaseDate": "2015-11-24", - "severity": "", - "domain": "BESC", - "downloadSize": "", - "relevanceCount": 1, - "author": "beasleya", - "id": "20772", - "publisher": "", - "productName": "", - "release": "", - "keywords": "" + "path": "Signatures/software_Brotli_all_Affected_by_CVE-2026-111497-0.AFFECTED.xml", + "added": "2026-10-28T14:05:43-04:00", + "author": "JGStew", + "login": "" }, { - "path": "Sites/AIX Management/Fixlets/Fixlets/879-GTS UKI - AIX Patching - Populate Repository - 7100-03-05 (SP Only) - v1.0 (20770).bes", - "name": "879-GTS UKI - AIX Patching - Populate Repository - 7100-03-05 (SP Only) - v1.0 (20770).bes", - "dir": "Sites/AIX Management/Fixlets/Fixlets", - "type": "Task", - "title": "GTS UKI - AIX Patching - Populate Repository - 7100-03-05 (SP Only) - v1.0", - "source": "GTS UKI", - "sourceReleaseDate": "2015-11-23", - "severity": "", - "domain": "BESC", - "downloadSize": "", - "relevanceCount": 1, - "author": "beasleya", - "id": "20770", - "publisher": "", - "productName": "", - "release": "", - "keywords": "" + "path": "Signatures/software_Brotli_ANY-0.any_version.xml", + "added": "2026-10-28T14:05:43-04:00", + "author": "JGStew", + "login": "" }, { - "path": "Sites/AIX Management/Fixlets/Fixlets/880-GTS UKI - AIX Patching - Populate Repository - 7100-03-05 (TL and SP) - v1.0 (20771).bes", - "name": "880-GTS UKI - AIX Patching - Populate Repository - 7100-03-05 (TL and SP) - v1.0 (20771).bes", - "dir": "Sites/AIX Management/Fixlets/Fixlets", - "type": "Task", - "title": "GTS UKI - AIX Patching - Populate Repository - 7100-03-05 (TL and SP) - v1.0", - "source": "GTS UKI", - "sourceReleaseDate": "2015-11-24", - "severity": "", - "domain": "BESC", - "downloadSize": "", - "relevanceCount": 1, - "author": "beasleya", - "id": "20771", - "publisher": "", - "productName": "", - "release": "", - "keywords": "" + "path": "Signatures/software_Node.js_all_Affected_by_CVE-2026-111497-0.AFFECTED.xml", + "added": "2026-10-26T21:56:04-04:00", + "author": "JGStew", + "login": "" }, { - "path": "Sites/AIX Management/Fixlets/Fixlets/881-GTS UKI - Upgrade AIX TL or SP from an NFS mount using multibos - v3.4 (20769).bes", - "name": "881-GTS UKI - Upgrade AIX TL or SP from an NFS mount using multibos - v3.4 (20769).bes", - "dir": "Sites/AIX Management/Fixlets/Fixlets", - "type": "Task", - "title": "GTS UKI - Upgrade AIX TL or SP from an NFS mount using multibos - v3.4", - "source": "GTS UKI", - "sourceReleaseDate": "2016-04-15", - "severity": "", - "domain": "BESC", - "downloadSize": "", - "relevanceCount": 2, - "author": "beasleya", - "id": "20769", - "publisher": "", - "productName": "", - "release": "", - "keywords": "" + "path": "Signatures/software_Node.js_ANY-0.any_version.xml", + "added": "2026-10-26T21:56:04-04:00", + "author": "JGStew", + "login": "" }, + { + "path": "Signatures/software_Electron_ANY-0.any_version.xml", + "added": "2026-10-26T21:56:04-04:00", + "author": "JGStew", + "login": "" + }, + { + "path": "Signatures/software_PHP_all_Affected_by_CVE-2026-109618_and_CVE-2026-109619-0.AFFECTED.xml", + "added": "2026-10-26T17:25:22-05:00", + "author": "Test", + "login": "" + }, + { + "path": "Sites/BigFix Management/Fixlets/Fixlets/13967-Install BES Console Right-Click Options (10.0).bes", + "added": "2026-10-15T15:56:28-06:00", + "author": "Test", + "login": "" + }, + { + "path": "Sites/Application Management/Fixlets/Fixlets/13966-Install Bruno 4.2.1 x64 for Windows.bes", + "added": "2026-10-14T16:28:00-06:00", + "author": "Test", + "login": "" + }, + { + "path": "Sites/Application Management/Fixlets/Fixlets/9999-Uninstall_ MSI - Microsoft SharePoint Designer MUI (English) 2013 - Windows (16995).bes", + "added": "2026-09-17T17:43:46-05:00", + "author": "Test", + "login": "" + }, + { + "path": "Sites/Application Management/Fixlets/Fixlets/9998-Uninstall_ MSI - Microsoft SharePoint Designer MUI (English) - Windows (16994).bes", + "added": "2026-09-17T17:43:46-05:00", + "author": "Test", + "login": "" + } + ], + "files": [ { "path": "Sites/Active Directory Management/Fixlets/Analyses/100-AD OUs - Active Directory Info - Windows & Mac (2998380).bes", "name": "100-AD OUs - Active Directory Info - Windows & Mac (2998380).bes", @@ -190,6 +176,82 @@ "release": "", "keywords": "" }, + { + "path": "Sites/AIX Management/Fixlets/Fixlets/878-GTS UKI - AIX Patching - Populate Repository - 7100-03 (TL) - v1.0 (20772).bes", + "name": "878-GTS UKI - AIX Patching - Populate Repository - 7100-03 (TL) - v1.0 (20772).bes", + "dir": "Sites/AIX Management/Fixlets/Fixlets", + "type": "Task", + "title": "GTS UKI - AIX Patching - Populate Repository - 7100-03 (TL) - v1.0", + "source": "GTS UKI", + "sourceReleaseDate": "2015-11-24", + "severity": "", + "domain": "BESC", + "downloadSize": "", + "relevanceCount": 1, + "author": "beasleya", + "id": "20772", + "publisher": "", + "productName": "", + "release": "", + "keywords": "" + }, + { + "path": "Sites/AIX Management/Fixlets/Fixlets/879-GTS UKI - AIX Patching - Populate Repository - 7100-03-05 (SP Only) - v1.0 (20770).bes", + "name": "879-GTS UKI - AIX Patching - Populate Repository - 7100-03-05 (SP Only) - v1.0 (20770).bes", + "dir": "Sites/AIX Management/Fixlets/Fixlets", + "type": "Task", + "title": "GTS UKI - AIX Patching - Populate Repository - 7100-03-05 (SP Only) - v1.0", + "source": "GTS UKI", + "sourceReleaseDate": "2015-11-23", + "severity": "", + "domain": "BESC", + "downloadSize": "", + "relevanceCount": 1, + "author": "beasleya", + "id": "20770", + "publisher": "", + "productName": "", + "release": "", + "keywords": "" + }, + { + "path": "Sites/AIX Management/Fixlets/Fixlets/880-GTS UKI - AIX Patching - Populate Repository - 7100-03-05 (TL and SP) - v1.0 (20771).bes", + "name": "880-GTS UKI - AIX Patching - Populate Repository - 7100-03-05 (TL and SP) - v1.0 (20771).bes", + "dir": "Sites/AIX Management/Fixlets/Fixlets", + "type": "Task", + "title": "GTS UKI - AIX Patching - Populate Repository - 7100-03-05 (TL and SP) - v1.0", + "source": "GTS UKI", + "sourceReleaseDate": "2015-11-24", + "severity": "", + "domain": "BESC", + "downloadSize": "", + "relevanceCount": 1, + "author": "beasleya", + "id": "20771", + "publisher": "", + "productName": "", + "release": "", + "keywords": "" + }, + { + "path": "Sites/AIX Management/Fixlets/Fixlets/881-GTS UKI - Upgrade AIX TL or SP from an NFS mount using multibos - v3.4 (20769).bes", + "name": "881-GTS UKI - Upgrade AIX TL or SP from an NFS mount using multibos - v3.4 (20769).bes", + "dir": "Sites/AIX Management/Fixlets/Fixlets", + "type": "Task", + "title": "GTS UKI - Upgrade AIX TL or SP from an NFS mount using multibos - v3.4", + "source": "GTS UKI", + "sourceReleaseDate": "2016-04-15", + "severity": "", + "domain": "BESC", + "downloadSize": "", + "relevanceCount": 2, + "author": "beasleya", + "id": "20769", + "publisher": "", + "productName": "", + "release": "", + "keywords": "" + }, { "path": "Sites/Apple Management/Fixlets/Analyses/748-Apple Software Update Analysis 10.8 (2994639).bes", "name": "748-Apple Software Update Analysis 10.8 (2994639).bes", @@ -184775,101 +184837,6 @@ "release": "10.0", "keywords": "" }, - { - "path": "Signatures/AIRS-AIRS-1.0-120.xml", - "name": "AIRS-AIRS-1.0-120.xml", - "dir": "Signatures", - "type": "Signature", - "title": "AIRS", - "source": "", - "sourceReleaseDate": "", - "severity": "", - "domain": "", - "downloadSize": "", - "relevanceCount": 0, - "author": "edmontan", - "id": "", - "publisher": "AIRS", - "productName": "AIRS", - "release": "1.0", - "keywords": "" - }, - { - "path": "Signatures/ARCHIBUS, Inc-Archibus-22.0-122.xml", - "name": "ARCHIBUS, Inc-Archibus-22.0-122.xml", - "dir": "Signatures", - "type": "Signature", - "title": "Archibus", - "source": "", - "sourceReleaseDate": "", - "severity": "", - "domain": "", - "downloadSize": "", - "relevanceCount": 0, - "author": "edmontan", - "id": "", - "publisher": "ARCHIBUS, Inc", - "productName": "Archibus", - "release": "22.0", - "keywords": "" - }, - { - "path": "Signatures/AS Software-AS OBGYN-7.8-124.xml", - "name": "AS Software-AS OBGYN-7.8-124.xml", - "dir": "Signatures", - "type": "Signature", - "title": "AS OBGYN", - "source": "", - "sourceReleaseDate": "", - "severity": "", - "domain": "", - "downloadSize": "", - "relevanceCount": 0, - "author": "edmontan", - "id": "", - "publisher": "AS Software", - "productName": "AS OBGYN", - "release": "7.8", - "keywords": "" - }, - { - "path": "Signatures/AVEVA Group-CAD Centre PDMS-12.0-128.xml", - "name": "AVEVA Group-CAD Centre PDMS-12.0-128.xml", - "dir": "Signatures", - "type": "Signature", - "title": "CAD Centre PDMS", - "source": "", - "sourceReleaseDate": "", - "severity": "", - "domain": "", - "downloadSize": "", - "relevanceCount": 0, - "author": "edmontan", - "id": "", - "publisher": "AVEVA Group", - "productName": "CAD Centre PDMS", - "release": "12.0", - "keywords": "" - }, - { - "path": "Signatures/AXIS Communications AB-Axis control panel launcher-1.0-125.xml", - "name": "AXIS Communications AB-Axis control panel launcher-1.0-125.xml", - "dir": "Signatures", - "type": "Signature", - "title": "Axis control panel launcher", - "source": "", - "sourceReleaseDate": "", - "severity": "", - "domain": "", - "downloadSize": "", - "relevanceCount": 0, - "author": "edmontan", - "id": "", - "publisher": "AXIS Communications AB", - "productName": "Axis control panel launcher", - "release": "1.0", - "keywords": "" - }, { "path": "Signatures/Accellion-kiteworks-1.0-152.xml", "name": "Accellion-kiteworks-1.0-152.xml", @@ -184965,6 +184932,25 @@ "release": "4.1", "keywords": "" }, + { + "path": "Signatures/AIRS-AIRS-1.0-120.xml", + "name": "AIRS-AIRS-1.0-120.xml", + "dir": "Signatures", + "type": "Signature", + "title": "AIRS", + "source": "", + "sourceReleaseDate": "", + "severity": "", + "domain": "", + "downloadSize": "", + "relevanceCount": 0, + "author": "edmontan", + "id": "", + "publisher": "AIRS", + "productName": "AIRS", + "release": "1.0", + "keywords": "" + }, { "path": "Signatures/Ansos Staff Scheduling-Ansos-5.0-121.xml", "name": "Ansos Staff Scheduling-Ansos-5.0-121.xml", @@ -185117,6 +185103,44 @@ "release": "0.any_version", "keywords": "Apache Commons Text, CVE-2022-42889" }, + { + "path": "Signatures/ARCHIBUS, Inc-Archibus-22.0-122.xml", + "name": "ARCHIBUS, Inc-Archibus-22.0-122.xml", + "dir": "Signatures", + "type": "Signature", + "title": "Archibus", + "source": "", + "sourceReleaseDate": "", + "severity": "", + "domain": "", + "downloadSize": "", + "relevanceCount": 0, + "author": "edmontan", + "id": "", + "publisher": "ARCHIBUS, Inc", + "productName": "Archibus", + "release": "22.0", + "keywords": "" + }, + { + "path": "Signatures/AS Software-AS OBGYN-7.8-124.xml", + "name": "AS Software-AS OBGYN-7.8-124.xml", + "dir": "Signatures", + "type": "Signature", + "title": "AS OBGYN", + "source": "", + "sourceReleaseDate": "", + "severity": "", + "domain": "", + "downloadSize": "", + "relevanceCount": 0, + "author": "edmontan", + "id": "", + "publisher": "AS Software", + "productName": "AS OBGYN", + "release": "7.8", + "keywords": "" + }, { "path": "Signatures/Asure Software-Asure-1.0-123.xml", "name": "Asure Software-Asure-1.0-123.xml", @@ -185193,6 +185217,44 @@ "release": "7.15.0 - 7.18.0", "keywords": "Confluence Server and Data Center CVE-2022-26134" }, + { + "path": "Signatures/AVEVA Group-CAD Centre PDMS-12.0-128.xml", + "name": "AVEVA Group-CAD Centre PDMS-12.0-128.xml", + "dir": "Signatures", + "type": "Signature", + "title": "CAD Centre PDMS", + "source": "", + "sourceReleaseDate": "", + "severity": "", + "domain": "", + "downloadSize": "", + "relevanceCount": 0, + "author": "edmontan", + "id": "", + "publisher": "AVEVA Group", + "productName": "CAD Centre PDMS", + "release": "12.0", + "keywords": "" + }, + { + "path": "Signatures/AXIS Communications AB-Axis control panel launcher-1.0-125.xml", + "name": "AXIS Communications AB-Axis control panel launcher-1.0-125.xml", + "dir": "Signatures", + "type": "Signature", + "title": "Axis control panel launcher", + "source": "", + "sourceReleaseDate": "", + "severity": "", + "domain": "", + "downloadSize": "", + "relevanceCount": 0, + "author": "edmontan", + "id": "", + "publisher": "AXIS Communications AB", + "productName": "Axis control panel launcher", + "release": "1.0", + "keywords": "" + }, { "path": "Signatures/Bio-Rad Laboratories-Unity Real Time-2.0-199.xml", "name": "Bio-Rad Laboratories-Unity Real Time-2.0-199.xml", @@ -185422,11 +185484,11 @@ "keywords": "Windows ISVTeam" }, { - "path": "Signatures/CA-CA IT Client Manager Agent-6.0-28.xml", - "name": "CA-CA IT Client Manager Agent-6.0-28.xml", + "path": "Signatures/CA-CA eHealth-6.0-20.xml", + "name": "CA-CA eHealth-6.0-20.xml", "dir": "Signatures", "type": "Signature", - "title": "CA IT Client Manager Agent", + "title": "CA eHealth", "source": "", "sourceReleaseDate": "", "severity": "", @@ -185436,16 +185498,16 @@ "author": "jmatlock", "id": "", "publisher": "CA", - "productName": "CA IT Client Manager Agent", + "productName": "CA eHealth", "release": "6.0", "keywords": "Windows ISVTeam" }, { - "path": "Signatures/CA-CA Spectrum-9.1-11.xml", - "name": "CA-CA Spectrum-9.1-11.xml", + "path": "Signatures/CA-CA eHealth-6.1-17.xml", + "name": "CA-CA eHealth-6.1-17.xml", "dir": "Signatures", "type": "Signature", - "title": "CA Spectrum", + "title": "CA eHealth", "source": "", "sourceReleaseDate": "", "severity": "", @@ -185455,16 +185517,16 @@ "author": "jmatlock", "id": "", "publisher": "CA", - "productName": "CA Spectrum", - "release": "9.1", + "productName": "CA eHealth", + "release": "6.1", "keywords": "Windows ISVTeam" }, { - "path": "Signatures/CA-CA Spectrum-9.3-19.xml", - "name": "CA-CA Spectrum-9.3-19.xml", + "path": "Signatures/CA-CA eHealth-6.2-30.xml", + "name": "CA-CA eHealth-6.2-30.xml", "dir": "Signatures", "type": "Signature", - "title": "CA Spectrum", + "title": "CA eHealth", "source": "", "sourceReleaseDate": "", "severity": "", @@ -185474,16 +185536,16 @@ "author": "jmatlock", "id": "", "publisher": "CA", - "productName": "CA Spectrum", - "release": "9.3", + "productName": "CA eHealth", + "release": "6.2", "keywords": "Windows ISVTeam" }, { - "path": "Signatures/CA-CA Spectrum-9.4-14.xml", - "name": "CA-CA Spectrum-9.4-14.xml", + "path": "Signatures/CA-CA IT Client Manager Agent-6.0-28.xml", + "name": "CA-CA IT Client Manager Agent-6.0-28.xml", "dir": "Signatures", "type": "Signature", - "title": "CA Spectrum", + "title": "CA IT Client Manager Agent", "source": "", "sourceReleaseDate": "", "severity": "", @@ -185493,16 +185555,16 @@ "author": "jmatlock", "id": "", "publisher": "CA", - "productName": "CA Spectrum", - "release": "9.4", + "productName": "CA IT Client Manager Agent", + "release": "6.0", "keywords": "Windows ISVTeam" }, { - "path": "Signatures/CA-CA eHealth-6.0-20.xml", - "name": "CA-CA eHealth-6.0-20.xml", + "path": "Signatures/CA-CA Spectrum-9.1-11.xml", + "name": "CA-CA Spectrum-9.1-11.xml", "dir": "Signatures", "type": "Signature", - "title": "CA eHealth", + "title": "CA Spectrum", "source": "", "sourceReleaseDate": "", "severity": "", @@ -185512,16 +185574,16 @@ "author": "jmatlock", "id": "", "publisher": "CA", - "productName": "CA eHealth", - "release": "6.0", + "productName": "CA Spectrum", + "release": "9.1", "keywords": "Windows ISVTeam" }, { - "path": "Signatures/CA-CA eHealth-6.1-17.xml", - "name": "CA-CA eHealth-6.1-17.xml", + "path": "Signatures/CA-CA Spectrum-9.3-19.xml", + "name": "CA-CA Spectrum-9.3-19.xml", "dir": "Signatures", "type": "Signature", - "title": "CA eHealth", + "title": "CA Spectrum", "source": "", "sourceReleaseDate": "", "severity": "", @@ -185531,16 +185593,16 @@ "author": "jmatlock", "id": "", "publisher": "CA", - "productName": "CA eHealth", - "release": "6.1", + "productName": "CA Spectrum", + "release": "9.3", "keywords": "Windows ISVTeam" }, { - "path": "Signatures/CA-CA eHealth-6.2-30.xml", - "name": "CA-CA eHealth-6.2-30.xml", + "path": "Signatures/CA-CA Spectrum-9.4-14.xml", + "name": "CA-CA Spectrum-9.4-14.xml", "dir": "Signatures", "type": "Signature", - "title": "CA eHealth", + "title": "CA Spectrum", "source": "", "sourceReleaseDate": "", "severity": "", @@ -185550,8 +185612,8 @@ "author": "jmatlock", "id": "", "publisher": "CA", - "productName": "CA eHealth", - "release": "6.2", + "productName": "CA Spectrum", + "release": "9.4", "keywords": "Windows ISVTeam" }, { @@ -185668,6 +185730,44 @@ "release": "8.0", "keywords": "" }, + { + "path": "Signatures/eClinicalWorks-eClinicalWorks-10.0-133.xml", + "name": "eClinicalWorks-eClinicalWorks-10.0-133.xml", + "dir": "Signatures", + "type": "Signature", + "title": "eClinicalWorks", + "source": "", + "sourceReleaseDate": "", + "severity": "", + "domain": "", + "downloadSize": "", + "relevanceCount": 0, + "author": "edmontan", + "id": "", + "publisher": "eClinicalWorks", + "productName": "eClinicalWorks", + "release": "10.0", + "keywords": "" + }, + { + "path": "Signatures/Elekta-MOSAIQ-2.0-163.xml", + "name": "Elekta-MOSAIQ-2.0-163.xml", + "dir": "Signatures", + "type": "Signature", + "title": "MOSAIQ", + "source": "", + "sourceReleaseDate": "", + "severity": "", + "domain": "", + "downloadSize": "", + "relevanceCount": 0, + "author": "edmontan", + "id": "", + "publisher": "Elekta", + "productName": "MOSAIQ", + "release": "2.0", + "keywords": "" + }, { "path": "Signatures/EMC Corporation-Networker Client-7.4-85.xml", "name": "EMC Corporation-Networker Client-7.4-85.xml", @@ -185991,25 +186091,6 @@ "release": "8.2", "keywords": "Solaris ISVTeam" }, - { - "path": "Signatures/Elekta-MOSAIQ-2.0-163.xml", - "name": "Elekta-MOSAIQ-2.0-163.xml", - "dir": "Signatures", - "type": "Signature", - "title": "MOSAIQ", - "source": "", - "sourceReleaseDate": "", - "severity": "", - "domain": "", - "downloadSize": "", - "relevanceCount": 0, - "author": "edmontan", - "id": "", - "publisher": "Elekta", - "productName": "MOSAIQ", - "release": "2.0", - "keywords": "" - }, { "path": "Signatures/Epic Systems Corporation-Epic BCA Client-83.0-137.xml", "name": "Epic Systems Corporation-Epic BCA Client-83.0-137.xml", @@ -187454,6 +187535,25 @@ "release": "07.02.0901", "keywords": "PterConnects Flexera Software LCC" }, + { + "path": "Signatures/Johnson Controls-MatasysIII-8.0-156.xml", + "name": "Johnson Controls-MatasysIII-8.0-156.xml", + "dir": "Signatures", + "type": "Signature", + "title": "MatasysIII", + "source": "", + "sourceReleaseDate": "", + "severity": "", + "domain": "", + "downloadSize": "", + "relevanceCount": 0, + "author": "edmontan", + "id": "", + "publisher": "Johnson Controls", + "productName": "MatasysIII", + "release": "8.0", + "keywords": "" + }, { "path": "Signatures/JUNIPER NETWORKS-Juniper Networks Network Connect-7.2-16.xml", "name": "JUNIPER NETWORKS-Juniper Networks Network Connect-7.2-16.xml", @@ -187511,25 +187611,6 @@ "release": "7.4", "keywords": "Windows ISVTeam" }, - { - "path": "Signatures/Johnson Controls-MatasysIII-8.0-156.xml", - "name": "Johnson Controls-MatasysIII-8.0-156.xml", - "dir": "Signatures", - "type": "Signature", - "title": "MatasysIII", - "source": "", - "sourceReleaseDate": "", - "severity": "", - "domain": "", - "downloadSize": "", - "relevanceCount": 0, - "author": "edmontan", - "id": "", - "publisher": "Johnson Controls", - "productName": "MatasysIII", - "release": "8.0", - "keywords": "" - }, { "path": "Signatures/KeyPrint-KeyPrint-5.0-150.xml", "name": "KeyPrint-KeyPrint-5.0-150.xml", @@ -187625,25 +187706,6 @@ "release": "1.0", "keywords": "" }, - { - "path": "Signatures/MIDAS Information Technology Co. Ltd.-MIDAS-1.0-161.xml", - "name": "MIDAS Information Technology Co. Ltd.-MIDAS-1.0-161.xml", - "dir": "Signatures", - "type": "Signature", - "title": "MIDAS", - "source": "", - "sourceReleaseDate": "", - "severity": "", - "domain": "", - "downloadSize": "", - "relevanceCount": 0, - "author": "edmontan", - "id": "", - "publisher": "MIDAS Information Technology Co. Ltd.", - "productName": "MIDAS", - "release": "1.0", - "keywords": "" - }, { "path": "Signatures/McKesson Corp.-McKesson CWI-2.0-157.xml", "name": "McKesson Corp.-McKesson CWI-2.0-157.xml", @@ -187720,6 +187782,25 @@ "release": "2.9", "keywords": "" }, + { + "path": "Signatures/MIDAS Information Technology Co. Ltd.-MIDAS-1.0-161.xml", + "name": "MIDAS Information Technology Co. Ltd.-MIDAS-1.0-161.xml", + "dir": "Signatures", + "type": "Signature", + "title": "MIDAS", + "source": "", + "sourceReleaseDate": "", + "severity": "", + "domain": "", + "downloadSize": "", + "relevanceCount": 0, + "author": "edmontan", + "id": "", + "publisher": "MIDAS Information Technology Co. Ltd.", + "productName": "MIDAS", + "release": "1.0", + "keywords": "" + }, { "path": "Signatures/Milestone Systems AS-Milestone XProtect Corporate Recording Server-2.0-162.xml", "name": "Milestone Systems AS-Milestone XProtect Corporate Recording Server-2.0-162.xml", @@ -187834,6 +187915,44 @@ "release": "1.0", "keywords": "" }, + { + "path": "Signatures/npm-axios-0.AFFECTED-1273.xml", + "name": "npm-axios-0.AFFECTED-1273.xml", + "dir": "Signatures", + "type": "Signature", + "title": "axios", + "source": "", + "sourceReleaseDate": "", + "severity": "", + "domain": "", + "downloadSize": "", + "relevanceCount": 0, + "author": "AdithyaES", + "id": "", + "publisher": "npm", + "productName": "axios", + "release": "0.AFFECTED", + "keywords": "npm axios, CVE-2026-25639, Supply Chain, Remote Access Trojan, AFFECTED versions" + }, + { + "path": "Signatures/npm-axios-0.ALL-1272.xml", + "name": "npm-axios-0.ALL-1272.xml", + "dir": "Signatures", + "type": "Signature", + "title": "axios", + "source": "", + "sourceReleaseDate": "", + "severity": "", + "domain": "", + "downloadSize": "", + "relevanceCount": 0, + "author": "AdithyaES", + "id": "", + "publisher": "npm", + "productName": "axios", + "release": "0.ALL", + "keywords": "npm axios, CVE-2026-25639, Supply Chain, Remote Access Trojan, ALL versions" + }, { "path": "Signatures/Nuance-PowerScribe 360-6.5-178.xml", "name": "Nuance-PowerScribe 360-6.5-178.xml", @@ -187910,6 +188029,44 @@ "release": "1.0", "keywords": "" }, + { + "path": "Signatures/pac4j-pac4j-jwt Affected By CVE-2026-29000-0.AFFECTED-1270.xml", + "name": "pac4j-pac4j-jwt Affected By CVE-2026-29000-0.AFFECTED-1270.xml", + "dir": "Signatures", + "type": "Signature", + "title": "pac4j-jwt Affected By CVE-2026-29000", + "source": "", + "sourceReleaseDate": "", + "severity": "", + "domain": "", + "downloadSize": "", + "relevanceCount": 0, + "author": "Neha_Sasidharan", + "id": "", + "publisher": "pac4j", + "productName": "pac4j-jwt Affected By CVE-2026-29000", + "release": "0.AFFECTED", + "keywords": "pac4j-jwt,CVE-2026-29000" + }, + { + "path": "Signatures/pac4j-pac4j-jwt-0.ALL-1271.xml", + "name": "pac4j-pac4j-jwt-0.ALL-1271.xml", + "dir": "Signatures", + "type": "Signature", + "title": "pac4j-jwt", + "source": "", + "sourceReleaseDate": "", + "severity": "", + "domain": "", + "downloadSize": "", + "relevanceCount": 0, + "author": "Neha_Sasidharan", + "id": "", + "publisher": "pac4j", + "productName": "pac4j-jwt", + "release": "0.ALL", + "keywords": "pac4j-jwt, ALL versions" + }, { "path": "Signatures/PAGNY-PAGNY-1.0-172.xml", "name": "PAGNY-PAGNY-1.0-172.xml", @@ -187986,25 +188143,6 @@ "release": "8.5", "keywords": "" }, - { - "path": "Signatures/ProVation Medical Inc.-ProVation MD-5.0-179.xml", - "name": "ProVation Medical Inc.-ProVation MD-5.0-179.xml", - "dir": "Signatures", - "type": "Signature", - "title": "ProVation MD", - "source": "", - "sourceReleaseDate": "", - "severity": "", - "domain": "", - "downloadSize": "", - "relevanceCount": 0, - "author": "edmontan", - "id": "", - "publisher": "ProVation Medical Inc.", - "productName": "ProVation MD", - "release": "5.0", - "keywords": "" - }, { "path": "Signatures/Progress Software Corporation-MOVEit Transfer affected by CVE-2023-35708-0.any_version-1262.xml", "name": "Progress Software Corporation-MOVEit Transfer affected by CVE-2023-35708-0.any_version-1262.xml", @@ -188062,6 +188200,25 @@ "release": "0.any_version", "keywords": "" }, + { + "path": "Signatures/ProVation Medical Inc.-ProVation MD-5.0-179.xml", + "name": "ProVation Medical Inc.-ProVation MD-5.0-179.xml", + "dir": "Signatures", + "type": "Signature", + "title": "ProVation MD", + "source": "", + "sourceReleaseDate": "", + "severity": "", + "domain": "", + "downloadSize": "", + "relevanceCount": 0, + "author": "edmontan", + "id": "", + "publisher": "ProVation Medical Inc.", + "productName": "ProVation MD", + "release": "5.0", + "keywords": "" + }, { "path": "Signatures/Python Software Foundation-urllib3 CVE-2025-66471-0.AFFECTED-1268.xml", "name": "Python Software Foundation-urllib3 CVE-2025-66471-0.AFFECTED-1268.xml", @@ -188176,6 +188333,139 @@ "release": "6.2", "keywords": "" }, + { + "path": "Signatures/React.dev-react-server-dom CVE-2025-55182-19.AFFECTED-1267.xml", + "name": "React.dev-react-server-dom CVE-2025-55182-19.AFFECTED-1267.xml", + "dir": "Signatures", + "type": "Signature", + "title": "react-server-dom CVE-2025-55182", + "source": "", + "sourceReleaseDate": "", + "severity": "", + "domain": "", + "downloadSize": "", + "relevanceCount": 0, + "author": "JasonWalker", + "id": "", + "publisher": "React.dev", + "productName": "react-server-dom CVE-2025-55182", + "release": "19.AFFECTED", + "keywords": "react-server-components, CVE-2025-55182, npm" + }, + { + "path": "Signatures/React.dev-react-server-dom-0.SAFE-1266.xml", + "name": "React.dev-react-server-dom-0.SAFE-1266.xml", + "dir": "Signatures", + "type": "Signature", + "title": "react-server-dom", + "source": "", + "sourceReleaseDate": "", + "severity": "", + "domain": "", + "downloadSize": "", + "relevanceCount": 0, + "author": "JasonWalker", + "id": "", + "publisher": "React.dev", + "productName": "react-server-dom", + "release": "0.SAFE", + "keywords": "react-server-components, CVE-2025-55182, npm" + }, + { + "path": "Signatures/Royal Philips Electronics-OBTrace Vue-10.-169.xml", + "name": "Royal Philips Electronics-OBTrace Vue-10.-169.xml", + "dir": "Signatures", + "type": "Signature", + "title": "OBTrace Vue", + "source": "", + "sourceReleaseDate": "", + "severity": "", + "domain": "", + "downloadSize": "", + "relevanceCount": 0, + "author": "edmontan", + "id": "", + "publisher": "Royal Philips Electronics", + "productName": "OBTrace Vue", + "release": "10.", + "keywords": "" + }, + { + "path": "Signatures/Royal Philips Electronics-Philips Xcelera Cath-16.0-177.xml", + "name": "Royal Philips Electronics-Philips Xcelera Cath-16.0-177.xml", + "dir": "Signatures", + "type": "Signature", + "title": "Philips Xcelera Cath", + "source": "", + "sourceReleaseDate": "", + "severity": "", + "domain": "", + "downloadSize": "", + "relevanceCount": 0, + "author": "edmontan", + "id": "", + "publisher": "Royal Philips Electronics", + "productName": "Philips Xcelera Cath", + "release": "16.0", + "keywords": "" + }, + { + "path": "Signatures/Royal Philips Electronics-TraceMasterVue-5.0-198.xml", + "name": "Royal Philips Electronics-TraceMasterVue-5.0-198.xml", + "dir": "Signatures", + "type": "Signature", + "title": "TraceMasterVue", + "source": "", + "sourceReleaseDate": "", + "severity": "", + "domain": "", + "downloadSize": "", + "relevanceCount": 0, + "author": "edmontan", + "id": "", + "publisher": "Royal Philips Electronics", + "productName": "TraceMasterVue", + "release": "5.0", + "keywords": "" + }, + { + "path": "Signatures/Royal Philips Electronics-Xcelera Ultrasound-16.0-203.xml", + "name": "Royal Philips Electronics-Xcelera Ultrasound-16.0-203.xml", + "dir": "Signatures", + "type": "Signature", + "title": "Xcelera Ultrasound", + "source": "", + "sourceReleaseDate": "", + "severity": "", + "domain": "", + "downloadSize": "", + "relevanceCount": 0, + "author": "edmontan", + "id": "", + "publisher": "Royal Philips Electronics", + "productName": "Xcelera Ultrasound", + "release": "16.0", + "keywords": "" + }, + { + "path": "Signatures/Rsam-Rsam-8.1-189.xml", + "name": "Rsam-Rsam-8.1-189.xml", + "dir": "Signatures", + "type": "Signature", + "title": "Rsam", + "source": "", + "sourceReleaseDate": "", + "severity": "", + "domain": "", + "downloadSize": "", + "relevanceCount": 0, + "author": "edmontan", + "id": "", + "publisher": "Rsam", + "productName": "Rsam", + "release": "8.1", + "keywords": "" + }, { "path": "Signatures/RWD-uPerform - Client-4.10-29.xml", "name": "RWD-uPerform - Client-4.10-29.xml", @@ -188215,49 +188505,11 @@ "keywords": "Windows ISVTeam" }, { - "path": "Signatures/React.dev-react-server-dom CVE-2025-55182-19.AFFECTED-1267.xml", - "name": "React.dev-react-server-dom CVE-2025-55182-19.AFFECTED-1267.xml", - "dir": "Signatures", - "type": "Signature", - "title": "react-server-dom CVE-2025-55182", - "source": "", - "sourceReleaseDate": "", - "severity": "", - "domain": "", - "downloadSize": "", - "relevanceCount": 0, - "author": "JasonWalker", - "id": "", - "publisher": "React.dev", - "productName": "react-server-dom CVE-2025-55182", - "release": "19.AFFECTED", - "keywords": "react-server-components, CVE-2025-55182, npm" - }, - { - "path": "Signatures/React.dev-react-server-dom-0.SAFE-1266.xml", - "name": "React.dev-react-server-dom-0.SAFE-1266.xml", - "dir": "Signatures", - "type": "Signature", - "title": "react-server-dom", - "source": "", - "sourceReleaseDate": "", - "severity": "", - "domain": "", - "downloadSize": "", - "relevanceCount": 0, - "author": "JasonWalker", - "id": "", - "publisher": "React.dev", - "productName": "react-server-dom", - "release": "0.SAFE", - "keywords": "react-server-components, CVE-2025-55182, npm" - }, - { - "path": "Signatures/Royal Philips Electronics-OBTrace Vue-10.-169.xml", - "name": "Royal Philips Electronics-OBTrace Vue-10.-169.xml", + "path": "Signatures/Siemens-Openlink-23.5-170.xml", + "name": "Siemens-Openlink-23.5-170.xml", "dir": "Signatures", "type": "Signature", - "title": "OBTrace Vue", + "title": "Openlink", "source": "", "sourceReleaseDate": "", "severity": "", @@ -188266,123 +188518,123 @@ "relevanceCount": 0, "author": "edmontan", "id": "", - "publisher": "Royal Philips Electronics", - "productName": "OBTrace Vue", - "release": "10.", + "publisher": "Siemens", + "productName": "Openlink", + "release": "23.5", "keywords": "" }, { - "path": "Signatures/Royal Philips Electronics-Philips Xcelera Cath-16.0-177.xml", - "name": "Royal Philips Electronics-Philips Xcelera Cath-16.0-177.xml", + "path": "Signatures/software_Brotli_all_Affected_by_CVE-2026-111497-0.AFFECTED.xml", + "name": "software_Brotli_all_Affected_by_CVE-2026-111497-0.AFFECTED.xml", "dir": "Signatures", "type": "Signature", - "title": "Philips Xcelera Cath", + "title": "Brotli all Affected by CVE-2026-111497", "source": "", "sourceReleaseDate": "", "severity": "", "domain": "", "downloadSize": "", "relevanceCount": 0, - "author": "edmontan", + "author": "Jwalker107", "id": "", - "publisher": "Royal Philips Electronics", - "productName": "Philips Xcelera Cath", - "release": "16.0", - "keywords": "" + "publisher": "Google", + "productName": "Brotli all Affected by CVE-2026-111497", + "release": "0.AFFECTED", + "keywords": "Brotli, libbrotli, CVE-2026-111497, AFFECTED versions" }, { - "path": "Signatures/Royal Philips Electronics-TraceMasterVue-5.0-198.xml", - "name": "Royal Philips Electronics-TraceMasterVue-5.0-198.xml", + "path": "Signatures/software_Brotli_ANY-0.any_version.xml", + "name": "software_Brotli_ANY-0.any_version.xml", "dir": "Signatures", "type": "Signature", - "title": "TraceMasterVue", + "title": "Brotli ANY", "source": "", "sourceReleaseDate": "", "severity": "", "domain": "", "downloadSize": "", "relevanceCount": 0, - "author": "edmontan", + "author": "Jwalker107", "id": "", - "publisher": "Royal Philips Electronics", - "productName": "TraceMasterVue", - "release": "5.0", - "keywords": "" + "publisher": "Google", + "productName": "Brotli ANY", + "release": "0.any_version", + "keywords": "Brotli, libbrotli, inventory, any version" }, { - "path": "Signatures/Royal Philips Electronics-Xcelera Ultrasound-16.0-203.xml", - "name": "Royal Philips Electronics-Xcelera Ultrasound-16.0-203.xml", + "path": "Signatures/software_Electron_ANY-0.any_version.xml", + "name": "software_Electron_ANY-0.any_version.xml", "dir": "Signatures", "type": "Signature", - "title": "Xcelera Ultrasound", + "title": "software_Electron_ANY-0.any_version", "source": "", "sourceReleaseDate": "", "severity": "", "domain": "", "downloadSize": "", "relevanceCount": 0, - "author": "edmontan", + "author": "", "id": "", - "publisher": "Royal Philips Electronics", - "productName": "Xcelera Ultrasound", - "release": "16.0", + "publisher": "", + "productName": "", + "release": "", "keywords": "" }, { - "path": "Signatures/Rsam-Rsam-8.1-189.xml", - "name": "Rsam-Rsam-8.1-189.xml", + "path": "Signatures/software_Node.js_all_Affected_by_CVE-2026-111497-0.AFFECTED.xml", + "name": "software_Node.js_all_Affected_by_CVE-2026-111497-0.AFFECTED.xml", "dir": "Signatures", "type": "Signature", - "title": "Rsam", + "title": "software_Node.js_all_Affected_by_CVE-2026-111497-0.AFFECTED", "source": "", "sourceReleaseDate": "", "severity": "", "domain": "", "downloadSize": "", "relevanceCount": 0, - "author": "edmontan", + "author": "", "id": "", - "publisher": "Rsam", - "productName": "Rsam", - "release": "8.1", + "publisher": "", + "productName": "", + "release": "", "keywords": "" }, { - "path": "Signatures/STOPware-PassagePoint-13.0-173.xml", - "name": "STOPware-PassagePoint-13.0-173.xml", + "path": "Signatures/software_Node.js_ANY-0.any_version.xml", + "name": "software_Node.js_ANY-0.any_version.xml", "dir": "Signatures", "type": "Signature", - "title": "PassagePoint", + "title": "software_Node.js_ANY-0.any_version", "source": "", "sourceReleaseDate": "", "severity": "", "domain": "", "downloadSize": "", "relevanceCount": 0, - "author": "edmontan", + "author": "", "id": "", - "publisher": "STOPware", - "productName": "PassagePoint", - "release": "13.0", + "publisher": "", + "productName": "", + "release": "", "keywords": "" }, { - "path": "Signatures/Siemens-Openlink-23.5-170.xml", - "name": "Siemens-Openlink-23.5-170.xml", + "path": "Signatures/software_PHP_all_Affected_by_CVE-2026-109618_and_CVE-2026-109619-0.AFFECTED.xml", + "name": "software_PHP_all_Affected_by_CVE-2026-109618_and_CVE-2026-109619-0.AFFECTED.xml", "dir": "Signatures", "type": "Signature", - "title": "Openlink", + "title": "software_PHP_all_Affected_by_CVE-2026-109618_and_CVE-2026-109619-0.AFFECTED", "source": "", "sourceReleaseDate": "", "severity": "", "domain": "", "downloadSize": "", "relevanceCount": 0, - "author": "edmontan", + "author": "", "id": "", - "publisher": "Siemens", - "productName": "Openlink", - "release": "23.5", + "publisher": "", + "productName": "", + "release": "", "keywords": "" }, { @@ -188423,6 +188675,25 @@ "release": "6.0", "keywords": "" }, + { + "path": "Signatures/STOPware-PassagePoint-13.0-173.xml", + "name": "STOPware-PassagePoint-13.0-173.xml", + "dir": "Signatures", + "type": "Signature", + "title": "PassagePoint", + "source": "", + "sourceReleaseDate": "", + "severity": "", + "domain": "", + "downloadSize": "", + "relevanceCount": 0, + "author": "edmontan", + "id": "", + "publisher": "STOPware", + "productName": "PassagePoint", + "release": "13.0", + "keywords": "" + }, { "path": "Signatures/Symantec Corporation-Symantec Netbackup Enterprise Client-6.5-67.xml", "name": "Symantec Corporation-Symantec Netbackup Enterprise Client-6.5-67.xml", @@ -188842,11 +189113,11 @@ "keywords": "Solaris ISVTeam" }, { - "path": "Signatures/Symantec-VERITAS File System-6.2-32.xml", - "name": "Symantec-VERITAS File System-6.2-32.xml", + "path": "Signatures/Symantec-Veritas File System-6.1-43.xml", + "name": "Symantec-Veritas File System-6.1-43.xml", "dir": "Signatures", "type": "Signature", - "title": "VERITAS File System", + "title": "Veritas File System", "source": "", "sourceReleaseDate": "", "severity": "", @@ -188856,16 +189127,16 @@ "author": "jmatlock", "id": "", "publisher": "Symantec", - "productName": "VERITAS File System", - "release": "6.2", - "keywords": "Solaris ISVTeam" + "productName": "Veritas File System", + "release": "6.1", + "keywords": "Linux ISVTeam" }, { - "path": "Signatures/Symantec-Veritas File System-6.1-43.xml", - "name": "Symantec-Veritas File System-6.1-43.xml", + "path": "Signatures/Symantec-VERITAS File System-6.2-32.xml", + "name": "Symantec-VERITAS File System-6.2-32.xml", "dir": "Signatures", "type": "Signature", - "title": "Veritas File System", + "title": "VERITAS File System", "source": "", "sourceReleaseDate": "", "severity": "", @@ -188875,9 +189146,9 @@ "author": "jmatlock", "id": "", "publisher": "Symantec", - "productName": "Veritas File System", - "release": "6.1", - "keywords": "Linux ISVTeam" + "productName": "VERITAS File System", + "release": "6.2", + "keywords": "Solaris ISVTeam" }, { "path": "Signatures/Symantec-Veritas File System-6.2-42.xml", @@ -188936,25 +189207,6 @@ "release": "3.0", "keywords": "" }, - { - "path": "Signatures/TMA System-iServiceDesk-6.0-149.xml", - "name": "TMA System-iServiceDesk-6.0-149.xml", - "dir": "Signatures", - "type": "Signature", - "title": "iServiceDesk", - "source": "", - "sourceReleaseDate": "", - "severity": "", - "domain": "", - "downloadSize": "", - "relevanceCount": 0, - "author": "edmontan", - "id": "", - "publisher": "TMA System", - "productName": "iServiceDesk", - "release": "6.0", - "keywords": "" - }, { "path": "Signatures/Telcor innovative healthcare-Telcor-3.0-196.xml", "name": "Telcor innovative healthcare-Telcor-3.0-196.xml", @@ -189069,6 +189321,25 @@ "release": "5.0", "keywords": "" }, + { + "path": "Signatures/TMA System-iServiceDesk-6.0-149.xml", + "name": "TMA System-iServiceDesk-6.0-149.xml", + "dir": "Signatures", + "type": "Signature", + "title": "iServiceDesk", + "source": "", + "sourceReleaseDate": "", + "severity": "", + "domain": "", + "downloadSize": "", + "relevanceCount": 0, + "author": "edmontan", + "id": "", + "publisher": "TMA System", + "productName": "iServiceDesk", + "release": "6.0", + "keywords": "" + }, { "path": "Signatures/Tyco Security Products-C-Cure-2.0-126.xml", "name": "Tyco Security Products-C-Cure-2.0-126.xml", @@ -189126,177 +189397,6 @@ "release": "6.0", "keywords": "" }, - { - "path": "Signatures/VMware-VMware Tools-7.4-103.xml", - "name": "VMware-VMware Tools-7.4-103.xml", - "dir": "Signatures", - "type": "Signature", - "title": "VMware Tools", - "source": "", - "sourceReleaseDate": "", - "severity": "", - "domain": "", - "downloadSize": "", - "relevanceCount": 0, - "author": "jmatlock", - "id": "", - "publisher": "VMware", - "productName": "VMware Tools", - "release": "7.4", - "keywords": "Linux ISVTeam" - }, - { - "path": "Signatures/VMware-VMware Tools-8.0-104.xml", - "name": "VMware-VMware Tools-8.0-104.xml", - "dir": "Signatures", - "type": "Signature", - "title": "VMware Tools", - "source": "", - "sourceReleaseDate": "", - "severity": "", - "domain": "", - "downloadSize": "", - "relevanceCount": 0, - "author": "jmatlock", - "id": "", - "publisher": "VMware", - "productName": "VMware Tools", - "release": "8.0", - "keywords": "Linux ISVTeam" - }, - { - "path": "Signatures/VMware-VMware Tools-8.3-105.xml", - "name": "VMware-VMware Tools-8.3-105.xml", - "dir": "Signatures", - "type": "Signature", - "title": "VMware Tools", - "source": "", - "sourceReleaseDate": "", - "severity": "", - "domain": "", - "downloadSize": "", - "relevanceCount": 0, - "author": "jmatlock", - "id": "", - "publisher": "VMware", - "productName": "VMware Tools", - "release": "8.3", - "keywords": "Linux ISVTeam" - }, - { - "path": "Signatures/VMware-VMware Tools-8.6-106.xml", - "name": "VMware-VMware Tools-8.6-106.xml", - "dir": "Signatures", - "type": "Signature", - "title": "VMware Tools", - "source": "", - "sourceReleaseDate": "", - "severity": "", - "domain": "", - "downloadSize": "", - "relevanceCount": 0, - "author": "jmatlock", - "id": "", - "publisher": "VMware", - "productName": "VMware Tools", - "release": "8.6", - "keywords": "Linux ISVTeam" - }, - { - "path": "Signatures/VMware-VMware Tools-9.0-107.xml", - "name": "VMware-VMware Tools-9.0-107.xml", - "dir": "Signatures", - "type": "Signature", - "title": "VMware Tools", - "source": "", - "sourceReleaseDate": "", - "severity": "", - "domain": "", - "downloadSize": "", - "relevanceCount": 0, - "author": "jmatlock", - "id": "", - "publisher": "VMware", - "productName": "VMware Tools", - "release": "9.0", - "keywords": "Linux ISVTeam" - }, - { - "path": "Signatures/VMware-VMware Tools-9.10-108.xml", - "name": "VMware-VMware Tools-9.10-108.xml", - "dir": "Signatures", - "type": "Signature", - "title": "VMware Tools", - "source": "", - "sourceReleaseDate": "", - "severity": "", - "domain": "", - "downloadSize": "", - "relevanceCount": 0, - "author": "jmatlock", - "id": "", - "publisher": "VMware", - "productName": "VMware Tools", - "release": "9.10", - "keywords": "Linux ISVTeam" - }, - { - "path": "Signatures/VMware-VMware Tools-9.4-109.xml", - "name": "VMware-VMware Tools-9.4-109.xml", - "dir": "Signatures", - "type": "Signature", - "title": "VMware Tools", - "source": "", - "sourceReleaseDate": "", - "severity": "", - "domain": "", - "downloadSize": "", - "relevanceCount": 0, - "author": "jmatlock", - "id": "", - "publisher": "VMware", - "productName": "VMware Tools", - "release": "9.4", - "keywords": "Linux ISVTeam" - }, - { - "path": "Signatures/VMware-VMware vCenter Server 5 Standard for vSphere-5.5-80.xml", - "name": "VMware-VMware vCenter Server 5 Standard for vSphere-5.5-80.xml", - "dir": "Signatures", - "type": "Signature", - "title": "VMware vCenter Server 5 Standard for vSphere", - "source": "", - "sourceReleaseDate": "", - "severity": "", - "domain": "", - "downloadSize": "", - "relevanceCount": 0, - "author": "jmatlock", - "id": "", - "publisher": "VMware", - "productName": "VMware vCenter Server 5 Standard for vSphere", - "release": "5.5", - "keywords": "IBMServicesIndia" - }, - { - "path": "Signatures/VMware-VMware vCenter Site Recovery Manager 5 Enterprise-5.5-81.xml", - "name": "VMware-VMware vCenter Site Recovery Manager 5 Enterprise-5.5-81.xml", - "dir": "Signatures", - "type": "Signature", - "title": "VMware vCenter Site Recovery Manager 5 Enterprise", - "source": "", - "sourceReleaseDate": "", - "severity": "", - "domain": "", - "downloadSize": "", - "relevanceCount": 0, - "author": "jmatlock", - "id": "", - "publisher": "VMware", - "productName": "VMware vCenter Site Recovery Manager 5 Enterprise", - "release": "5.5", - "keywords": "IBMServicesIndia" - }, { "path": "Signatures/Veritas-Veritas Cluster Server-6.0-33.xml", "name": "Veritas-Veritas Cluster Server-6.0-33.xml", @@ -189488,250 +189588,212 @@ "keywords": "Linux ISVTeam" }, { - "path": "Signatures/Wapac-Wapac-5.0-200.xml", - "name": "Wapac-Wapac-5.0-200.xml", - "dir": "Signatures", - "type": "Signature", - "title": "Wapac", - "source": "", - "sourceReleaseDate": "", - "severity": "", - "domain": "", - "downloadSize": "", - "relevanceCount": 0, - "author": "edmontan", - "id": "", - "publisher": "Wapac", - "productName": "Wapac", - "release": "5.0", - "keywords": "" - }, - { - "path": "Signatures/WinPak-WinPak-673.3-202.xml", - "name": "WinPak-WinPak-673.3-202.xml", - "dir": "Signatures", - "type": "Signature", - "title": "WinPak", - "source": "", - "sourceReleaseDate": "", - "severity": "", - "domain": "", - "downloadSize": "", - "relevanceCount": 0, - "author": "edmontan", - "id": "", - "publisher": "WinPak", - "productName": "WinPak", - "release": "673.3", - "keywords": "" - }, - { - "path": "Signatures/eClinicalWorks-eClinicalWorks-10.0-133.xml", - "name": "eClinicalWorks-eClinicalWorks-10.0-133.xml", + "path": "Signatures/VMware-VMware Tools-7.4-103.xml", + "name": "VMware-VMware Tools-7.4-103.xml", "dir": "Signatures", "type": "Signature", - "title": "eClinicalWorks", + "title": "VMware Tools", "source": "", "sourceReleaseDate": "", "severity": "", "domain": "", "downloadSize": "", "relevanceCount": 0, - "author": "edmontan", + "author": "jmatlock", "id": "", - "publisher": "eClinicalWorks", - "productName": "eClinicalWorks", - "release": "10.0", - "keywords": "" + "publisher": "VMware", + "productName": "VMware Tools", + "release": "7.4", + "keywords": "Linux ISVTeam" }, { - "path": "Signatures/npm-axios-0.AFFECTED-1273.xml", - "name": "npm-axios-0.AFFECTED-1273.xml", + "path": "Signatures/VMware-VMware Tools-8.0-104.xml", + "name": "VMware-VMware Tools-8.0-104.xml", "dir": "Signatures", "type": "Signature", - "title": "axios", + "title": "VMware Tools", "source": "", "sourceReleaseDate": "", "severity": "", "domain": "", "downloadSize": "", "relevanceCount": 0, - "author": "AdithyaES", + "author": "jmatlock", "id": "", - "publisher": "npm", - "productName": "axios", - "release": "0.AFFECTED", - "keywords": "npm axios, CVE-2026-25639, Supply Chain, Remote Access Trojan, AFFECTED versions" + "publisher": "VMware", + "productName": "VMware Tools", + "release": "8.0", + "keywords": "Linux ISVTeam" }, { - "path": "Signatures/npm-axios-0.ALL-1272.xml", - "name": "npm-axios-0.ALL-1272.xml", + "path": "Signatures/VMware-VMware Tools-8.3-105.xml", + "name": "VMware-VMware Tools-8.3-105.xml", "dir": "Signatures", "type": "Signature", - "title": "axios", + "title": "VMware Tools", "source": "", "sourceReleaseDate": "", "severity": "", "domain": "", "downloadSize": "", "relevanceCount": 0, - "author": "AdithyaES", + "author": "jmatlock", "id": "", - "publisher": "npm", - "productName": "axios", - "release": "0.ALL", - "keywords": "npm axios, CVE-2026-25639, Supply Chain, Remote Access Trojan, ALL versions" + "publisher": "VMware", + "productName": "VMware Tools", + "release": "8.3", + "keywords": "Linux ISVTeam" }, { - "path": "Signatures/pac4j-pac4j-jwt Affected By CVE-2026-29000-0.AFFECTED-1270.xml", - "name": "pac4j-pac4j-jwt Affected By CVE-2026-29000-0.AFFECTED-1270.xml", + "path": "Signatures/VMware-VMware Tools-8.6-106.xml", + "name": "VMware-VMware Tools-8.6-106.xml", "dir": "Signatures", "type": "Signature", - "title": "pac4j-jwt Affected By CVE-2026-29000", + "title": "VMware Tools", "source": "", "sourceReleaseDate": "", "severity": "", "domain": "", "downloadSize": "", "relevanceCount": 0, - "author": "Neha_Sasidharan", + "author": "jmatlock", "id": "", - "publisher": "pac4j", - "productName": "pac4j-jwt Affected By CVE-2026-29000", - "release": "0.AFFECTED", - "keywords": "pac4j-jwt,CVE-2026-29000" + "publisher": "VMware", + "productName": "VMware Tools", + "release": "8.6", + "keywords": "Linux ISVTeam" }, { - "path": "Signatures/pac4j-pac4j-jwt-0.ALL-1271.xml", - "name": "pac4j-pac4j-jwt-0.ALL-1271.xml", + "path": "Signatures/VMware-VMware Tools-9.0-107.xml", + "name": "VMware-VMware Tools-9.0-107.xml", "dir": "Signatures", "type": "Signature", - "title": "pac4j-jwt", + "title": "VMware Tools", "source": "", "sourceReleaseDate": "", "severity": "", "domain": "", "downloadSize": "", "relevanceCount": 0, - "author": "Neha_Sasidharan", + "author": "jmatlock", "id": "", - "publisher": "pac4j", - "productName": "pac4j-jwt", - "release": "0.ALL", - "keywords": "pac4j-jwt, ALL versions" + "publisher": "VMware", + "productName": "VMware Tools", + "release": "9.0", + "keywords": "Linux ISVTeam" }, { - "path": "Signatures/software_Brotli_ANY-0.any_version.xml", - "name": "software_Brotli_ANY-0.any_version.xml", + "path": "Signatures/VMware-VMware Tools-9.10-108.xml", + "name": "VMware-VMware Tools-9.10-108.xml", "dir": "Signatures", "type": "Signature", - "title": "Brotli ANY", + "title": "VMware Tools", "source": "", "sourceReleaseDate": "", "severity": "", "domain": "", "downloadSize": "", "relevanceCount": 0, - "author": "Jwalker107", + "author": "jmatlock", "id": "", - "publisher": "Google", - "productName": "Brotli ANY", - "release": "0.any_version", - "keywords": "Brotli, libbrotli, inventory, any version" + "publisher": "VMware", + "productName": "VMware Tools", + "release": "9.10", + "keywords": "Linux ISVTeam" }, { - "path": "Signatures/software_Brotli_all_Affected_by_CVE-2026-111497-0.AFFECTED.xml", - "name": "software_Brotli_all_Affected_by_CVE-2026-111497-0.AFFECTED.xml", + "path": "Signatures/VMware-VMware Tools-9.4-109.xml", + "name": "VMware-VMware Tools-9.4-109.xml", "dir": "Signatures", "type": "Signature", - "title": "Brotli all Affected by CVE-2026-111497", + "title": "VMware Tools", "source": "", "sourceReleaseDate": "", "severity": "", "domain": "", "downloadSize": "", "relevanceCount": 0, - "author": "Jwalker107", + "author": "jmatlock", "id": "", - "publisher": "Google", - "productName": "Brotli all Affected by CVE-2026-111497", - "release": "0.AFFECTED", - "keywords": "Brotli, libbrotli, CVE-2026-111497, AFFECTED versions" + "publisher": "VMware", + "productName": "VMware Tools", + "release": "9.4", + "keywords": "Linux ISVTeam" }, { - "path": "Signatures/software_Electron_ANY-0.any_version.xml", - "name": "software_Electron_ANY-0.any_version.xml", + "path": "Signatures/VMware-VMware vCenter Server 5 Standard for vSphere-5.5-80.xml", + "name": "VMware-VMware vCenter Server 5 Standard for vSphere-5.5-80.xml", "dir": "Signatures", "type": "Signature", - "title": "software_Electron_ANY-0.any_version", + "title": "VMware vCenter Server 5 Standard for vSphere", "source": "", "sourceReleaseDate": "", "severity": "", "domain": "", "downloadSize": "", "relevanceCount": 0, - "author": "", + "author": "jmatlock", "id": "", - "publisher": "", - "productName": "", - "release": "", - "keywords": "" + "publisher": "VMware", + "productName": "VMware vCenter Server 5 Standard for vSphere", + "release": "5.5", + "keywords": "IBMServicesIndia" }, { - "path": "Signatures/software_Node.js_ANY-0.any_version.xml", - "name": "software_Node.js_ANY-0.any_version.xml", + "path": "Signatures/VMware-VMware vCenter Site Recovery Manager 5 Enterprise-5.5-81.xml", + "name": "VMware-VMware vCenter Site Recovery Manager 5 Enterprise-5.5-81.xml", "dir": "Signatures", "type": "Signature", - "title": "software_Node.js_ANY-0.any_version", + "title": "VMware vCenter Site Recovery Manager 5 Enterprise", "source": "", "sourceReleaseDate": "", "severity": "", "domain": "", "downloadSize": "", "relevanceCount": 0, - "author": "", + "author": "jmatlock", "id": "", - "publisher": "", - "productName": "", - "release": "", - "keywords": "" + "publisher": "VMware", + "productName": "VMware vCenter Site Recovery Manager 5 Enterprise", + "release": "5.5", + "keywords": "IBMServicesIndia" }, { - "path": "Signatures/software_Node.js_all_Affected_by_CVE-2026-111497-0.AFFECTED.xml", - "name": "software_Node.js_all_Affected_by_CVE-2026-111497-0.AFFECTED.xml", + "path": "Signatures/Wapac-Wapac-5.0-200.xml", + "name": "Wapac-Wapac-5.0-200.xml", "dir": "Signatures", "type": "Signature", - "title": "software_Node.js_all_Affected_by_CVE-2026-111497-0.AFFECTED", + "title": "Wapac", "source": "", "sourceReleaseDate": "", "severity": "", "domain": "", "downloadSize": "", "relevanceCount": 0, - "author": "", + "author": "edmontan", "id": "", - "publisher": "", - "productName": "", - "release": "", + "publisher": "Wapac", + "productName": "Wapac", + "release": "5.0", "keywords": "" }, { - "path": "Signatures/software_PHP_all_Affected_by_CVE-2026-109618_and_CVE-2026-109619-0.AFFECTED.xml", - "name": "software_PHP_all_Affected_by_CVE-2026-109618_and_CVE-2026-109619-0.AFFECTED.xml", + "path": "Signatures/WinPak-WinPak-673.3-202.xml", + "name": "WinPak-WinPak-673.3-202.xml", "dir": "Signatures", "type": "Signature", - "title": "software_PHP_all_Affected_by_CVE-2026-109618_and_CVE-2026-109619-0.AFFECTED", + "title": "WinPak", "source": "", "sourceReleaseDate": "", "severity": "", "domain": "", "downloadSize": "", "relevanceCount": 0, - "author": "", + "author": "edmontan", "id": "", - "publisher": "", - "productName": "", - "release": "", + "publisher": "WinPak", + "productName": "WinPak", + "release": "673.3", "keywords": "" } ] diff --git a/pages/style.css b/pages/style.css index c3a88e532..eaeb915e7 100644 --- a/pages/style.css +++ b/pages/style.css @@ -318,6 +318,39 @@ header .repo-link:hover { text-decoration: underline; } } .placeholder h2 { color: var(--text); font-size: 18px; margin-bottom: 8px; } +/* ---------- Welcome (default view) ---------- */ +.welcome { max-width: 760px; margin: 12px auto 0; } +.welcome h1 { font-size: 24px; color: var(--navy); margin: 0 0 10px; } +.welcome h2 { font-size: 16px; color: var(--text); margin: 28px 0 10px; } +.welcome-lead { color: var(--text); line-height: 1.55; margin: 0 0 18px; } +.welcome-notice { + background: var(--accent-tint); + border: 1px solid var(--accent-tint-border); + border-radius: 8px; + padding: 12px 16px; + font-size: 13.5px; + line-height: 1.55; + color: var(--text); +} +.welcome a { color: var(--accent); } +.welcome-empty { color: var(--muted); font-size: 13.5px; } +.recent-list { list-style: none; margin: 0; padding: 0; } +.recent-item { + display: grid; + grid-template-columns: auto 1fr; + column-gap: 8px; + align-items: baseline; + padding: 10px 14px; + margin-bottom: 8px; + background: var(--card); + border: 1px solid var(--border); + border-radius: 8px; +} +.recent-item .type-dot { width: 9px; height: 9px; border-radius: 50%; align-self: center; } +.recent-title { font-weight: 600; overflow-wrap: anywhere; text-decoration: none; } +.recent-title:hover { text-decoration: underline; } +.recent-meta { grid-column: 2; font-size: 12px; color: var(--muted); } + .error-box { max-width: 640px; margin: 40px auto;