Methodology
gcdRadar is an observatory, not a security product. It records live security incidents across the web in four lanes, keeps an AI lens on them, counts each once and links to the original reporting. This page is what makes the numbers citable: it says exactly what is counted, how, and where the counts are weak.
What counts
A record is one real-world event or flaw: a bug in software people run, something that happened to a named organisation or service, a malicious artefact with reach, or a research finding. It lands in one of four lanes:
- Patch now: A bug in software people run: exploited in the wild, rated critical with a fix or without, or a researcher's finding that ships without a fix.
- Breaches & attacks: An intrusion, breach, ransomware incident with confirmed impact, account takeover or fraud campaign against a named organisation, service or group of victims.
- Supply chain: A malicious package with reach, a hijacked release, or a compromised build system, signing certificate or extension.
- Research: A demonstrated attack or vulnerability with no known real-world exploitation (severity 1), including papers.
Every record also carries an AI role, and the AI counts on the site (the Trends charts, the weekly briefing, summary.json and the chart images) cover the first two roles only:
- Attack on AI: An AI model, agent or AI-powered product was the thing exploited, abused or leaked.
- AI-enabled attack: Attackers used AI as a meaningful part of a cyberattack against someone else.
- No AI role: AI plays no meaningful role: a general security incident or flaw, carried in the live lanes and the archive and never in the AI counts.
A record with no AI role is published only when it clears the curation bar, so the live lanes stay readable: it names what was affected, says what happened, and is one of the kinds below. AI records keep the inclusion rule above and use the bar as guidance.
- It names the software, service or organisation affected.
- It says what happened or what the flaw allows.
- It is one of: exploitation in the wild, a critical rating with a fix or no fix stated, a confirmed breach or outage, or a malicious artefact with named reach.
- A follow-up to a known event becomes an update on that record, never a new one.
- Surveys, policy, product launches, roundups, opinion and "report finds" pieces are not incidents.
Research papers and lab write-ups that demonstrate a working attack count (severity 1, the Research lane). CVEs and advisories for AI frameworks, model servers, agent tooling and AI products count once exploitation is confirmed (severity 3 or 4). Until then they are disclosed vulnerabilities: kept, shown and downloadable as their own series, but not counted as incidents.
What does not count
- AI harms with no security angle: bias and discrimination, hallucination lawsuits, autonomous-vehicle crashes, job displacement, copyright suits.
- Product launches and vendor feature announcements, including launches of security products.
- Policy, regulation and standards news, surveys and “report finds” pieces, opinion, explainers and weekly roundups, unless they describe a specific incident.
- Papers that only propose defences or benchmarks.
- A follow-up report on an event already on record: it becomes a timeline entry on that record, never a new one.
Lanes and lifecycle
A record is live or closed, judged at every build from the record’s latest dated activity (a timeline entry, a source, or the first report; never an edit). The windows, in days:
- Patch now
- live for 14 days after the latest activity, or 60 days while the fix status is "no patch yet" or "partly patched" ("fix status unknown" does not extend it).
- Breaches & attacks
- live for 14 days after the latest activity; a new report reopens it.
- Supply chain
- live for 14 days after the latest activity, or 60 days while the fix status is "no patch yet" or "partly patched" ("fix status unknown" does not extend it).
- Research
- live for 14 days after the first report; updates do not extend it.
A disclosed vulnerability is always closed. A record the collector closed stays closed; a new report about it reopens it with a timeline entry. The fix status of a patch or supply-chain record is one of:
- ○ No patch yet
- No fixed release exists; mitigate or disable the affected feature.
- ◐ Partly patched
- Some versions or products have a fix, others are still waiting.
- ● Patched
- A fixed release exists for everything affected; update and you are done.
- — No fix needed
- Nothing to patch: a breach, an attack or a campaign rather than a flaw.
- ? Fix status unknown
- No source states whether a fix exists; check the linked advisory.
Records that predate the lanes were placed by fixed rules, in order; a record classified since then carries the lane the classifier gave it:
- Severity 1 (research or proof of concept) → Research.
- An AI-enabled attack (AI was the attacker's tool) → Breaches & attacks.
- A primary category of supply chain or data poisoning → Supply chain.
- A data leak with confirmed exploitation or loss (severity 3 or 4) → Breaches & attacks.
- Everything else, a flaw in an AI system or tool → Patch now.
Every record’s timeline starts with its reports, one entry per source; the collector appends an entry when a later report changes something. The newest entries across the site are in /changes.json.
Tags
The classifier writes short free-text tags; the site folds them into one spelling each (underscores, spaces and dots become dashes, 88 aliases such as “denial-of-service” → “dos” are merged, CVE ids and tags that only echo a category are left out) and files each under a group: attack types, stacks and products, vendors, threat actors and campaigns, sectors and channels, standards and catalogues, other. A tag with two records, or one live record, gets a page, an RSS feed and an llms.txt. 21 tags are dropped as echoes or outcomes; the lists live in the repository at lib/tags.ts.
Taxonomy
An incident has exactly one type, one to four categories (the first is primary), exactly one severity, and one or more targets.
Categories
- Prompt injection
- Untrusted content (web pages, documents, emails, tool output) steers a model into ignoring its instructions.
- Jailbreak
- A user deliberately bypasses a model's safety or policy controls through crafted prompts.
- Agent hijack
- An AI agent is tricked into unauthorized actions: tool misuse, data exfiltration through the agent, or acting against its principal.
- Data leak
- Training data, chat logs, system prompts, model weights or other AI-system data exposed.
- Model theft / extraction
- Weights stolen, or model behaviour replicated through extraction or distillation attacks.
- Supply chain
- Malicious or backdoored models, poisoned packages, unsafe deserialization and other compromised AI dependencies.
- Data poisoning
- Training or retrieval data manipulated to change model behaviour.
- Adversarial evasion
- Inputs crafted to make a model misclassify or miss detections (perturbations, evasion of AI-based defences).
- Infrastructure vulnerability
- CVEs and advisories in AI frameworks, inference servers, MCP servers, AI developer tools and hosting stacks.
- Deepfake fraud
- Synthetic voice, video or images used to impersonate people for fraud, extortion or access.
- AI-generated malware
- Malware written, adapted or operated with meaningful help from AI models.
- AI phishing / social engineering
- Phishing, lures and social engineering produced or personalised at scale with AI.
- AI-assisted intrusion
- Threat actors using AI tooling in reconnaissance, exploitation, lateral movement or operations.
- Other
- In scope, but none of the categories above fits. Reviewed periodically for new categories.
- General security
- No AI component: a general security incident or flaw, placed by its lane. The only category a record with no AI role carries.
Severity
- 1 Research / proof of concept
- Demonstrated by researchers; no known real-world exploitation.
- 2 Disclosed vulnerability
- CVE or vendor advisory, patched or patchable, no confirmed exploitation.
- 3 Confirmed exploitation
- Used against real targets; limited or unclear impact.
- 4 Confirmed real-world loss
- Financial loss, PHI/PII breach, safety impact or regulatory action.
Severity 3 and above is what the site calls real-world. The dashboard’s “real-world only” view excludes research findings and unexploited vulnerabilities.
Targets
Targets are normalised to a short controlled list; a free-text product field sits alongside. OpenAI · Anthropic · Google · Microsoft · Meta · Mistral · xAI · Amazon · Apple · Open-weight model · Framework / tooling · Enterprise deployment · Individuals · Not applicable.
Standards mapping
Every record is also expressed in two public frameworks, so security teams can filter and cite in the vocabulary they already use: the OWASP Top 10 for LLM Applications (2025 edition) and MITRE ATLAS techniques (data release 2026.09). OWASP names the weakness in an LLM application; ATLAS names what the adversary did.
The mapping is derived from the categories, not classified per record. Each category, and where the type changes its meaning a type and category pair, maps to fixed entries in the table below. A record carries the union over its categories. The same type and categories always give the same entries, and changing the table re-maps every record at the next build without re-classifying anything.
The rule for a row: an entry is listed only when the category, as defined above, falls within what the entry itself describes. A category that straddles several entries, or fits none, maps to nothing rather than to a stretch. A record with no entry is not evidence that no entry applies; it means the category alone cannot say which.
By category
- Prompt injection
The same concept in both frameworks, direct and indirect.
- Jailbreak
OWASP treats jailbreaking as a form of prompt injection; ATLAS gives it its own technique.
- Agent hijack
Excessive Agency is the weakness that lets manipulated or malfunctioning model output cause damaging actions, and AI Agent Tool Invocation is the act. Prompt injection is a common trigger but not the only one, so LLM01 is not added.
- Data leak
- atlasnone
Sensitive Information Disclosure is the closest OWASP entry; OWASP describes it mostly through model output, while some records here are storage misconfigurations. No ATLAS technique: the category mixes misconfigured storage, application bugs and prompt-induced leakage, and LLM Data Leakage (AML.T0057) covers only the last.
- Model theft / extraction
The 2025 list folded model theft into Unbounded Consumption (model extraction through the API, functional replication). ATLAS AI Intellectual Property Theft covers stolen and extracted models alike; Extract AI Model (AML.T0024.002) is not added because some records are stolen weights.
- Supply chain
- owaspLLM03 Supply Chain
The same concept in both frameworks: compromised models, packages and other AI dependencies.
- Data poisoning
- atlasnone
LLM04 covers pre-training, fine-tuning and embedding data. ATLAS separates training-data poisoning (AML.T0020) from RAG poisoning (AML.T0070) and the records do not say which, so neither is derived.
- Adversarial evasion
- owaspnone
Inputs crafted to make a model misclassify are Craft Adversarial Data used to Evade AI Model. The OWASP LLM list has no entry for classifier evasion; that lives in OWASP's separate Machine Learning Security Top 10.
- Infrastructure vulnerability
- owaspLLM03 Supply Chainatlasnone
LLM03 names vulnerable third-party packages as its first example, and a CVE in an AI framework, inference server or MCP server is that risk for the teams who deploy it. No ATLAS technique: ATLAS describes what attackers do, and a vulnerability record does not say how the flaw was or would be exploited.
- Deepfake fraud
- owaspnone
Generate Deepfakes, used for Impersonation. No OWASP entry: no LLM application is the vulnerable party.
- AI-generated malware
- owaspnone
ATLAS lists obtaining generative AI to write malware under Obtain Capabilities. No OWASP entry: the AI is the attacker's tool, not the vulnerable system.
- AI phishing / social engineering
- owaspnoneatlasAML.T0052 Phishing
ATLAS Phishing, whose description covers generative AI scaling phishing campaigns. No OWASP entry: the AI is the attacker's tool, not the vulnerable system.
- AI-assisted intrusion
- owaspnoneatlasnone
ATLAS has techniques for single steps (autonomous reconnaissance, autonomous exploit development, generating malicious commands), but the category does not record which step AI helped with, so none is derived. No OWASP entry: the AI is the attacker's tool.
- Other
- owaspnoneatlasnone
No defined scope, so nothing to map.
- General security
- owaspnoneatlasnone
No AI component, so neither AI framework applies.
Where the type changes the answer
- AI-enabled attack + supply chain
- owaspnoneatlasnone
When AI is the weapon, the supply chain attacked is ordinary software (npm and PyPI packages), so the AI supply-chain entries (LLM03, AML.T0010) do not follow.
OWASP entries never derived
No category isolates LLM05:2025 Improper Output Handling, LLM07:2025 System Prompt Leakage, LLM08:2025 Vector and Embedding Weaknesses or LLM09:2025 Misinformation, so no record is tagged with them, though some records involve them: a system prompt exposed in a data leak, or a package name an LLM hallucinated. The explorer’s OWASP filter lists only the entries the table can produce.
Limits
- The mapping inherits every classification error: a record in the wrong category gets the wrong entries.
- Counting by OWASP entry or ATLAS technique is counting by category in another vocabulary. The numbers are no more precise than the categories.
- LLM03 Supply Chain includes every infrastructure vulnerability, following OWASP’s own first example. Most disclosed CVEs therefore carry LLM03; they stay out of incident counts as described under vulnerability records.
- New OWASP editions and ATLAS releases are checked when they appear; a change to the table is recorded in the change log below.
OWASP Top 10 for LLM Applications © OWASP Foundation, CC BY-SA 4.0. MITRE ATLAS © 2021-2026 The MITRE Corporation, Apache 2.0. Entry ids and names are used to reference them; the mapping is gcdRadar’s own and is not endorsed by OWASP or MITRE.
How incidents are found and classified
- Fetch. On its schedule (the Sources page lists it per source) a collector reads RSS and Atom feeds, official APIs and public data exports: security press, vendor and research blogs, Hacker News (via Algolia), GDELT, arXiv cs.CR, NVD, the GitHub Advisory Database, CISA KEV, MITRE ATLAS and the AI Incident Database. Query-driven sources run a maintained list of 25 search phrases.
- Pre-filter. Press and vendor items must mention a security term (or carry a CVE id) before any model sees them; an AI term only marks the item for the AI role. Specialist AI-security blogs and structured databases skip this gate.
- Deduplicate. Links are canonicalised (tracking parameters, AMP variants and the like removed). A link already seen is skipped. A shared CVE id merges records. Titles are compared against recent incidents (token overlap plus edit distance): near-identical headlines merge automatically, reworded ones are put to a language model with the question “same incident?”, and records that carry different CVE ids never merge. Candidates in the same run are grouped the same way.
- Classify. A language model (Gemini, with Groq as fallback) reads the title, the feed description or page summary and any vulnerability metadata, and returns a strict JSON record: in scope or not, type, categories, severity, targets, products, incident date, a two-sentence summary in its own words, tags and a confidence score. The response is validated against the schema; invalid responses are retried once, then queued.
- Decide. In scope with confidence ≥ 0.8: published. In scope below 0.8: held for human review. Out of scope with confidence ≥ 0.8: rejected, with the reason logged for auditing. Out of scope below 0.8: held for review. Nothing is published unclassified; if every model is unavailable, candidates wait for the next run.
Only titles, links, dates and the site’s own summaries are stored. Article text is never kept. Page fetches for metadata respect robots.txt.
Counting rules
- One real-world event is one incident, however many articles cover it. Each article becomes a source on that incident.
- Disclosed vulnerabilities, CVEs and advisories with no confirmed exploitation, are never part of an incident count, chart, tile or the RSS feed. The dashboard shows them as a separate monthly series.
- Every AI count (the trends charts and their drawers, the weekly briefing, summary.json, the embed card and the chart images) counts records whose type is attack on AI or AI-enabled attack. Records with no AI role appear in the live lanes, the archive, the feeds and the tag pages, never in those counts.
- Monthly charts count each incident once, under its primary category.
- The default time axis is the incident date (when it happened, approximate dates allowed). A toggle switches to first reported (earliest source date). Incidents known only to the year are excluded from monthly series but counted in totals.
- The most recent two months are marked provisional: reporting lags events, so the latest bars will rise.
- “This month” compares the current month so far with the whole of last month; “year to date” compares the same calendar span of the previous year.
- The trend line is a least-squares fit over the visible window; the amber line is a three-month centred average.
The home page’s instruments
The home page is built from the same records and statistics files as the rest of the site; every rule below is stated in the code that applies it (lib/panel).
- Level words. A count is quiet below the 25th percentile of its own history, normal up to the 75th, busy up to the 90th and very busy above. New CVEs in 24 hours are judged against the thirteen 24-hour windows before them; CISA KEV additions in 7 days against every 7-day window of the 36 months before. The day’s word is the higher of the two. A week of CVEs is judged against this year’s average week: busy above 1.25 times it, quiet below 0.75.
- CVE windows count back from when NVD was last fetched, so “24 hours” is always a whole 24 hours; the page then brings the counts up to the minute from NVD through our Worker when it can.
- Attack types sort the week’s incidents with keyword rules, first match wins: ransomware and extortion, supply chain, espionage and state actors, phishing/fraud/deepfakes, malware and botnets, attacks on AI models and agents, data breaches and leaks, exploited vulnerabilities, other. Rules misfile some records; a classifier field can replace them later.
- Attack surface sorts CISA KEV entries by technology with ordered keyword rules over vendor, product and name: AI stack, network edge and VPN, remote access and IT tools, operating systems, browsers, enterprise and web apps, OT and IoT, other.
- My stack counts, per product, KEV entries and our exploited records of the last 90 days, once per CVE; a tile opens that list. A chip carries a coloured word only while something is exploited and open: a KEV due date ahead (CISA’s deadline), no full patch, or confirmed impact (severity 4: data, money or service lost). Your picks stay in your browser.
- How AI shows up (on Trends) splits the week’s incidents by AI role. It shows counts, never a share over time: until 19 October 2026 the collector tracked AI incidents only, so an AI share trend would chart the collector, not the world.
- Needs action, the home page’s ledger, has three groups: CISA deadlines within seven days, folded per vendor, product and deadline; our live exploited records without a full patch (a record whose CVEs are all on one of the week’s deadline rows is that row); and the live exploited records that entered the dataset in the last seven days, confirmed impact first. The runway card draws them on one time axis, a week back and a week ahead (to the end of the seventh day, so every deadline it counts is on it): the nearest deadline leads as a countdown to the end of its UTC day, each deadline day is a marker, each of the first six records without a patch is a bar from its first report to now, and each new record is a dot in its 24-hour window (several to a dot in a very busy week, and the card says so). A deadline that has passed since the page was built drops off, and a record without a patch that was folded into it is listed on its own again. A row is tagged “your stack” when one of your stack picks counts its CVE or record. “AI only” shows the AI rows; a deadline counts as AI when an AI record without a full patch names one of its CVEs.
- The week judges each count against its own typical: CVEs published against this year’s average week; critical ones against the daily file’s earlier days; KEV additions against every seven-day window of the last 36 months (the usual range is the middle half); breaches against the median of the previous 36 months. Patch Tuesday is the second Tuesday of the month, from the calendar.
AI vulnerability records
The collector reads CVEs and advisories for an allow-list of LLM and agent-era tooling from NVD, the GitHub Advisory Database and Microsoft’s Security Update Guide: inference servers such as vLLM and Ollama, app builders such as Open WebUI, Langflow and Flowise, frameworks such as LangChain, MCP SDKs, AI coding tools and AI products. They are classified like everything else, under infrastructure vulnerability.
A record with no confirmed exploitation is a disclosed vulnerability. It keeps severity 2 and its own page, appears on Trends as a separate monthly series and in the Archive under “records”, but it is not counted as an incident. Vendors and CVE numbering authorities file advisories in batches, as many as 30 for one product on one day, and more than 99% of these records never see a confirmed attack: counting them made the incident trend a measure of CVE issuance. A CVE becomes an incident, at severity 3, when CISA lists it as exploited or the vendor confirms exploitation.
The exact rule: a record is a disclosed vulnerability when its severity is below 3 and it either comes from the NVD or GitHub advisory backfills or every one of its sources is a vulnerability database. Anything reported by the press or by researchers counts as an incident. Downloads keep every record; the CSV carries a record_kind column and the compact JSON a disclosed flag.
Classic deep-learning libraries (TensorFlow, Keras, PyTorch, ONNX) and generic automation tools (n8n) are deliberately excluded: their memory-safety and web CVEs are about the library, not about an AI system being attacked, and they would swamp the disclosed series (TensorFlow alone had 299). The allow-list has 80 packages across 5 ecosystems plus 39 NVD search terms; it lives in the repository at collector/config/packages.json. Pre-LLM ML platforms (MLflow, NVIDIA Triton Inference Server, Ray), classic cloud ML services (Azure AI Search, Face and Language, Vertex AI Workbench) and general apps whose CVE only touches an AI or MCP feature are excluded for the same reason.
The weekly briefing
This week in AI security is written every Monday at 06:17 UTC for the ISO week (Monday to Sunday, UTC) that has just ended, over the AI records only (attacks on AI and AI-enabled attacks; the general lanes are not in it). It has two parts, made differently:
- The numbers and the list come from the data. A record belongs to the week of its first-reported date. The counts follow the rules above: disclosed CVEs are a separate line, never incidents. The comparison is with the week before, counted from the same records. The busiest family is the one with the most incidents by primary category, the top targets leave out “not applicable”, and the five most notable incidents are ranked by severity, then number of sources. Anyone can recompute all of it from the dataset.
- The narrative is written by a language model. The classifier model (Gemini, with Groq as fallback) is given only the week’s counts and records (titles, summaries, severities, families and targets) and asked for 120 to 180 words that use nothing else. The reply is validated before it is kept: every count in it must be one of the week’s numbers or appear in the records, and it may not call a count unchanged when it changed, contain links, or run too long or short. A reply that fails twice is discarded. If no model is available the briefing is published with the numbers and the list only, and says so.
Limits: the checks catch wrong numbers, not every wrong word, so a narrative can still misstate what a record says; the incident pages and their sources are the reference. A briefing is a snapshot taken on Monday. Records first reported in that week but collected later are not added, so the Trends page, which recounts on every build, can show more for the same week. A week with few incidents is described from few records, and its comparison with the week before can swing widely.
Sources we read, and sources we deliberately do not
The Sources page lists every feed, API and dataset with its licence and live health. Some well-known outlets are not polled: Google News RSS (robots.txt disallows it and the feed licence allows personal readers only), The Register (robots.txt denies all crawlers not explicitly allowed) and Condé Nast titles such as Wired and Ars Technica (their terms forbid automated access and storage). Their articles still appear as sources when another source surfaces them.
Limitations and biases
- English-language press. Every feed is English; incidents covered only in other languages are missed.
- Reporting lag. Incidents are often reported weeks after they happen; recent months undercount.
- Researcher-heavy early years. Before 2023 most records come from research write-ups and case studies, not news.
- Classification error. A language model assigns type, categories and severity. Spot checks and the review queue catch some mistakes, not all; confidence is shown on every record.
- Source coverage. Counts rise when sources are added. Changes are listed below.
- Vulnerability volume. Disclosed vulnerabilities track disclosure activity in a chosen set of packages, not attacks. They are shown as attack surface, apart from the incident counts.
Change log
- 2026-10-18 · methodology published; collector sources and taxonomy frozen for v1.
- 2026-10-18 · GitHub advisories and NVD backfilled from 2016.
- 2026-10-18 · CVE allow-list narrowed to LLM and agent-era tooling; 522 records for dropped packages retired (TensorFlow 299, n8n 135, Keras 22, others 66).
- 2026-10-18 · dashboard redesigned; every count opens its incidents, and category colours follow the seven families.
- 2026-10-18 · CVE merging fixed: a record now joins the incident about its own CVE, not one that merely cites it; 6 misplaced sources moved, 2 duplicate pairs merged, 1 lost CVE restored.
- 2026-10-18 · CVE allow-list narrowed again after an audit of the NVD backfill; 171 records retired (MLflow 80, NVIDIA Triton 65, Ray 10, generic apps and classic cloud ML services 16).
- 2026-10-18 · CVEs and advisories with no confirmed exploitation leave the incident counts and become a separate series, “disclosed vulnerabilities”.
- 2026-10-18 · site renamed GCD AI RADAR; dashboard charts redrawn as a family stream, slope, radar, severity heatmap, target bubbles, flow, calendar and running total. No counting rule changed.
- 2026-10-18 · records mapped to the OWASP Top 10 for LLM Applications (2025) and MITRE ATLAS techniques (release 2026.09), derived from categories; explorer filters and CSV columns added.
- 2026-10-18 · product watch pages: every product family with records gets a page listing its disclosed CVEs, confirmed exploitation and CISA KEV flags (the classifier’s cisa-kev tag). No counting rule changed.
- 2026-10-19 · weekly briefing added, “This week in AI security”: numbers from the data, narrative by a language model; backfilled for 2026-W35 to 2026-W42.
- 2026-10-26 · site renamed GCD RADAR and widened to live security incidents across the web: four lanes (patch now, breaches & attacks, supply chain, research) with a live or closed state, a fix status and a timeline per record; a third AI role, “no AI role”; the live feed as the home page; the chart dashboard at /trends; a tag directory; feed.json, changes.json, llms.txt, per-lane and per-tag feeds and a Markdown brief per record. Every AI count (Trends, summary.json, the embed card, the briefing, the chart images) counts AI records only, so no existing number changed meaning.
- 2026-10-30 · the home page becomes an instrument panel (My stack, Act now, Latest, attack types, attack surface, how AI shows up, the sieve); its charts move to Trends. The CVE counters now count back from when NVD was fetched rather than from the build, so a day’s count is never partial.
- 2026-11-09 · the home page becomes the day sheet: My stack, one ledger of what needs action (deadlines this week, no patch yet, new this week) and the week against a typical one. Attack types, the attack surface and how AI shows up move to Trends; the sieve goes. No counting rule changed.
- 2026-11-09 · the day sheet’s two instruments, Needs action and The week, become framed panels with titles, the ledger leading; the footer rows become one strip, and deadline countdowns read in days and hours instead of ticking. No counting rule changed.
- 2026-11-09 · Needs action gains a key line, NVD links on its CVE ids and small marks (a red square for your stack, an AI tag); each row becomes one line: name, CVE, a plain score and one time (days left to CISA’s deadline, how long without a patch, or the age), with harm confirmed (severity 4) shown by the red severity bars. My stack reads “patch by” and “harm confirmed”. The week shows one comparison per line. The briefing pages are laid out as a front page, the tag directory gets a finder. The Data & API pages, the embed card and every link to the machine-readable files are withdrawn; the files themselves stay, unlisted and marked noindex. No counting rule changed.
- 2026-11-09 · site renamed gcdRadar, now at gcdradar.vercel.app; the old address redirects. No counting rule changed.
- 2026-11-10 · the day sheet is rebuilt around the runway: the nearest patch deadline as a large countdown beside one time axis of the two weeks around now (new records as dots, records without a patch as growing bars, deadline days as markers). My stack becomes a strip of chips with a coloured word (“harm”, “no patch”, “due 10 Nov”); the three lists under the runway show three rows each; the week becomes one strip of six numbers. Nothing pulses; the key line and the source credits in the headers go (every source stays in the footer). “AI only” now refills the card and the lists with AI rows instead of hiding the others. No counting rule changed.
- 2026-11-10 · the day sheet’s text grows a size and the runway card gets a line of its own for every label and bar. The words follow the trade’s: CISA’s deadline is the “KEV due date”, and a record where data, money or service was lost reads “confirmed impact” (it read “harm”). The three lists get a second line with the CVE id and the CVSS score. No counting rule changed.
- 2026-11-11 · four collector rules. A new report is now compared with the week’s records by the title the classifier writes for it, so two outlets’ angles on one event meet even when their headlines share no words. A report with no AI role whose every headline leads with arrests, sentences or a takedown is a follow-up and is not published as a new record. A doubtful out-of-scope item with no AI role is rejected instead of waiting in the review queue. Product lists hold names only, never descriptions such as “deepfake generator” (50 records cleaned). One duplicate pair merged, one police-action record and nine queued items removed.