diff --git a/.github/getTrending.py b/.github/getTrending.py index 8b16d18a58e..8d3b38b067a 100644 --- a/.github/getTrending.py +++ b/.github/getTrending.py @@ -33,6 +33,13 @@ USER_AGENT = "0xMarcio-cve-trending" ROOT = os.path.join(os.path.dirname(os.path.abspath(__file__)), os.pardir) README = os.path.join(ROOT, "README.md") TRENDING = os.path.join(ROOT, "trending.json") +KEV = os.path.join(ROOT, "kev.json") +STATS = os.path.join(ROOT, "docs", "stats.json") +DESC_LIMIT = 110 # a table cell, not a paragraph +FOLDED_AFTER = 2 # years past the newest two are collapsed behind a summary +CVE_ID = re.compile(r"CVE[-_](\d{4})[-_](\d{4,7})", re.IGNORECASE) +SLUG = "0xMarcio/cve" +HERO_URL = f"https://raw.githubusercontent.com/{SLUG}/main/docs/hero.svg" def search_year(year: int, since: str) -> tuple[int, list[dict]]: @@ -178,23 +185,157 @@ def code_pushed(full_names: list[str], token: str) -> dict[str, str]: def time_ago(timestamp: str) -> str: moment = datetime.strptime(timestamp, "%Y-%m-%dT%H:%M:%SZ").replace(tzinfo=timezone.utc) delta = datetime.now(timezone.utc) - moment - for amount, unit in ((delta.days, "day"), (delta.seconds // 3600, "hour"), (delta.seconds // 60, "minute")): + for amount, unit in ((delta.days, "d"), (delta.seconds // 3600, "h"), (delta.seconds // 60, "m")): if amount > 0: - return f"{amount} {unit}{'s' if amount > 1 else ''} ago" + return f"{amount}{unit} ago" return "just now" def cell(value: str) -> str: """Keep repository text on a single markdown table cell.""" - return " ".join(str(value or "").split()).replace("|", "/") + text = " ".join(str(value or "").split()).replace("|", "/") + return text.replace("\u2014", "-").replace("\u2013", "-") + + + +def known_exploited() -> set[str]: + """CVE ids CISA lists as exploited in the wild.""" + try: + with open(KEV, encoding="utf-8") as handle: + return {str(key).upper() for key in json.load(handle)} + except (OSError, ValueError): + return set() + + +def cve_of(repo: dict) -> str: + match = CVE_ID.search(f"{repo.get('name') or ''} {repo.get('description') or ''}") + return f"CVE-{match.group(1)}-{match.group(2)}" if match else "" + + +def shorten(text: str) -> str: + text = cell(text) + if len(text) <= DESC_LIMIT: + return text + return text[:DESC_LIMIT].rsplit(" ", 1)[0] + "\u2026" + + +def figures() -> dict: + """Index totals, written by hero.py from the same count the banner shows.""" + try: + with open(STATS, encoding="utf-8") as handle: + return json.load(handle) + except (OSError, ValueError): + return {} + + +def shields(text: str) -> str: + """Escape one field of a shields badge path. + + The path is split on single hyphens, so a hyphen inside the text has to be + doubled before it is percent-encoded or the badge loses everything after it. + """ + return parse.quote(text.replace("-", "--").replace("_", "__"), safe="") + + +def pill(label: str, value: str, colour: str, link: str) -> str: + """A shields badge whose text is baked in at build time. + + Anything describing the index is fixed here rather than resolved when the + page is viewed: the figure is then exactly the one the banner was drawn + from, and it cannot degrade to "resource not found" when a lookup fails. + """ + return (f"[![{label}](https://img.shields.io/badge/" + f"{shields(label)}-{shields(value)}-{colour}" + f"?style=flat-square&labelColor=161b22)]({link})") + + +def live_pill(path: str, label: str, colour: str, link: str, stamp: str) -> str: + """A shields badge that has to be resolved at view time. + + The stamp is ignored by shields but changes the URL every rebuild, so + GitHub's image proxy fetches a fresh badge instead of replaying a cached one. + """ + return (f"[![{label}](https://img.shields.io/github/{path}" + f"?style=flat-square&label={parse.quote(label)}&color={colour}" + f"&labelColor=161b22&_={stamp})]({link})") + + +def header(stamp: str, synced: str) -> list[str]: + """Everything above the tables. The banner carries a cache-busting stamp + because GitHub proxies README images and would otherwise serve a stale copy + of a file that is redrawn whenever the index moves.""" + counts = figures() + home = "https://cve.codepwn.win/" + badges = [ + pill("last sync", synced, "2f81f7", f"https://github.com/{SLUG}/commits/main"), + live_pill("actions/workflow/status/" + SLUG + "/hot_cves.yml", "sweep", "2f81f7", + f"https://github.com/{SLUG}/actions/workflows/hot_cves.yml", stamp), + ] + if counts.get("with_pocs"): + badges.append(pill("CVEs with PoCs", f"{counts['with_pocs']:,}", "2f81f7", home)) + if counts.get("kev"): + badges.append(pill("known exploited", f"{counts['kev']:,}", "f85149", home)) + badges.append(live_pill("stars/" + SLUG, "stars", "e3b341", + f"https://github.com/{SLUG}/stargazers", stamp)) + return [ + '
', + "", + f'CVE Radar', + "", + " ".join(badges), + "", + "
", + "", + ] + + +FOOTER = """ + +## Data + +Every file is plain JSON on the CDN. No key, no rate limit. + +```bash +curl -s https://cve.codepwn.win/CVE_list.json | jq '.[] | select(.cve=="CVE-2026-75604")' +curl -s https://cve.codepwn.win/kev.json | jq 'keys | length' +curl -s https://cve.codepwn.win/repo_meta.json | jq '."sfewer-r7/CVE-2026-55040"' +curl -s https://cve.codepwn.win/trending_poc.json | jq '{total_cves, with_pocs}' +``` + +| Endpoint | Holds | +| --- | --- | +| [`CVE_list.json`](https://cve.codepwn.win/CVE_list.json) | Every indexed CVE, its description and its PoC links | +| [`kev.json`](https://cve.codepwn.win/kev.json) | CISA known exploited, keyed by CVE id | +| [`repo_meta.json`](https://cve.codepwn.win/repo_meta.json) | Stars and last push date per PoC repository | +| [`trending_poc.json`](https://cve.codepwn.win/trending_poc.json) | Trending repositories plus index totals | +| [`2026/CVE-2026-75604.md`](2026/CVE-2026-75604.md) | Markdown copy of one CVE, one directory per year | + +## Build + +| Job | Cadence | Picks up | +| --- | --- | --- | +| [PoC sweep](.github/workflows/hot_cves.yml) | hourly | New and updated exploit repositories | +| [CVE sync](.github/workflows/sync_cve_pocs.yml) | daily | New CVEs and references from NVD and MITRE | +| [Link audit](.github/workflows/audit_poc_links.yml) | weekly | Repositories that went dead, dropped from the index | + +A repository counts as updated only when a commit touches something other than +paperwork, so a README tweak cannot pass a year-old exploit off as recent. + +## Contributing + +Missing PoC, wrong link, dead repository: open an issue with the CVE id and the +repository URL. +""" def main() -> int: now = datetime.now(timezone.utc) since = (now - timedelta(days=WINDOW_DAYS)).date().isoformat() current_year = now.year - lines = ['

Recently updated Proof-of-Concepts

'] + kev = known_exploited() items: list[dict] = [] + sections: list[list[str]] = [] + flagged = 0 token = github_token() for year in range(current_year, current_year - YEARS, -1): @@ -210,18 +351,23 @@ def main() -> int: repositories.sort(key=lambda repo: repo["_shipped"], reverse=True) repositories = repositories[:PER_YEAR] print(f"CVE-{year}: {total} pushed since {since}, " - f"{stale - len([r for r in repositories])} dropped as paperwork-only") + f"{stale - len(repositories)} dropped as paperwork-only") if not repositories: continue - lines.append(f"\n\n## {year}\n") - lines.append(f"### Latest {len(repositories)} of {total} Repositories\n") - lines.append("| Stars | Updated | Name | Description |") - lines.append("| --- | --- | --- | --- |") + block = [ + f"## {year} · newest {len(repositories)} of {total}", + "", + "| Stars | Updated | Repository | Description |", + "| --- | --- | --- | --- |", + ] for repo in repositories: # The last commit that touched anything but paperwork. pushed_at counts # a README tweak, which had the table claiming a year-old exploit was # updated twenty-one hours ago. pushed = repo["_shipped"] + cve = cve_of(repo) + exploited = cve in kev + flagged += exploited items.append({ "year": year, "stars": int(repo.get("stargazers_count") or 0), @@ -230,18 +376,38 @@ def main() -> int: "desc": cell(repo.get("description")), "pushed": pushed, "created": str(repo.get("created_at") or ""), + "cve": cve, + "kev": exploited, }) - lines.append( - f"| {repo.get('stargazers_count', 0)}⭐ | {time_ago(pushed)} " - f"| [{cell(repo.get('name'))}]({repo.get('html_url')}) | {cell(repo.get('description'))} |" + block.append( + f"| {repo.get('stargazers_count', 0)}\u2b50 | {time_ago(pushed)} " + f"| {'\U0001f525 ' if exploited else ''}[{cell(repo.get('name'))}]({repo.get('html_url')}) " + f"| {shorten(repo.get('description'))} |" ) + sections.append(block) + + stamp = now.strftime("%Y%m%d%H%M") + # No hyphens: they are the field separator in a shields badge path. + synced = now.strftime("%d %b %Y %H:%M UTC") + lines = header(stamp, synced) + lines.append(f"Exploit repositories with a commit in the last {WINDOW_DAYS} days, " + f"newest first. \U0001f525 marks a CVE on the CISA known exploited list.") + lines.append("") + for index, block in enumerate(sections): + if index == FOLDED_AFTER and len(sections) > FOLDED_AFTER: + years = ", ".join(section[0][3:7] for section in sections[FOLDED_AFTER:]) + lines.append(f"
\n{years}\n") + lines.extend(block) + lines.append("") + if len(sections) > FOLDED_AFTER: + lines.append("
") with open(README, "w", encoding="utf-8") as handle: - handle.write("\n".join(lines)) + handle.write("\n".join(lines).rstrip() + FOOTER) with open(TRENDING, "w", encoding="utf-8") as handle: json.dump(items, handle, ensure_ascii=False, indent=1) handle.write("\n") - print(f"Wrote {README} and {TRENDING} ({len(items)} repositories)") + print(f"Wrote {README} and {TRENDING} ({len(items)} repositories, {flagged} known-exploited)") return 0 diff --git a/.github/hero.py b/.github/hero.py new file mode 100644 index 00000000000..a9a8c0d6a85 --- /dev/null +++ b/.github/hero.py @@ -0,0 +1,196 @@ +#!/usr/bin/env python3 +"""Render the CVE Radar hero banner and social card as self-contained SVG. + +Both cards are plain SVG with no external font, image or stylesheet reference: +GitHub proxies README images through camo, which fetches the file on its own and +would drop anything it has to resolve afterwards. +""" + +from __future__ import annotations + +import importlib.util +import json +import os +from urllib import request + +ROOT = os.path.abspath(os.path.join(os.path.dirname(os.path.abspath(__file__)), os.pardir)) +BUILD_SITE = os.path.join(ROOT, "scripts", "build_site.py") +LIVE_STATS = "https://cve.codepwn.win/trending_poc.json" +LIVE_KEV = "https://cve.codepwn.win/kev.json" +HERO = os.path.join(ROOT, "docs", "hero.svg") +SOCIAL = os.path.join(ROOT, "docs", "social-card.svg") +STATS = os.path.join(ROOT, "docs", "stats.json") + +CANVAS = "#0d1117" +SUBTLE = "#161b22" +BORDER = "#30363d" +FG = "#e6edf3" +MUTED = "#8b949e" +NEUTRAL = "#6e7681" +ACCENT = "#2f81f7" +DANGER = "#f85149" +MONO = "ui-monospace,SFMono-Regular,Menlo,Consolas,monospace" + + +def corpus_counts() -> dict | None: + """Count the index the same way the site build does. + + The banner and the site header have to agree, so this reuses build_site's + own parser instead of a second guess at what counts as a PoC. Roughly + fifteen seconds over the whole corpus. + """ + try: + spec = importlib.util.spec_from_file_location("build_site", BUILD_SITE) + build_site = importlib.util.module_from_spec(spec) + spec.loader.exec_module(build_site) + entries, total = build_site.build_cve_list(build_site.load_blacklist()) + except Exception as problem: + print(f"corpus count failed: {problem}") + return None + if not total: + return None + return { + "total_cves": total, + "with_pocs": len(entries), + "kev": len(build_site.build_kev(entries)), + } + + +def live_stats() -> dict | None: + """What the deployed site is currently serving. + + Only reached when the corpus itself will not parse, which on a normal + checkout means something is broken rather than something is missing. + """ + try: + with request.urlopen(LIVE_STATS, timeout=20) as response: + data = json.load(response) + total = int(data.get("total_cves") or 0) + pocs = int(data.get("with_pocs") or 0) + except Exception as problem: + print(f"live stats failed: {problem}") + return None + if not total or not pocs: + return None + try: + # the site's copy, already narrowed to CVEs the index carries, so this + # path reports the same figure the corpus count would + with request.urlopen(LIVE_KEV, timeout=20) as response: + kev = len(json.load(response)) + except Exception: + kev = 0 + return {"total_cves": total, "with_pocs": pocs, "kev": kev} + + +def group(value: int) -> str: + return f"{value:,}" + + +def sweep(cx: float, cy: float, radius: float, opacity: float) -> str: + """Radar rings with a hand rotating over them once every eight seconds.""" + rings = "".join( + f'' + for scale, fade in ((0.35, 0.9), (0.62, 0.65), (0.85, 0.45), (1.0, 0.3)) + ) + return f""" + {rings} + + + + """ + + +def stat_block(x: float, y: float, value: str, label: str, colour: str, size: int) -> str: + return f"""{value} + {label}""" + + +def hero(counts: dict) -> str: + blocks = "".join( + stat_block(x, 96, value, label, colour, 34) + for x, value, label, colour in ( + (620, group(counts["total_cves"]), "CVES INDEXED", FG), + (840, group(counts["with_pocs"]), "WITH POCS", ACCENT), + (1010, group(counts["kev"]), "KNOWN EXPLOITED", DANGER), + ) + ) + return f""" + + + {sweep(1090, 90, 160, 0.3)} + + CVE RADAR + + Public proof-of-concept exploits for every CVE. + cve.codepwn.win + + {blocks} + +""" + + +def social(counts: dict) -> str: + """1280x640 card for the repository social preview and the site og:image.""" + blocks = "".join( + stat_block(x, 430, value, label, colour, 46) + for x, value, label, colour in ( + (96, group(counts["total_cves"]), "CVES INDEXED", FG), + (500, group(counts["with_pocs"]), "WITH POCS", ACCENT), + (880, group(counts["kev"]), "KNOWN EXPLOITED", DANGER), + ) + ) + return f""" + + + {sweep(1000, 300, 220, 0.26)} + + + CVE RADAR + + Public proof-of-concept exploits for every CVE. + + + {blocks} + + cve.codepwn.win + +""" + + +def render(counts: dict) -> None: + """Draw both cards and leave the figures behind for the README build.""" + for path, markup in ((HERO, hero(counts)), (SOCIAL, social(counts))): + with open(path, "w", encoding="utf-8") as handle: + handle.write(markup) + # No timestamp: this file should only change when the figures do, so the + # README build can read the same numbers the banner is drawn from. + with open(STATS, "w", encoding="utf-8") as handle: + json.dump(counts, handle, indent=1, sort_keys=True) + handle.write("\n") + + +def main() -> int: + counts = corpus_counts() or live_stats() + if not counts: + # Drawing zeros would be worse than leaving the previous banner in place. + print("no usable counts, leaving the existing banner alone") + return 1 + render(counts) + print(f"Wrote {HERO}, {SOCIAL} and {STATS}: {group(counts['total_cves'])} CVEs, " + f"{group(counts['with_pocs'])} with PoCs, {group(counts['kev'])} known exploited") + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/.github/workflows/hot_cves.yml b/.github/workflows/hot_cves.yml index 34d40073551..e163e248606 100644 --- a/.github/workflows/hot_cves.yml +++ b/.github/workflows/hot_cves.yml @@ -3,7 +3,7 @@ name: Hot CVEs List on: workflow_dispatch: schedule: - - cron: '0 */6 * * *' + - cron: '7 * * * *' permissions: contents: write @@ -24,6 +24,16 @@ jobs: with: python-version: '3.13' + - name: Redraw the banner and recount the index + run: | + # Counts the corpus with the site build's own parser, so the banner can + # never disagree with the site, and drops the figures in docs/stats.json + # for the README badges to quote. + python3 .github/hero.py + # og:image has to be a raster: Twitter, Slack and Discord all ignore SVG + sudo apt-get install -y --no-install-recommends librsvg2-bin >/dev/null + rsvg-convert -w 1280 -h 640 docs/social-card.svg -o docs/social-card.png + - name: Rebuild the trending PoC table env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} @@ -33,7 +43,7 @@ jobs: run: | git config user.name 'CVE-BOT' git config user.email 'cve@codepwn.win' - git add -- README.md trending.json + git add -- README.md trending.json docs/hero.svg docs/social-card.svg docs/social-card.png docs/stats.json if git diff --cached --quiet; then echo "No changes to commit" exit 0 diff --git a/README.md b/README.md index fdf64761102..403a8e17ac0 100644 --- a/README.md +++ b/README.md @@ -1,90 +1,123 @@ -

Recently updated Proof-of-Concepts

+
+CVE Radar -## 2026 +[![last sync](https://img.shields.io/badge/last%20sync-01%20Sep%202026%2002%3A26%20UTC-2f81f7?style=flat-square&labelColor=161b22)](https://github.com/0xMarcio/cve/commits/main) [![sweep](https://img.shields.io/github/actions/workflow/status/0xMarcio/cve/hot_cves.yml?style=flat-square&label=sweep&color=2f81f7&labelColor=161b22&_=202609010226)](https://github.com/0xMarcio/cve/actions/workflows/hot_cves.yml) [![CVEs with PoCs](https://img.shields.io/badge/CVEs%20with%20PoCs-101%2C809-2f81f7?style=flat-square&labelColor=161b22)](https://cve.codepwn.win/) [![known exploited](https://img.shields.io/badge/known%20exploited-1%2C110-f85149?style=flat-square&labelColor=161b22)](https://cve.codepwn.win/) [![stars](https://img.shields.io/github/stars/0xMarcio/cve?style=flat-square&label=stars&color=e3b341&labelColor=161b22&_=202609010226)](https://github.com/0xMarcio/cve/stargazers) -### Latest 20 of 255 Repositories +
-| Stars | Updated | Name | Description | +Exploit repositories with a commit in the last 90 days, newest first. 🔥 marks a CVE on the CISA known exploited list. + +## 2026 · newest 20 of 253 + +| Stars | Updated | Repository | Description | | --- | --- | --- | --- | -| 80⭐ | 5 days ago | [CVE-2026-75604-poc](https://github.com/rafabd1/CVE-2026-75604-poc) | CVE-2026-75604 Next.js Windows RCE poc | -| 153⭐ | 9 days ago | [CVE-2026-62911](https://github.com/hypnguyen1209/CVE-2026-62911) | POC pre-auth RCE on Exchange | -| 53⭐ | 10 days ago | [CVE-2026-64638-PoC-XSS2Shell-](https://github.com/Boreas37/CVE-2026-64638-PoC-XSS2Shell-) | XSS2Shell (CVE-2026-64638) WordPress pre-auth XSS to RCE chain — PoC exploit + defensive audit tool + nuclei template | -| 37⭐ | 10 days ago | [CVE-2026-18963-Exploit](https://github.com/Snizi/CVE-2026-18963-Exploit) | Exploit for KeyCloak CVE-2026-18963 | -| 406⭐ | 11 days ago | [CVE-2026-9830](https://github.com/opaxial/CVE-2026-9830) | CVE-2026-9830 Proof of Concept | -| 531⭐ | 11 days ago | [cve-2026-41940-PoC](https://github.com/lanicer/cve-2026-41940-PoC) | A cPanel and WHM authentication bypassing tool | -| 824⭐ | 11 days ago | [CVE-2026-24061](https://github.com/jacubes/CVE-2026-24061) | CVE-2026-24061 exploit PoC | -| 60⭐ | 17 days ago | [watchTowr-vs-Citrix-Netscaler-PreAuth-RCE-CVE-2026-8452](https://github.com/watchtowrlabs/watchTowr-vs-Citrix-Netscaler-PreAuth-RCE-CVE-2026-8452) | CVE-2026-8452 PreAuth RCE | -| 24⭐ | 18 days ago | [CVE-2026-66804-CrossDevice-Service-EoP](https://github.com/Rat5ak/CVE-2026-66804-CrossDevice-Service-EoP) | CVE-2026-66804 Windows Cross Device virtual camera EoP - Standard user to SYSTEM | -| 33⭐ | 19 days ago | [CVE-2026-68138](https://github.com/aramosf/CVE-2026-68138) | CVE-2026-68138 Linux qdisc rate-table race local privilege escalation PoC | -| 19⭐ | 24 days ago | [CVE-2026-63077](https://github.com/sfewer-r7/CVE-2026-63077) | Unauthenticated Remote Code Execution in JetBrains TeamCity (CVE-2026-63077) | -| 58⭐ | 25 days ago | [CVE-2026-55040](https://github.com/sfewer-r7/CVE-2026-55040) | Microsoft SharePoint JWT Authentication Bypass (CVE-2026-55040) | -| 53⭐ | 28 days ago | [CVE-2026-64560-Analysis](https://github.com/villager1314/CVE-2026-64560-Analysis) | | -| 17⭐ | 28 days ago | [CVE-2026-60004-POC](https://github.com/imbas007/CVE-2026-60004-POC) | CVE-2026-60004 Pre-Auth RCE Exploit — Gitea <= 1.27.0 diffpatch git hook injection (CVSS 9.8) | -| 81⭐ | 32 days ago | [CVE-2026-43499-Poc-Analysis](https://github.com/Linuxoid-cn/CVE-2026-43499-Poc-Analysis) | Vulnerability analysis and Proof of Concept (PoC) for CVE-2026-43499 affecting Xiaomi devices. For educational and research purposes only. | -| 23⭐ | 32 days ago | [CVE-2026-66066-POC](https://github.com/Zer0SumGam3/CVE-2026-66066-POC) | PoC for CVE-2026-66066 in Ruby on Rails | -| 11⭐ | 34 days ago | [CVE-2026-16232](https://github.com/sfewer-r7/CVE-2026-16232) | A proof-of-concept script to exploit CVE-2026-16232, an authentication bypass via the SmartConsole login process using an application token. | -| 325⭐ | 35 days ago | [CVE-2026-54121](https://github.com/aniqfakhrul/CVE-2026-54121) | Certighost POC | -| 35⭐ | 35 days ago | [CVE-2026-42533](https://github.com/imbas007/CVE-2026-42533) | nginx heap buffer overflow PoC — CVE-2026-42533 pre-auth RCE via two-pass capture clobbering. Crash confirmed on Ubuntu 24.04. | -| 27⭐ | 36 days ago | [CVE-2026-54121-PoC-Exploit](https://github.com/tc4dy/CVE-2026-54121-PoC-Exploit) | 👻 CVE-2026-54121 - Best CertiGhost AD CS Multi-Exploit Framework / Advanced toolkit with rogue DC/LDAP servers, certificate abuse, PKINIT hash extraction. Features: detect safe check, exploit full multi-threaded. 🛡️ CVSS 8.8 High - Use Ethically, Stay Legal. 🔒 | +| 80⭐ | 6d ago | [CVE-2026-75604-poc](https://github.com/rafabd1/CVE-2026-75604-poc) | CVE-2026-75604 Next.js Windows RCE poc | +| 153⭐ | 9d ago | [CVE-2026-62911](https://github.com/hypnguyen1209/CVE-2026-62911) | POC pre-auth RCE on Exchange | +| 53⭐ | 10d ago | [CVE-2026-64638-PoC-XSS2Shell-](https://github.com/Boreas37/CVE-2026-64638-PoC-XSS2Shell-) | XSS2Shell (CVE-2026-64638) WordPress pre-auth XSS to RCE chain - PoC exploit + defensive audit tool + nuclei… | +| 37⭐ | 11d ago | [CVE-2026-18963-Exploit](https://github.com/Snizi/CVE-2026-18963-Exploit) | Exploit for KeyCloak CVE-2026-18963 | +| 406⭐ | 11d ago | [CVE-2026-9830](https://github.com/opaxial/CVE-2026-9830) | CVE-2026-9830 Proof of Concept | +| 531⭐ | 11d ago | 🔥 [cve-2026-41940-PoC](https://github.com/lanicer/cve-2026-41940-PoC) | A cPanel and WHM authentication bypassing tool | +| 824⭐ | 11d ago | 🔥 [CVE-2026-24061](https://github.com/jacubes/CVE-2026-24061) | CVE-2026-24061 exploit PoC | +| 60⭐ | 17d ago | 🔥 [watchTowr-vs-Citrix-Netscaler-PreAuth-RCE-CVE-2026-8452](https://github.com/watchtowrlabs/watchTowr-vs-Citrix-Netscaler-PreAuth-RCE-CVE-2026-8452) | CVE-2026-8452 PreAuth RCE | +| 24⭐ | 18d ago | [CVE-2026-66804-CrossDevice-Service-EoP](https://github.com/Rat5ak/CVE-2026-66804-CrossDevice-Service-EoP) | CVE-2026-66804 Windows Cross Device virtual camera EoP - Standard user to SYSTEM | +| 33⭐ | 19d ago | [CVE-2026-68138](https://github.com/aramosf/CVE-2026-68138) | CVE-2026-68138 Linux qdisc rate-table race local privilege escalation PoC | +| 19⭐ | 24d ago | 🔥 [CVE-2026-63077](https://github.com/sfewer-r7/CVE-2026-63077) | Unauthenticated Remote Code Execution in JetBrains TeamCity (CVE-2026-63077) | +| 58⭐ | 25d ago | 🔥 [CVE-2026-55040](https://github.com/sfewer-r7/CVE-2026-55040) | Microsoft SharePoint JWT Authentication Bypass (CVE-2026-55040) | +| 53⭐ | 28d ago | [CVE-2026-64560-Analysis](https://github.com/villager1314/CVE-2026-64560-Analysis) | | +| 17⭐ | 28d ago | 🔥 [CVE-2026-60004-POC](https://github.com/imbas007/CVE-2026-60004-POC) | CVE-2026-60004 Pre-Auth RCE Exploit - Gitea <= 1.27.0 diffpatch git hook injection (CVSS 9.8) | +| 81⭐ | 32d ago | [CVE-2026-43499-Poc-Analysis](https://github.com/Linuxoid-cn/CVE-2026-43499-Poc-Analysis) | Vulnerability analysis and Proof of Concept (PoC) for CVE-2026-43499 affecting Xiaomi devices. For… | +| 23⭐ | 33d ago | [CVE-2026-66066-POC](https://github.com/Zer0SumGam3/CVE-2026-66066-POC) | PoC for CVE-2026-66066 in Ruby on Rails | +| 11⭐ | 34d ago | 🔥 [CVE-2026-16232](https://github.com/sfewer-r7/CVE-2026-16232) | A proof-of-concept script to exploit CVE-2026-16232, an authentication bypass via the SmartConsole login… | +| 325⭐ | 35d ago | [CVE-2026-54121](https://github.com/aniqfakhrul/CVE-2026-54121) | Certighost POC | +| 35⭐ | 35d ago | [CVE-2026-42533](https://github.com/imbas007/CVE-2026-42533) | nginx heap buffer overflow PoC - CVE-2026-42533 pre-auth RCE via two-pass capture clobbering. Crash confirmed… | +| 27⭐ | 36d ago | [CVE-2026-54121-PoC-Exploit](https://github.com/tc4dy/CVE-2026-54121-PoC-Exploit) | 👻 CVE-2026-54121 - Best CertiGhost AD CS Multi-Exploit Framework / Advanced toolkit with rogue DC/LDAP… | +## 2025 · newest 16 of 24 -## 2025 - -### Latest 16 of 24 Repositories - -| Stars | Updated | Name | Description | +| Stars | Updated | Repository | Description | | --- | --- | --- | --- | -| 6⭐ | 4 days ago | [vivo_iqoo_neo_9_root_research_on_CVE-2025-21479](https://github.com/linux-tools/vivo_iqoo_neo_9_root_research_on_CVE-2025-21479) | | -| 4⭐ | 11 days ago | [cve-2025-21479_iqooneo8](https://github.com/Qingizi7/cve-2025-21479_iqooneo8) | Local root exploit for CVE-2025-21479 (Adreno KGSL) on iQOO Neo8 (SM8475) - physical memory r/w, disables SELinux, spawns root shell | -| 20⭐ | 20 days ago | [CVE-2025-7771](https://github.com/enessakircolak/CVE-2025-7771) | ThrottleStop.sys Arbitrary Physical Memory R/W | -| 6⭐ | 25 days ago | [CVE-2025-8045](https://github.com/kuzeyardabulut/CVE-2025-8045) | Dirty Pagetable Exploit for CVE-2025-8045 | -| 6⭐ | 29 days ago | [SELinux-Permissive-Only-CVE-2025-21479](https://github.com/CamsShaft/SELinux-Permissive-Only-CVE-2025-21479) | This is an SELinux permissive version of the Cheese exploit also known as CVE-2025-21479 which affected the adreno kgsl on many devices including Samsung snapdragon devices | -| 4⭐ | 41 days ago | [CVE-2025-32432](https://github.com/c0gnit00/CVE-2025-32432) | Exploit, POC for CVE-2025-32432, CraftCMS2Shell | -| 4⭐ | 43 days ago | [CVE-2025-64512](https://github.com/matesz44/CVE-2025-64512) | CVE-2025-64512: pdfminer.six pickle deserialization rce; .pickle.gz + pdf generator w/ custom payloads | -| 5⭐ | 45 days ago | [CVE-2025-8110-gogs-poc](https://github.com/Shirouuu/CVE-2025-8110-gogs-poc) | PoC for CVE-2025-8110 - Gogs arbitrary file write via symlink | -| 7⭐ | 54 days ago | [CVE-2025-30065](https://github.com/h3st4k3r/CVE-2025-30065) | This PoC targets CVE-2025-30065, an RCE vulnerability in Apache Parquet via Avro schema deserialization. It abuses the getDefaultValue() mechanism to instantiate arbitrary record types during parsing, enabling code execution when untrusted data is processed without proper controls. | -| 4⭐ | 60 days ago | [CVE-2025-69212-PoC](https://github.com/BridgerAlderson/CVE-2025-69212-PoC) | OpenSTAManager v2.9.8 and earlier versions contain a critical OS Command Injection vulnerability in the P7M (signed XML) file decoding function. | -| 3⭐ | 60 days ago | [CVE-2025-57819](https://github.com/K3ysTr0K3R/CVE-2025-57819) | CVE-2025-57819 - FreePBX Unauthenticated Remote Code Execution (RCE) | -| 4⭐ | 64 days ago | [CVE-2025-69212-PoC](https://github.com/tohib09/CVE-2025-69212-PoC) | | -| 5⭐ | 67 days ago | [CVE-2025-8110](https://github.com/joaquinrrr/CVE-2025-8110) | PoC exploit for CVE-2025-8110 | -| 14⭐ | 80 days ago | [vulnerable-nextjs-14-CVE-2025-29927](https://github.com/lirantal/vulnerable-nextjs-14-CVE-2025-29927) | | -| 13⭐ | 86 days ago | [FreePBX-CVE-2025-57819-RCE](https://github.com/0xEhab/FreePBX-CVE-2025-57819-RCE) | | -| 7⭐ | 86 days ago | [CVE-2025-57819-poc](https://github.com/b4sh2/CVE-2025-57819-poc) | CVE-2025-57819 -> rce | +| 6⭐ | 4d ago | 🔥 [vivo_iqoo_neo_9_root_research_on_CVE-2025-21479](https://github.com/linux-tools/vivo_iqoo_neo_9_root_research_on_CVE-2025-21479) | | +| 4⭐ | 12d ago | 🔥 [cve-2025-21479_iqooneo8](https://github.com/Qingizi7/cve-2025-21479_iqooneo8) | Local root exploit for CVE-2025-21479 (Adreno KGSL) on iQOO Neo8 (SM8475) - physical memory r/w, disables… | +| 20⭐ | 21d ago | [CVE-2025-7771](https://github.com/enessakircolak/CVE-2025-7771) | ThrottleStop.sys Arbitrary Physical Memory R/W | +| 6⭐ | 25d ago | [CVE-2025-8045](https://github.com/kuzeyardabulut/CVE-2025-8045) | Dirty Pagetable Exploit for CVE-2025-8045 | +| 6⭐ | 29d ago | 🔥 [SELinux-Permissive-Only-CVE-2025-21479](https://github.com/CamsShaft/SELinux-Permissive-Only-CVE-2025-21479) | This is an SELinux permissive version of the Cheese exploit also known as CVE-2025-21479 which affected the… | +| 4⭐ | 41d ago | 🔥 [CVE-2025-32432](https://github.com/c0gnit00/CVE-2025-32432) | Exploit, POC for CVE-2025-32432, CraftCMS2Shell | +| 4⭐ | 43d ago | [CVE-2025-64512](https://github.com/matesz44/CVE-2025-64512) | CVE-2025-64512: pdfminer.six pickle deserialization rce; .pickle.gz + pdf generator w/ custom payloads | +| 5⭐ | 45d ago | 🔥 [CVE-2025-8110-gogs-poc](https://github.com/Shirouuu/CVE-2025-8110-gogs-poc) | PoC for CVE-2025-8110 - Gogs arbitrary file write via symlink | +| 7⭐ | 54d ago | [CVE-2025-30065](https://github.com/h3st4k3r/CVE-2025-30065) | This PoC targets CVE-2025-30065, an RCE vulnerability in Apache Parquet via Avro schema deserialization. It… | +| 4⭐ | 60d ago | [CVE-2025-69212-PoC](https://github.com/BridgerAlderson/CVE-2025-69212-PoC) | OpenSTAManager v2.9.8 and earlier versions contain a critical OS Command Injection vulnerability in the P7M… | +| 3⭐ | 60d ago | 🔥 [CVE-2025-57819](https://github.com/K3ysTr0K3R/CVE-2025-57819) | CVE-2025-57819 - FreePBX Unauthenticated Remote Code Execution (RCE) | +| 4⭐ | 65d ago | [CVE-2025-69212-PoC](https://github.com/tohib09/CVE-2025-69212-PoC) | | +| 5⭐ | 67d ago | 🔥 [CVE-2025-8110](https://github.com/joaquinrrr/CVE-2025-8110) | PoC exploit for CVE-2025-8110 | +| 14⭐ | 80d ago | [vulnerable-nextjs-14-CVE-2025-29927](https://github.com/lirantal/vulnerable-nextjs-14-CVE-2025-29927) | | +| 13⭐ | 86d ago | 🔥 [FreePBX-CVE-2025-57819-RCE](https://github.com/0xEhab/FreePBX-CVE-2025-57819-RCE) | | +| 7⭐ | 86d ago | 🔥 [CVE-2025-57819-poc](https://github.com/b4sh2/CVE-2025-57819-poc) | CVE-2025-57819 -> rce | +
+2024, 2023, 2022 -## 2024 +## 2024 · newest 7 of 10 -### Latest 7 of 10 Repositories - -| Stars | Updated | Name | Description | +| Stars | Updated | Repository | Description | | --- | --- | --- | --- | -| 16⭐ | 15 days ago | [CVE-2024-56426](https://github.com/Creeeeger/CVE-2024-56426) | A PoC of the CVE-2024-56426 vulnerability. | -| 3⭐ | 16 days ago | [CVE-2024-56426](https://github.com/xcracker000/CVE-2024-56426) | CVE-2024-56426 Exynos9830 Bootrom Exploit - SM-G985F | -| 3⭐ | 33 days ago | [CVE-2024-36104-PoC](https://github.com/Groppoxx/CVE-2024-36104-PoC) | PoC for CVE-2024-36104 — unauthenticated Groovy RCE in Apache OFBiz (<18.12.14) via /%2e/%2e/ view path traversal to ProgramExport | -| 31⭐ | 64 days ago | [CVE-2024-24919-Bulk-Scanner](https://github.com/ifconfig-me/CVE-2024-24919-Bulk-Scanner) | CVE-2024-24919 [Check Point Security Gateway Information Disclosure] | -| 3⭐ | 71 days ago | [CVE-2024-36991](https://github.com/0xFZin/CVE-2024-36991) | Exploit for CVE-2024-36991 , written by me, enumerates a handfull of things, not all, cause not needed. | -| 7⭐ | 80 days ago | [CVE-2024-27983-nodejs-http2](https://github.com/lirantal/CVE-2024-27983-nodejs-http2) | CVE-2024-27983 this repository builds up a vulnerable HTTP2 Node.js server (`server-nossl.js`) based on CVE-2024-27983 which exploits a continuation flood vulnerability in HTTP2 servers. | -| 4⭐ | 86 days ago | [CVE-2024-1065](https://github.com/kuzeyardabulut/CVE-2024-1065) | Page Cache Exploit for CVE-2024-1065 | +| 16⭐ | 15d ago | [CVE-2024-56426](https://github.com/Creeeeger/CVE-2024-56426) | A PoC of the CVE-2024-56426 vulnerability. | +| 3⭐ | 16d ago | [CVE-2024-56426](https://github.com/xcracker000/CVE-2024-56426) | CVE-2024-56426 Exynos9830 Bootrom Exploit - SM-G985F | +| 3⭐ | 33d ago | [CVE-2024-36104-PoC](https://github.com/Groppoxx/CVE-2024-36104-PoC) | PoC for CVE-2024-36104 - unauthenticated Groovy RCE in Apache OFBiz (<18.12.14) via /%2e/%2e/ view path… | +| 31⭐ | 64d ago | 🔥 [CVE-2024-24919-Bulk-Scanner](https://github.com/ifconfig-me/CVE-2024-24919-Bulk-Scanner) | CVE-2024-24919 [Check Point Security Gateway Information Disclosure] | +| 3⭐ | 71d ago | [CVE-2024-36991](https://github.com/0xFZin/CVE-2024-36991) | Exploit for CVE-2024-36991 , written by me, enumerates a handfull of things, not all, cause not needed. | +| 7⭐ | 80d ago | [CVE-2024-27983-nodejs-http2](https://github.com/lirantal/CVE-2024-27983-nodejs-http2) | CVE-2024-27983 this repository builds up a vulnerable HTTP2 Node.js server (`server-nossl.js`) based on… | +| 4⭐ | 86d ago | [CVE-2024-1065](https://github.com/kuzeyardabulut/CVE-2024-1065) | Page Cache Exploit for CVE-2024-1065 | +## 2023 · newest 5 of 8 -## 2023 - -### Latest 5 of 8 Repositories - -| Stars | Updated | Name | Description | +| Stars | Updated | Repository | Description | | --- | --- | --- | --- | -| 3⭐ | 35 days ago | [CVE-2023-52076-PoC](https://github.com/Groppoxx/CVE-2023-52076-PoC) | PoC exploit for CVE-2023-52076 - zip-slip path traversal in Atril/Xreader (MATE/Cinnamon) enabling arbitrary file write and RCE via crafted EPUB. Authorized security testing only. | -| 5⭐ | 40 days ago | [CVE-2023-36003](https://github.com/johnnygreeme/CVE-2023-36003) | PoC for CVE-2023-36003: Windows Exploit Security Feature Bypass Vulnerability in Windows Defender. | -| 3⭐ | 55 days ago | [cve-2023-4911-exploit-optimized](https://github.com/jarpex/cve-2023-4911-exploit-optimized) | Pure C exploit for CVE-2023-4911 (Looney Tunables) — x86_64 & aarch64 implementations. Multi-processing brute-forcing, dynamic calibration, integrated ELF parser. | -| 15⭐ | 57 days ago | [CVE-2023-32315-EXPLOIT](https://github.com/K3ysTr0K3R/CVE-2023-32315-EXPLOIT) | A PoC exploit for CVE-2023-32315 - Openfire Authentication Bypass | -| 6⭐ | 73 days ago | [CVE-2023-6019](https://github.com/joaquinrrr/CVE-2023-6019) | PoC exploit for CVE-2023-6019 - Remote Code Execution via unauthenticated Ray Dashboard Jobs API. | +| 3⭐ | 35d ago | [CVE-2023-52076-PoC](https://github.com/Groppoxx/CVE-2023-52076-PoC) | PoC exploit for CVE-2023-52076 - zip-slip path traversal in Atril/Xreader (MATE/Cinnamon) enabling arbitrary… | +| 5⭐ | 40d ago | [CVE-2023-36003](https://github.com/johnnygreeme/CVE-2023-36003) | PoC for CVE-2023-36003: Windows Exploit Security Feature Bypass Vulnerability in Windows Defender. | +| 3⭐ | 55d ago | 🔥 [cve-2023-4911-exploit-optimized](https://github.com/jarpex/cve-2023-4911-exploit-optimized) | Pure C exploit for CVE-2023-4911 (Looney Tunables) - x86_64 & aarch64 implementations. Multi-processing… | +| 15⭐ | 57d ago | 🔥 [CVE-2023-32315-EXPLOIT](https://github.com/K3ysTr0K3R/CVE-2023-32315-EXPLOIT) | A PoC exploit for CVE-2023-32315 - Openfire Authentication Bypass | +| 6⭐ | 73d ago | [CVE-2023-6019](https://github.com/joaquinrrr/CVE-2023-6019) | PoC exploit for CVE-2023-6019 - Remote Code Execution via unauthenticated Ray Dashboard Jobs API. | +## 2022 · newest 1 of 11 -## 2022 - -### Latest 1 of 11 Repositories - -| Stars | Updated | Name | Description | +| Stars | Updated | Repository | Description | | --- | --- | --- | --- | -| 6⭐ | 75 days ago | [NimbusPWN-CVE-2022-29799-29800](https://github.com/joshuavanderpoll/NimbusPWN-CVE-2022-29799-29800) | NimbusPwn (CVE-2022-29799/29800) local privilege escalation PoC in C. | \ No newline at end of file +| 6⭐ | 75d ago | [NimbusPWN-CVE-2022-29799-29800](https://github.com/joshuavanderpoll/NimbusPWN-CVE-2022-29799-29800) | NimbusPwn (CVE-2022-29799/29800) local privilege escalation PoC in C. | + +
+ +## Data + +Every file is plain JSON on the CDN. No key, no rate limit. + +```bash +curl -s https://cve.codepwn.win/CVE_list.json | jq '.[] | select(.cve=="CVE-2026-75604")' +curl -s https://cve.codepwn.win/kev.json | jq 'keys | length' +curl -s https://cve.codepwn.win/repo_meta.json | jq '."sfewer-r7/CVE-2026-55040"' +curl -s https://cve.codepwn.win/trending_poc.json | jq '{total_cves, with_pocs}' +``` + +| Endpoint | Holds | +| --- | --- | +| [`CVE_list.json`](https://cve.codepwn.win/CVE_list.json) | Every indexed CVE, its description and its PoC links | +| [`kev.json`](https://cve.codepwn.win/kev.json) | CISA known exploited, keyed by CVE id | +| [`repo_meta.json`](https://cve.codepwn.win/repo_meta.json) | Stars and last push date per PoC repository | +| [`trending_poc.json`](https://cve.codepwn.win/trending_poc.json) | Trending repositories plus index totals | +| [`2026/CVE-2026-75604.md`](2026/CVE-2026-75604.md) | Markdown copy of one CVE, one directory per year | + +## Build + +| Job | Cadence | Picks up | +| --- | --- | --- | +| [PoC sweep](.github/workflows/hot_cves.yml) | hourly | New and updated exploit repositories | +| [CVE sync](.github/workflows/sync_cve_pocs.yml) | daily | New CVEs and references from NVD and MITRE | +| [Link audit](.github/workflows/audit_poc_links.yml) | weekly | Repositories that went dead, dropped from the index | + +A repository counts as updated only when a commit touches something other than +paperwork, so a README tweak cannot pass a year-old exploit off as recent. + +## Contributing + +Missing PoC, wrong link, dead repository: open an issue with the CVE id and the +repository URL. diff --git a/docs/hero.svg b/docs/hero.svg new file mode 100644 index 00000000000..4bcc20386be --- /dev/null +++ b/docs/hero.svg @@ -0,0 +1,31 @@ + + + + + + + + + + + CVE RADAR + + Public proof-of-concept exploits for every CVE. + cve.codepwn.win + + 154,097 + CVES INDEXED101,809 + WITH POCS1,110 + KNOWN EXPLOITED + diff --git a/docs/index.html b/docs/index.html index afe3ab18efa..3dd22786335 100644 --- a/docs/index.html +++ b/docs/index.html @@ -6,6 +6,19 @@ CVE PoC Hub + + + + + + + + + + + + + diff --git a/docs/social-card.png b/docs/social-card.png new file mode 100644 index 00000000000..ce5cfc49bb5 Binary files /dev/null and b/docs/social-card.png differ diff --git a/docs/social-card.svg b/docs/social-card.svg new file mode 100644 index 00000000000..66ca09ad7b3 --- /dev/null +++ b/docs/social-card.svg @@ -0,0 +1,35 @@ + + + + + + + + + + + + CVE RADAR + + Public proof-of-concept exploits for every CVE. + + + 154,097 + CVES INDEXED101,809 + WITH POCS1,110 + KNOWN EXPLOITED + + cve.codepwn.win + diff --git a/docs/stats.json b/docs/stats.json new file mode 100644 index 00000000000..d706002460d --- /dev/null +++ b/docs/stats.json @@ -0,0 +1,5 @@ +{ + "kev": 1110, + "total_cves": 154097, + "with_pocs": 101809 +} diff --git a/trending.json b/trending.json index a4aa1af3081..8f790090abd 100644 --- a/trending.json +++ b/trending.json @@ -6,7 +6,9 @@ "url": "https://github.com/rafabd1/CVE-2026-75604-poc", "desc": "CVE-2026-75604 Next.js Windows RCE poc", "pushed": "2026-08-26T02:23:55Z", - "created": "2026-08-25T19:06:37Z" + "created": "2026-08-25T19:06:37Z", + "cve": "CVE-2026-75604", + "kev": false }, { "year": 2026, @@ -15,16 +17,20 @@ "url": "https://github.com/hypnguyen1209/CVE-2026-62911", "desc": "POC pre-auth RCE on Exchange", "pushed": "2026-08-22T04:49:54Z", - "created": "2026-08-22T04:49:33Z" + "created": "2026-08-22T04:49:33Z", + "cve": "CVE-2026-62911", + "kev": false }, { "year": 2026, "stars": 53, "name": "CVE-2026-64638-PoC-XSS2Shell-", "url": "https://github.com/Boreas37/CVE-2026-64638-PoC-XSS2Shell-", - "desc": "XSS2Shell (CVE-2026-64638) WordPress pre-auth XSS to RCE chain — PoC exploit + defensive audit tool + nuclei template", + "desc": "XSS2Shell (CVE-2026-64638) WordPress pre-auth XSS to RCE chain - PoC exploit + defensive audit tool + nuclei template", "pushed": "2026-08-21T13:31:56Z", - "created": "2026-08-07T17:07:17Z" + "created": "2026-08-07T17:07:17Z", + "cve": "CVE-2026-64638", + "kev": false }, { "year": 2026, @@ -33,7 +39,9 @@ "url": "https://github.com/Snizi/CVE-2026-18963-Exploit", "desc": "Exploit for KeyCloak CVE-2026-18963", "pushed": "2026-08-20T22:18:11Z", - "created": "2026-08-20T22:01:11Z" + "created": "2026-08-20T22:01:11Z", + "cve": "CVE-2026-18963", + "kev": false }, { "year": 2026, @@ -42,7 +50,9 @@ "url": "https://github.com/opaxial/CVE-2026-9830", "desc": "CVE-2026-9830 Proof of Concept", "pushed": "2026-08-20T21:56:15Z", - "created": "2026-08-15T20:57:13Z" + "created": "2026-08-15T20:57:13Z", + "cve": "CVE-2026-9830", + "kev": false }, { "year": 2026, @@ -51,7 +61,9 @@ "url": "https://github.com/lanicer/cve-2026-41940-PoC", "desc": "A cPanel and WHM authentication bypassing tool", "pushed": "2026-08-20T10:15:12Z", - "created": "2026-08-19T12:46:46Z" + "created": "2026-08-19T12:46:46Z", + "cve": "CVE-2026-41940", + "kev": true }, { "year": 2026, @@ -60,7 +72,9 @@ "url": "https://github.com/jacubes/CVE-2026-24061", "desc": "CVE-2026-24061 exploit PoC", "pushed": "2026-08-20T10:06:17Z", - "created": "2026-03-08T11:25:39Z" + "created": "2026-03-08T11:25:39Z", + "cve": "CVE-2026-24061", + "kev": true }, { "year": 2026, @@ -69,7 +83,9 @@ "url": "https://github.com/watchtowrlabs/watchTowr-vs-Citrix-Netscaler-PreAuth-RCE-CVE-2026-8452", "desc": "CVE-2026-8452 PreAuth RCE", "pushed": "2026-08-14T15:01:41Z", - "created": "2026-08-14T15:01:25Z" + "created": "2026-08-14T15:01:25Z", + "cve": "CVE-2026-8452", + "kev": true }, { "year": 2026, @@ -78,7 +94,9 @@ "url": "https://github.com/Rat5ak/CVE-2026-66804-CrossDevice-Service-EoP", "desc": "CVE-2026-66804 Windows Cross Device virtual camera EoP - Standard user to SYSTEM", "pushed": "2026-08-13T03:37:37Z", - "created": "2026-08-13T01:42:43Z" + "created": "2026-08-13T01:42:43Z", + "cve": "CVE-2026-66804", + "kev": false }, { "year": 2026, @@ -87,7 +105,9 @@ "url": "https://github.com/aramosf/CVE-2026-68138", "desc": "CVE-2026-68138 Linux qdisc rate-table race local privilege escalation PoC", "pushed": "2026-08-12T15:30:58Z", - "created": "2026-08-11T22:22:22Z" + "created": "2026-08-11T22:22:22Z", + "cve": "CVE-2026-68138", + "kev": false }, { "year": 2026, @@ -96,7 +116,9 @@ "url": "https://github.com/sfewer-r7/CVE-2026-63077", "desc": "Unauthenticated Remote Code Execution in JetBrains TeamCity (CVE-2026-63077)", "pushed": "2026-08-07T11:52:30Z", - "created": "2026-08-07T08:38:01Z" + "created": "2026-08-07T08:38:01Z", + "cve": "CVE-2026-63077", + "kev": true }, { "year": 2026, @@ -105,7 +127,9 @@ "url": "https://github.com/sfewer-r7/CVE-2026-55040", "desc": "Microsoft SharePoint JWT Authentication Bypass (CVE-2026-55040)", "pushed": "2026-08-06T11:50:17Z", - "created": "2026-08-06T11:46:34Z" + "created": "2026-08-06T11:46:34Z", + "cve": "CVE-2026-55040", + "kev": true }, { "year": 2026, @@ -114,16 +138,20 @@ "url": "https://github.com/villager1314/CVE-2026-64560-Analysis", "desc": "", "pushed": "2026-08-03T12:39:41Z", - "created": "2026-08-03T12:36:27Z" + "created": "2026-08-03T12:36:27Z", + "cve": "CVE-2026-64560", + "kev": false }, { "year": 2026, "stars": 17, "name": "CVE-2026-60004-POC", "url": "https://github.com/imbas007/CVE-2026-60004-POC", - "desc": "CVE-2026-60004 Pre-Auth RCE Exploit — Gitea <= 1.27.0 diffpatch git hook injection (CVSS 9.8)", + "desc": "CVE-2026-60004 Pre-Auth RCE Exploit - Gitea <= 1.27.0 diffpatch git hook injection (CVSS 9.8)", "pushed": "2026-08-03T08:31:36Z", - "created": "2026-08-03T07:48:39Z" + "created": "2026-08-03T07:48:39Z", + "cve": "CVE-2026-60004", + "kev": true }, { "year": 2026, @@ -132,7 +160,9 @@ "url": "https://github.com/Linuxoid-cn/CVE-2026-43499-Poc-Analysis", "desc": "Vulnerability analysis and Proof of Concept (PoC) for CVE-2026-43499 affecting Xiaomi devices. For educational and research purposes only.", "pushed": "2026-07-30T11:28:07Z", - "created": "2026-07-14T14:21:27Z" + "created": "2026-07-14T14:21:27Z", + "cve": "CVE-2026-43499", + "kev": false }, { "year": 2026, @@ -141,7 +171,9 @@ "url": "https://github.com/Zer0SumGam3/CVE-2026-66066-POC", "desc": "PoC for CVE-2026-66066 in Ruby on Rails", "pushed": "2026-07-29T23:00:12Z", - "created": "2026-07-29T21:08:30Z" + "created": "2026-07-29T21:08:30Z", + "cve": "CVE-2026-66066", + "kev": false }, { "year": 2026, @@ -150,7 +182,9 @@ "url": "https://github.com/sfewer-r7/CVE-2026-16232", "desc": "A proof-of-concept script to exploit CVE-2026-16232, an authentication bypass via the SmartConsole login process using an application token.", "pushed": "2026-07-28T16:51:44Z", - "created": "2026-07-28T16:19:31Z" + "created": "2026-07-28T16:19:31Z", + "cve": "CVE-2026-16232", + "kev": true }, { "year": 2026, @@ -159,16 +193,20 @@ "url": "https://github.com/aniqfakhrul/CVE-2026-54121", "desc": "Certighost POC", "pushed": "2026-07-27T19:12:07Z", - "created": "2026-07-23T18:54:34Z" + "created": "2026-07-23T18:54:34Z", + "cve": "CVE-2026-54121", + "kev": false }, { "year": 2026, "stars": 35, "name": "CVE-2026-42533", "url": "https://github.com/imbas007/CVE-2026-42533", - "desc": "nginx heap buffer overflow PoC — CVE-2026-42533 pre-auth RCE via two-pass capture clobbering. Crash confirmed on Ubuntu 24.04.", + "desc": "nginx heap buffer overflow PoC - CVE-2026-42533 pre-auth RCE via two-pass capture clobbering. Crash confirmed on Ubuntu 24.04.", "pushed": "2026-07-27T08:09:52Z", - "created": "2026-07-27T08:03:07Z" + "created": "2026-07-27T08:03:07Z", + "cve": "CVE-2026-42533", + "kev": false }, { "year": 2026, @@ -177,7 +215,9 @@ "url": "https://github.com/tc4dy/CVE-2026-54121-PoC-Exploit", "desc": "👻 CVE-2026-54121 - Best CertiGhost AD CS Multi-Exploit Framework / Advanced toolkit with rogue DC/LDAP servers, certificate abuse, PKINIT hash extraction. Features: detect safe check, exploit full multi-threaded. 🛡️ CVSS 8.8 High - Use Ethically, Stay Legal. 🔒", "pushed": "2026-07-26T12:22:13Z", - "created": "2026-07-25T18:01:04Z" + "created": "2026-07-25T18:01:04Z", + "cve": "CVE-2026-54121", + "kev": false }, { "year": 2025, @@ -186,7 +226,9 @@ "url": "https://github.com/linux-tools/vivo_iqoo_neo_9_root_research_on_CVE-2025-21479", "desc": "", "pushed": "2026-08-27T07:13:42Z", - "created": "2026-08-19T09:39:46Z" + "created": "2026-08-19T09:39:46Z", + "cve": "CVE-2025-21479", + "kev": true }, { "year": 2025, @@ -195,7 +237,9 @@ "url": "https://github.com/Qingizi7/cve-2025-21479_iqooneo8", "desc": "Local root exploit for CVE-2025-21479 (Adreno KGSL) on iQOO Neo8 (SM8475) - physical memory r/w, disables SELinux, spawns root shell", "pushed": "2026-08-20T01:33:10Z", - "created": "2026-08-20T01:13:39Z" + "created": "2026-08-20T01:13:39Z", + "cve": "CVE-2025-21479", + "kev": true }, { "year": 2025, @@ -204,7 +248,9 @@ "url": "https://github.com/enessakircolak/CVE-2025-7771", "desc": "ThrottleStop.sys Arbitrary Physical Memory R/W", "pushed": "2026-08-10T23:15:22Z", - "created": "2026-08-10T23:15:36Z" + "created": "2026-08-10T23:15:36Z", + "cve": "CVE-2025-7771", + "kev": false }, { "year": 2025, @@ -213,7 +259,9 @@ "url": "https://github.com/kuzeyardabulut/CVE-2025-8045", "desc": "Dirty Pagetable Exploit for CVE-2025-8045", "pushed": "2026-08-06T14:58:53Z", - "created": "2026-08-06T13:52:33Z" + "created": "2026-08-06T13:52:33Z", + "cve": "CVE-2025-8045", + "kev": false }, { "year": 2025, @@ -222,7 +270,9 @@ "url": "https://github.com/CamsShaft/SELinux-Permissive-Only-CVE-2025-21479", "desc": "This is an SELinux permissive version of the Cheese exploit also known as CVE-2025-21479 which affected the adreno kgsl on many devices including Samsung snapdragon devices", "pushed": "2026-08-02T06:48:32Z", - "created": "2026-07-28T06:41:38Z" + "created": "2026-07-28T06:41:38Z", + "cve": "CVE-2025-21479", + "kev": true }, { "year": 2025, @@ -231,7 +281,9 @@ "url": "https://github.com/c0gnit00/CVE-2025-32432", "desc": "Exploit, POC for CVE-2025-32432, CraftCMS2Shell", "pushed": "2026-07-21T16:55:33Z", - "created": "2026-07-21T16:52:22Z" + "created": "2026-07-21T16:52:22Z", + "cve": "CVE-2025-32432", + "kev": true }, { "year": 2025, @@ -240,7 +292,9 @@ "url": "https://github.com/matesz44/CVE-2025-64512", "desc": "CVE-2025-64512: pdfminer.six pickle deserialization rce; .pickle.gz + pdf generator w/ custom payloads", "pushed": "2026-07-19T11:00:00Z", - "created": "2026-07-19T10:49:05Z" + "created": "2026-07-19T10:49:05Z", + "cve": "CVE-2025-64512", + "kev": false }, { "year": 2025, @@ -249,7 +303,9 @@ "url": "https://github.com/Shirouuu/CVE-2025-8110-gogs-poc", "desc": "PoC for CVE-2025-8110 - Gogs arbitrary file write via symlink", "pushed": "2026-07-17T13:55:11Z", - "created": "2026-07-17T13:46:16Z" + "created": "2026-07-17T13:46:16Z", + "cve": "CVE-2025-8110", + "kev": true }, { "year": 2025, @@ -258,7 +314,9 @@ "url": "https://github.com/h3st4k3r/CVE-2025-30065", "desc": "This PoC targets CVE-2025-30065, an RCE vulnerability in Apache Parquet via Avro schema deserialization. It abuses the getDefaultValue() mechanism to instantiate arbitrary record types during parsing, enabling code execution when untrusted data is processed without proper controls.", "pushed": "2026-07-08T08:01:25Z", - "created": "2025-04-04T08:45:24Z" + "created": "2025-04-04T08:45:24Z", + "cve": "CVE-2025-30065", + "kev": false }, { "year": 2025, @@ -267,7 +325,9 @@ "url": "https://github.com/BridgerAlderson/CVE-2025-69212-PoC", "desc": "OpenSTAManager v2.9.8 and earlier versions contain a critical OS Command Injection vulnerability in the P7M (signed XML) file decoding function.", "pushed": "2026-07-02T20:41:12Z", - "created": "2026-06-30T13:38:40Z" + "created": "2026-06-30T13:38:40Z", + "cve": "CVE-2025-69212", + "kev": false }, { "year": 2025, @@ -276,7 +336,9 @@ "url": "https://github.com/K3ysTr0K3R/CVE-2025-57819", "desc": "CVE-2025-57819 - FreePBX Unauthenticated Remote Code Execution (RCE)", "pushed": "2026-07-02T19:17:51Z", - "created": "2026-07-02T19:07:36Z" + "created": "2026-07-02T19:07:36Z", + "cve": "CVE-2025-57819", + "kev": true }, { "year": 2025, @@ -285,7 +347,9 @@ "url": "https://github.com/tohib09/CVE-2025-69212-PoC", "desc": "", "pushed": "2026-06-27T23:56:25Z", - "created": "2026-06-27T23:54:57Z" + "created": "2026-06-27T23:54:57Z", + "cve": "CVE-2025-69212", + "kev": false }, { "year": 2025, @@ -294,7 +358,9 @@ "url": "https://github.com/joaquinrrr/CVE-2025-8110", "desc": "PoC exploit for CVE-2025-8110", "pushed": "2026-06-25T16:53:11Z", - "created": "2026-06-25T16:48:18Z" + "created": "2026-06-25T16:48:18Z", + "cve": "CVE-2025-8110", + "kev": true }, { "year": 2025, @@ -303,7 +369,9 @@ "url": "https://github.com/lirantal/vulnerable-nextjs-14-CVE-2025-29927", "desc": "", "pushed": "2026-06-12T09:41:28Z", - "created": "2025-03-23T09:22:35Z" + "created": "2025-03-23T09:22:35Z", + "cve": "CVE-2025-29927", + "kev": false }, { "year": 2025, @@ -312,7 +380,9 @@ "url": "https://github.com/0xEhab/FreePBX-CVE-2025-57819-RCE", "desc": "", "pushed": "2026-06-06T21:35:46Z", - "created": "2026-06-06T20:49:03Z" + "created": "2026-06-06T20:49:03Z", + "cve": "CVE-2025-57819", + "kev": true }, { "year": 2025, @@ -321,7 +391,9 @@ "url": "https://github.com/b4sh2/CVE-2025-57819-poc", "desc": "CVE-2025-57819 -> rce", "pushed": "2026-06-06T20:21:04Z", - "created": "2026-06-06T20:13:34Z" + "created": "2026-06-06T20:13:34Z", + "cve": "CVE-2025-57819", + "kev": true }, { "year": 2024, @@ -330,7 +402,9 @@ "url": "https://github.com/Creeeeger/CVE-2024-56426", "desc": "A PoC of the CVE-2024-56426 vulnerability.", "pushed": "2026-08-16T15:12:56Z", - "created": "2026-04-07T12:02:52Z" + "created": "2026-04-07T12:02:52Z", + "cve": "CVE-2024-56426", + "kev": false }, { "year": 2024, @@ -339,16 +413,20 @@ "url": "https://github.com/xcracker000/CVE-2024-56426", "desc": "CVE-2024-56426 Exynos9830 Bootrom Exploit - SM-G985F", "pushed": "2026-08-15T06:21:41Z", - "created": "2026-08-15T06:12:04Z" + "created": "2026-08-15T06:12:04Z", + "cve": "CVE-2024-56426", + "kev": false }, { "year": 2024, "stars": 3, "name": "CVE-2024-36104-PoC", "url": "https://github.com/Groppoxx/CVE-2024-36104-PoC", - "desc": "PoC for CVE-2024-36104 — unauthenticated Groovy RCE in Apache OFBiz (<18.12.14) via /%2e/%2e/ view path traversal to ProgramExport", + "desc": "PoC for CVE-2024-36104 - unauthenticated Groovy RCE in Apache OFBiz (<18.12.14) via /%2e/%2e/ view path traversal to ProgramExport", "pushed": "2026-07-29T21:15:12Z", - "created": "2026-07-29T19:59:36Z" + "created": "2026-07-29T19:59:36Z", + "cve": "CVE-2024-36104", + "kev": false }, { "year": 2024, @@ -357,7 +435,9 @@ "url": "https://github.com/ifconfig-me/CVE-2024-24919-Bulk-Scanner", "desc": "CVE-2024-24919 [Check Point Security Gateway Information Disclosure]", "pushed": "2026-06-28T05:45:51Z", - "created": "2024-06-01T10:51:14Z" + "created": "2024-06-01T10:51:14Z", + "cve": "CVE-2024-24919", + "kev": true }, { "year": 2024, @@ -366,7 +446,9 @@ "url": "https://github.com/0xFZin/CVE-2024-36991", "desc": "Exploit for CVE-2024-36991 , written by me, enumerates a handfull of things, not all, cause not needed.", "pushed": "2026-06-21T09:24:33Z", - "created": "2025-07-06T03:50:13Z" + "created": "2025-07-06T03:50:13Z", + "cve": "CVE-2024-36991", + "kev": false }, { "year": 2024, @@ -375,7 +457,9 @@ "url": "https://github.com/lirantal/CVE-2024-27983-nodejs-http2", "desc": "CVE-2024-27983 this repository builds up a vulnerable HTTP2 Node.js server (`server-nossl.js`) based on CVE-2024-27983 which exploits a continuation flood vulnerability in HTTP2 servers.", "pushed": "2026-06-12T09:43:05Z", - "created": "2024-04-14T11:34:52Z" + "created": "2024-04-14T11:34:52Z", + "cve": "CVE-2024-27983", + "kev": false }, { "year": 2024, @@ -384,7 +468,9 @@ "url": "https://github.com/kuzeyardabulut/CVE-2024-1065", "desc": "Page Cache Exploit for CVE-2024-1065", "pushed": "2026-06-06T14:00:55Z", - "created": "2026-06-02T10:21:23Z" + "created": "2026-06-02T10:21:23Z", + "cve": "CVE-2024-1065", + "kev": false }, { "year": 2023, @@ -393,7 +479,9 @@ "url": "https://github.com/Groppoxx/CVE-2023-52076-PoC", "desc": "PoC exploit for CVE-2023-52076 - zip-slip path traversal in Atril/Xreader (MATE/Cinnamon) enabling arbitrary file write and RCE via crafted EPUB. Authorized security testing only.", "pushed": "2026-07-27T07:00:54Z", - "created": "2026-07-27T06:51:21Z" + "created": "2026-07-27T06:51:21Z", + "cve": "CVE-2023-52076", + "kev": false }, { "year": 2023, @@ -402,16 +490,20 @@ "url": "https://github.com/johnnygreeme/CVE-2023-36003", "desc": "PoC for CVE-2023-36003: Windows Exploit Security Feature Bypass Vulnerability in Windows Defender.", "pushed": "2026-07-22T19:46:33Z", - "created": "2026-07-22T19:43:34Z" + "created": "2026-07-22T19:43:34Z", + "cve": "CVE-2023-36003", + "kev": false }, { "year": 2023, "stars": 3, "name": "cve-2023-4911-exploit-optimized", "url": "https://github.com/jarpex/cve-2023-4911-exploit-optimized", - "desc": "Pure C exploit for CVE-2023-4911 (Looney Tunables) — x86_64 & aarch64 implementations. Multi-processing brute-forcing, dynamic calibration, integrated ELF parser.", + "desc": "Pure C exploit for CVE-2023-4911 (Looney Tunables) - x86_64 & aarch64 implementations. Multi-processing brute-forcing, dynamic calibration, integrated ELF parser.", "pushed": "2026-07-07T21:02:04Z", - "created": "2026-06-29T21:05:09Z" + "created": "2026-06-29T21:05:09Z", + "cve": "CVE-2023-4911", + "kev": true }, { "year": 2023, @@ -420,7 +512,9 @@ "url": "https://github.com/K3ysTr0K3R/CVE-2023-32315-EXPLOIT", "desc": "A PoC exploit for CVE-2023-32315 - Openfire Authentication Bypass", "pushed": "2026-07-05T17:29:00Z", - "created": "2023-12-15T16:30:51Z" + "created": "2023-12-15T16:30:51Z", + "cve": "CVE-2023-32315", + "kev": true }, { "year": 2023, @@ -429,7 +523,9 @@ "url": "https://github.com/joaquinrrr/CVE-2023-6019", "desc": "PoC exploit for CVE-2023-6019 - Remote Code Execution via unauthenticated Ray Dashboard Jobs API.", "pushed": "2026-06-19T19:09:34Z", - "created": "2026-06-19T19:08:58Z" + "created": "2026-06-19T19:08:58Z", + "cve": "CVE-2023-6019", + "kev": false }, { "year": 2022, @@ -438,6 +534,8 @@ "url": "https://github.com/joshuavanderpoll/NimbusPWN-CVE-2022-29799-29800", "desc": "NimbusPwn (CVE-2022-29799/29800) local privilege escalation PoC in C.", "pushed": "2026-06-17T20:06:02Z", - "created": "2026-06-17T19:44:47Z" + "created": "2026-06-17T19:44:47Z", + "cve": "CVE-2022-29799", + "kev": false } ]