Skip to content

Releases: danoszz/penthera

v2.2.0

Choose a tag to compare

@github-actions github-actions released this 01 Nov 17:26
a9bbcab

Penthera now says what it read, what it fixed and what is left. A run that read nothing never reads as clean.

What changes for you

  • The fix loop says when it isn't done. penthera agent --loop exits 1 while a critical or high finding remains. It used to exit 0 once nothing fixable was left. It also says what it fixed and what is left.
  • Shorter scans. One exec in a six-route file is now one finding that lists the routes, not six criticals.
  • A CSP has to control scripts to count. A policy that names no script sources, or lets any host run them, now gets its own finding.
  • agents catches more: a password in a connection string, and instructions hidden in an HTML comment in a skill.
  • deps no longer stalls on big bundles under Node 22, and it says what it did not check.
  • fix --plan no longer prints a secret sitting beside a change.
  • The dashboard stops grading what it can't vouch for. A site it couldn't read gets no grade, and neither does a project with suppressed critical or high findings.

Upgrading from 2.1

Nine exit codes change, so a CI step can turn red or green. The full table is in the changelog. The ones you're most likely to meet:

  • agent --loop with a critical or high finding left: 0 is now 1.
  • agents with a password in a connection string, such as DATABASE_URL in an MCP server's env: 0 is now 1.
  • URL scan on a shared platform domain such as vercel.app, where the only high finding was the platform's mail record: 1 is now 0.

Two more things can move:

  • Findings from whole-file patterns have new titles, so a --baseline diff or memory shows them as fixed and new, once. With --baseline -q, that one run can exit 1.
  • The live check's score moves to scoreVersion 2. Scores of version 1 aren't comparable on CSP.

Known limits

  • penthera init writes a workflow pinned to v2.1.2, which still has the deps stall. If you see it, move the pin to v2.2.0.
  • The dashboard doesn't say which checks didn't run. The CLI, the brief, MCP and the Action do.
  • A firewall's challenge served with status 200 and no firewall header still gets a grade.
  • Real Windows and Safari are untested.

Try it

npx penthera@2.2.0 --repo .

Full changelog

v2.1.2

Choose a tag to compare

@github-actions github-actions released this 31 Oct 08:52
695d035

What's Changed

  • site: bottom dock, overlapping hero card, calmer footer by @danoszz in #205
  • docs: pin 2.1.1 everywhere users copy a command by @danoszz in #206
  • fix(site): /pro scrolls sideways again by @danoszz in #208
  • site: agent-ready docs, API spec and contact page by @danoszz in #207
  • docs: homepage title, skill grade sentence, trust table by @danoszz in #209
  • fix: named skills scan, verdicts match exit codes, clean --help by @danoszz in #210
  • release: 2.1.2 by @danoszz in #211

Full Changelog: v2.1.1...v2.1.2

Share this release

LinkedIn (566 characters)

Penthera v2.1.2 is out: open-source security for the apps and AI systems you ship.


What's new:
• Unknown API paths answer in JSON: /api and anything under it that is not a route return a 404 with error.code, error.message and error.hint…
• The live check says when to retry: A rate-limited check now carries Retry-After, set to the longest wait among the limits it hit, and the…
• /server.json is on the site: It is the MCP Registry manifest from the repo

npm: https://www.npmjs.com/package/penthera
GitHub: https://github.com/danoszz/penthera/releases/tag/v2.1.2

X / Bluesky (219/280 characters)

Penthera v2.1.2 is out.
• Unknown API paths answer in JSON
• The live check says when to retry
• /server.json is on the site
https://www.npmjs.com/package/penthera
https://github.com/danoszz/penthera/releases/tag/v2.1.2

Drafted from the CHANGELOG. Edit, then post by hand once the npm release is approved.

v2.1.1

Choose a tag to compare

@github-actions github-actions released this 30 Oct 20:36
4dc8ac8

What's Changed

  • E20: the source address stays private; app page adopted by @danoszz in #197
  • Pin 2.1.0 everywhere by @danoszz in #198
  • Register E20: lists stored and hashed by @danoszz in #199
  • research: register E20-R, with runner, classifier and study page by @danoszz in #201
  • fix: hold the MCP scan scope on every hop; no grade for an empty agents audit by @danoszz in #200
  • research: E20-R amendment 1 and deviation 1 by @danoszz in #202
  • fix: no false critical on single-page apps, honest exit 0 by @danoszz in #203
  • release: 2.1.1 by @danoszz in #204

Full Changelog: v2.1.0...v2.1.1

Share this release

LinkedIn (592 characters)

Penthera v2.1.1 is out: open-source security for the apps and AI systems you ship.


What's new:
• scanurl over MCP now stays in scope on every request and redirect hop, with or without --offline: It reaches the target and hosts you listed with --allow-host
• penthera agents gives no grade when it finds no agent config: It used to report A, 100 and Nothing to fix
• E20-R study tooling (research): A runner and analysis for the planned front-door follow-up, tested on loopback only

npm: https://www.npmjs.com/package/penthera
GitHub: https://github.com/danoszz/penthera/releases/tag/v2.1.1

X / Bluesky (250/280 characters)

Penthera v2.1.1 is out.
• scanurl over MCP now stays in scope on every…
• penthera agents gives no grade when it finds no…
• E20-R study tooling (research)
https://www.npmjs.com/package/penthera
https://github.com/danoszz/penthera/releases/tag/v2.1.1

Drafted from the CHANGELOG. Edit, then post by hand once the npm release is approved.

v2.1.0

Choose a tag to compare

@github-actions github-actions released this 29 Oct 14:52
393236c

What's Changed

  • plugin: a small plugin/ folder for the plugin directory; narrow the skill's allowed-tools by @danoszz in #173
  • docs: roadmap track, --giants spec (approved) and E14 pre-registration by @danoszz in #175
  • media: share images of the public benchmarks (cards, scatter charts, paper-style figures, screenshots) by @danoszz in #174
  • docs(research): E15 candidate, indirect prompt injections hidden in what agents read by @danoszz in #179
  • docs(roadmap): Supabase row-level security, KEV/EPSS ranking, Python rules up, wider E13 field by @danoszz in #181
  • site: count checks and installs with cookieless Web Analytics events by @danoszz in #182
  • --giants: run the free scanners you already have, in one report (2.1.0-rc work) by @danoszz in #180
  • chore(deps): Bump actions/download-artifact from 8.0.1 to 8.0.2 in the actions group by @dependabot[bot] in #177
  • chore(deps-dev): Bump the dev-dependencies group with 2 updates by @dependabot[bot] in #176
  • release: 2.1.0-rc.1 (--giants, first-run fixes, benchmark pages, blog) by @danoszz in #184
  • rc.2 batch: the agent brief, triage fixes, /upkeep, roadmap, E14 dev half by @danoszz in #187
  • release: 2.1.0-rc.2 by @danoszz in #188
  • Sprint: Pro as an experiment, Go Pro, /trust, governance, Clerk keys, Mintlify docs, E14 step 2 by @danoszz in #189
  • docs: readable page names on docs.penthera.org by @danoszz in #190
  • Publish the two benchmark posts by @danoszz in #191
  • Specs and pre-registrations: penthera watch, E15 (draft), E17 (registered) by @danoszz in #192
  • feat: scan Client JS bundles for provider keys(#6) by @divya-o in #183
  • Road to 50k batch: E17 result, before-you-publish, agent-setup gaps, PR check by @danoszz in #193
  • Site: the live check becomes the hero (poster is the check) by @danoszz in #194
  • Pre-2.1.0: honest rank intervals, E17 normaliser fix by @danoszz in #195
  • Release 2.1.0: research hub, research standard, E20 study page, footer, performance by @danoszz in #196

New Contributors

Full Changelog: v2.0.0...v2.1.0

Share this release

LinkedIn (552 characters)

Penthera v2.1.0 is out: open-source security for the apps and AI systems you ship.


What's new:
• penthera agents checks five more ways agent config runs code (ADR 0002): New rules, each with a test on a defanged fixture
• The agent config check on every pull request, in one file: docs/examples/github-actions-agents.yml runs npx --yes…
• Provider keys in client JavaScript: A URL scan now reads the scripts the home page loads from its own…

npm: https://www.npmjs.com/package/penthera
GitHub: https://github.com/danoszz/penthera/releases/tag/v2.1.0

X / Bluesky (254/280 characters)

Penthera v2.1.0 is out.
• penthera agents checks five more ways agent…
• The agent config check on every pull request, in…
• Provider keys in client JavaScript
https://www.npmjs.com/package/penthera
https://github.com/danoszz/penthera/releases/tag/v2.1.0

Drafted from the CHANGELOG. Edit, then post by hand once the npm release is approved.

v2.1.0-rc.2

v2.1.0-rc.2 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 27 Oct 23:18
efbe8c8

What's Changed

  • rc.2 batch: the agent brief, triage fixes, /upkeep, roadmap, E14 dev half by @danoszz in #187
  • release: 2.1.0-rc.2 by @danoszz in #188

Full Changelog: v2.1.0-rc.1...v2.1.0-rc.2

Share this release

LinkedIn (592 characters)

Penthera v2.1.0-rc.2 is out: open-source security for the apps and AI systems you ship.


What's new:
• The agent brief: one short reply for your AI assistant: After a scan, assistants used to write their own summary of a long…
• /upkeep is now /pro: Penthera Pro, a security partner for software built with agents: The page proposes rather than sells
• E14 step 1, the dev half: Penthera plus the free tools: A new harness, bench/public/giants.mjs, reruns gitleaks, trufflehog…

npm: https://www.npmjs.com/package/penthera
GitHub: https://github.com/danoszz/penthera/releases/tag/v2.1.0-rc.2

X / Bluesky (272/280 characters)

Penthera v2.1.0-rc.2 is out.
• The agent brief: one short reply for your AI…
• /upkeep is now /pro: Penthera Pro, a security…
• E14 step 1, the dev half: Penthera plus the…
https://www.npmjs.com/package/penthera
https://github.com/danoszz/penthera/releases/tag/v2.1.0-rc.2

Drafted from the CHANGELOG. Edit, then post by hand once the npm release is approved.

v2.1.0-rc.1

v2.1.0-rc.1 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 27 Oct 20:46
1f70835

What's Changed

  • plugin: a small plugin/ folder for the plugin directory; narrow the skill's allowed-tools by @danoszz in #173
  • docs: roadmap track, --giants spec (approved) and E14 pre-registration by @danoszz in #175
  • media: share images of the public benchmarks (cards, scatter charts, paper-style figures, screenshots) by @danoszz in #174
  • docs(research): E15 candidate, indirect prompt injections hidden in what agents read by @danoszz in #179
  • docs(roadmap): Supabase row-level security, KEV/EPSS ranking, Python rules up, wider E13 field by @danoszz in #181
  • site: count checks and installs with cookieless Web Analytics events by @danoszz in #182
  • --giants: run the free scanners you already have, in one report (2.1.0-rc work) by @danoszz in #180
  • chore(deps): Bump actions/download-artifact from 8.0.1 to 8.0.2 in the actions group by @dependabot[bot] in #177
  • chore(deps-dev): Bump the dev-dependencies group with 2 updates by @dependabot[bot] in #176
  • release: 2.1.0-rc.1 (--giants, first-run fixes, benchmark pages, blog) by @danoszz in #184

Full Changelog: v2.0.0...v2.1.0-rc.1

Share this release

LinkedIn (590 characters)

Penthera v2.1.0-rc.1 is out: open-source security for the apps and AI systems you ship.


What's new:
• --giants: run the free scanners you already have, in one report: After its own scan, Penthera runs the tools installed on your…
• The Claude Code plugin now installs from a small plugin/ folder: It holds the Penthera skill, the pinned MCP server, a README, the…
• Share images of the public benchmarks: scripts/media/ now makes the benchmark cards in Instagram square and…

npm: https://www.npmjs.com/package/penthera
GitHub: https://github.com/danoszz/penthera/releases/tag/v2.1.0-rc.1

X / Bluesky (261/280 characters)

Penthera v2.1.0-rc.1 is out.
• --giants: run the free scanners you already…
• The Claude Code plugin now installs from a…
• Share images of the public benchmarks
https://www.npmjs.com/package/penthera
https://github.com/danoszz/penthera/releases/tag/v2.1.0-rc.1

Drafted from the CHANGELOG. Edit, then post by hand once the npm release is approved.

v2.0.0

Choose a tag to compare

@github-actions github-actions released this 25 Oct 09:56
9b6bb2d

What's Changed

  • ci: upgrade test from 1.9.0 by @danoszz in #150
  • chore: root .mcp.json with Penthera's pinned MCP server by @danoszz in #151
  • feat: Gemini CLI extension, and proof up front in the README by @danoszz in #152
  • docs(mcp): ready for the Docker and Cline MCP catalogs by @danoszz in #153
  • docs(readme): a status per part, and verify it yourself by @danoszz in #154
  • fix(deps): IOC hosts match whole hostnames only (false litellm alarm) by @danoszz in #156
  • site: HSTS preload for penthera.org by @danoszz in #157
  • fix(cli): --json to a pipe is no longer truncated at 64 KiB by @danoszz in #158
  • feat(secrets): read key files, PHP, C#, configs and docs (E11b pass 1) by @danoszz in #159
  • feat(secrets): a finding lists every line it hit, plus ADR 0001 (E11b A6, stacked on #159) by @danoszz in #160
  • docs(readme): drop the One real fix section by @danoszz in #161
  • feat(scan): library mode, exported parameters as sources (E11b D1+D2) by @danoszz in #162
  • feat(secrets): password, key-variant and API-key rules (E11b pass 2) by @danoszz in #163
  • feat(deps): malicious-package detection, E11b passes A–D and C1 by @danoszz in #164
  • chore(audit): package budget 900 KB / 2.4 MB (E11b round 2) by @danoszz in #168
  • feat(scan): library mode follows one helper call and this (E11b round 2) by @danoszz in #165
  • feat(secrets): provider and generic API key detection (E11b round 2) by @danoszz in #166
  • feat(deps): PyPI malware and compromised-release detection (E11b round 2) by @danoszz in #167
  • E11: Penthera on public benchmarks (pre-registration, runner, results) by @danoszz in #155
  • Publish the E11b public benchmark results (README, site, docs) by @danoszz in #169
  • release: 2.0.0-rc.1 by @danoszz in #170
  • release: 2.0.0 (with the translation-file fix and #171) by @danoszz in #172

Full Changelog: v1.9.0...v2.0.0

Share this release

LinkedIn (600 characters)

Penthera v2.0.0 is out: open-source security for the apps and AI systems you ship.

Everything in 2.0.0-rc.1 below, plus:

What's new:
• Copied commands always install: While main carries a release candidate, the site and its mirrors pin the latest stable release instead of a…
• Penthera in your coding tool: one page with the setup for Claude Code, Cursor, VS Code, Codex, Gemini CLI, Antigravity, Windsurf, Cline…
• No more password alarms in translation files: A translation's "password"

npm: https://www.npmjs.com/package/penthera
GitHub: https://github.com/danoszz/penthera/releases/tag/v2.0.0

X / Bluesky (229/280 characters)

Penthera v2.0.0 is out.
• Copied commands always install
• Penthera in your coding tool
• No more password alarms in translation files
https://www.npmjs.com/package/penthera
https://github.com/danoszz/penthera/releases/tag/v2.0.0

Drafted from the CHANGELOG. Edit, then post by hand once the npm release is approved.

v2.0.0-rc.1

v2.0.0-rc.1 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 25 Oct 08:11
967302c

What's Changed

  • ci: upgrade test from 1.9.0 by @danoszz in #150
  • chore: root .mcp.json with Penthera's pinned MCP server by @danoszz in #151
  • feat: Gemini CLI extension, and proof up front in the README by @danoszz in #152
  • docs(mcp): ready for the Docker and Cline MCP catalogs by @danoszz in #153
  • docs(readme): a status per part, and verify it yourself by @danoszz in #154
  • fix(deps): IOC hosts match whole hostnames only (false litellm alarm) by @danoszz in #156
  • site: HSTS preload for penthera.org by @danoszz in #157
  • fix(cli): --json to a pipe is no longer truncated at 64 KiB by @danoszz in #158
  • feat(secrets): read key files, PHP, C#, configs and docs (E11b pass 1) by @danoszz in #159
  • feat(secrets): a finding lists every line it hit, plus ADR 0001 (E11b A6, stacked on #159) by @danoszz in #160
  • docs(readme): drop the One real fix section by @danoszz in #161
  • feat(scan): library mode, exported parameters as sources (E11b D1+D2) by @danoszz in #162
  • feat(secrets): password, key-variant and API-key rules (E11b pass 2) by @danoszz in #163
  • feat(deps): malicious-package detection, E11b passes A–D and C1 by @danoszz in #164
  • chore(audit): package budget 900 KB / 2.4 MB (E11b round 2) by @danoszz in #168
  • feat(scan): library mode follows one helper call and this (E11b round 2) by @danoszz in #165
  • feat(secrets): provider and generic API key detection (E11b round 2) by @danoszz in #166
  • feat(deps): PyPI malware and compromised-release detection (E11b round 2) by @danoszz in #167
  • E11: Penthera on public benchmarks (pre-registration, runner, results) by @danoszz in #155
  • Publish the E11b public benchmark results (README, site, docs) by @danoszz in #169
  • release: 2.0.0-rc.1 by @danoszz in #170

Full Changelog: v1.9.0...v2.0.0-rc.1

Share this release

LinkedIn (577 characters)

Penthera v2.0.0-rc.1 is out: open-source security for the apps and AI systems you ship.


What's new:
• Library mode for --repo: the parameters of exported functions count as untrusted: A shell command built from one is reported as command-injection at…
• More shell and eval shapes in every repo scan: exec under any binding of childprocess (cp.exec, childprocess1.exec…
• Gemini CLI extension: gemini extensions install https://github.com/danoszz/penthera adds…

npm: https://www.npmjs.com/package/penthera
GitHub: https://github.com/danoszz/penthera/releases/tag/v2.0.0-rc.1

X / Bluesky (245/280 characters)

Penthera v2.0.0-rc.1 is out.
• Library mode for --repo: the parameters of…
• More shell and eval shapes in every repo scan
• Gemini CLI extension
https://www.npmjs.com/package/penthera
https://github.com/danoszz/penthera/releases/tag/v2.0.0-rc.1

Drafted from the CHANGELOG. Edit, then post by hand once the npm release is approved.

v1.9.0

Choose a tag to compare

@github-actions github-actions released this 23 Oct 20:10
3707f0f

What's Changed

  • feat(deps): Python start-up code in wheels + PyPI IOC pack (litellm 1.107.0) by @danoszz in #90
  • feat(advisories): Node.js security release of 21 Oct 2026 (Brotli RCE, TLS hostname bypasses) by @danoszz in #91
  • feat(tls): flag certificates whose EC private key anyone can compute (eMudhra) by @danoszz in #93
  • feat(headers): report X-Powered-By disclosure by @danoszz in #107
  • feat(templates): Prometheus /metrics, directory listings, stack traces by @danoszz in #108
  • feat(secrets): read Terraform/HCL files; flag hardcoded session secrets by @danoszz in #110
  • feat(repo): code-execution sinks in all server code, taint-lite by @danoszz in #111
  • feat(report): coverage ledger for repo scans by @danoszz in #96
  • fix(scan-repo): Express routes/ folders get route analysis by @danoszz in #104
  • feat(verify): check an AI audit's findings against Penthera's rules by @danoszz in #98
  • feat(report): --audit-seeds writes repo findings as seeds for an AI audit by @danoszz in #99
  • feat(ui): AI mode in the dashboard, with the consent sheet by @danoszz in #109
  • docs(research): GitLab CVE-2026-110264: why a passive version check isn't feasible, and what is by @danoszz in #92
  • feat(site): og:video link-preview reel for penthera.org by @danoszz in #94
  • E10: verify the pilot's misses; re-run after the recall fixes by @danoszz in #112
  • feat(site): benchmark section with the E10 pilot by @danoszz in #115
  • fix(ui): listen for stop signals before announcing readiness by @danoszz in #118
  • feat(ai): opt-in AI mode, a local model proposes and Penthera's rules check by @danoszz in #105
  • feat(advisories): MongoDB end-of-life lines (pack unsigned) by @danoszz in #113
  • feat(site): before and after, from a real scan by @danoszz in #117
  • feat(site): How Penthera compares by @danoszz in #119
  • ci: faster merges (slim PR checks, merge queue, changelog fragments) by @danoszz in #122
  • feat(mcp): penthera mcp, an MCP server on stdio with six read-only tools by @danoszz in #120
  • fix(cli): clear errors for an unknown word, a bare host and Ctrl-D by @danoszz in #123
  • fix(sarif): give every result a location, as GitHub code scanning requires by @danoszz in #125
  • fix(ui): the dashboard's check-then-fix flow, and finding rows with long paths by @danoszz in #126
  • fix(skill): the Claude Code plugin loads, and preflight works from an installed skill by @danoszz in #127
  • fix(site): the paste panels fit a 375px phone by @danoszz in #128
  • fix(scan): stop at a firewall bot challenge instead of reporting its page by @danoszz in #124
  • E10: Penthera on known-vulnerable apps (draft protocol, runner, pilot) by @danoszz in #100
  • fix(scan): the default scan sends no attack payloads to the login by @danoszz in #130
  • site(faq): how to scan your own site behind a CDN firewall by @danoszz in #131
  • fix(hook): fall back to the pinned version through npx when its copy is gone by @danoszz in #132
  • docs(research): end-to-end test of 1.8.1, the dashboard, the site and the agents by @danoszz in #129
  • bench(advisories): labelled set of 253 real-world runtime version strings by @danoszz in #97
  • docs(mcp): penthera mcp docs, client configs, listing text, site section, llms.txt by @danoszz in #121
  • docs: README, ROADMAP and research plan describe what is on main for 1.9 by @danoszz in #133
  • rules: sign the advisories and ioc-pypi-2026 packs by @danoszz in #134
  • release: 1.9.0-rc.1 by @danoszz in #135
  • docs: Penthera and Cloudflare's security-audit skill, compared and researched by @danoszz in #89
  • fix(secrets): repo scan survives vanishing files and stops flagging venvs by @danoszz in #138
  • docs: restructure around five journeys, shorter README, add AGENTS.md by @danoszz in #137
  • site: pin every command to package.json's version by @danoszz in #136
  • site: restructure penthera.org as a story, with files for agents by @danoszz in #139
  • feat(scan): confirmation gate and rate limit for active modes by @danoszz in #95
  • site: current limitations with a roadmap per limit, compact comparison, marker hero by @danoszz in #140
  • site: live security check, clearer story, check-and-fix mode, terms by @danoszz in #142
  • fix(site): check-and-fix report below the header at every width by @danoszz in #143
  • fix(site): content-hashed share image and reel URLs by @danoszz in #144
  • fix(detect): .env.local template, SPA sensitive-file FP, Map/RegExp whitebox FP by @danoszz in #141
  • feat(ui): the dashboard in penthera.org's look, and fresh media by @danoszz in #145
  • site: landing pages, IndexNow, 9:16 card; docs: distribution drafts by @danoszz in #146
  • chore(site): Vercel builds for production only by @danoszz in #147
  • chore: keep the distribution drafts out of the public repo by @danoszz in #148
  • release: 1.9.0 by @danoszz in #149

Full Changelog: v1.8.1...v1.9.0

Share this release

LinkedIn (587 characters)

Penthera v1.9.0 is out: open-source security for the apps and AI systems you ship.

Everything in 1.9.0-rc.1 below, plus:

What's new:
• Active modes ask before they start, and are rate-limited: --deep, --fuzz, --adaptive, --all and --profile deep now need a…
• penthera ui looks and reads like penthera.org: The verdict is the headline, the score is a 10 × 10 grid of pixels…
• Fresh screenshots and recordings: The dashboard screenshots, the 80-second walkthrough, the README…

npm: https://www.npmjs.com/package/penthera
GitHub: https://github.com/danoszz/penthera/releases/tag/v1.9.0

X / Bluesky (248/280 characters)

Penthera v1.9.0 is out.
• Active modes ask before they start, and are…
• penthera ui looks and reads like penthera.org
• Fresh screenshots and recordings
https://www.npmjs.com/package/penthera
https://github.com/danoszz/penthera/releases/tag/v1.9.0

Drafted from the CHANGELOG. Edit, then post by hand once the npm release is approved.

v1.9.0-rc.1

v1.9.0-rc.1 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 22 Oct 16:48
a251904

What's Changed

  • feat(deps): Python start-up code in wheels + PyPI IOC pack (litellm 1.107.0) by @danoszz in #90
  • feat(advisories): Node.js security release of 21 Oct 2026 (Brotli RCE, TLS hostname bypasses) by @danoszz in #91
  • feat(tls): flag certificates whose EC private key anyone can compute (eMudhra) by @danoszz in #93
  • feat(headers): report X-Powered-By disclosure by @danoszz in #107
  • feat(templates): Prometheus /metrics, directory listings, stack traces by @danoszz in #108
  • feat(secrets): read Terraform/HCL files; flag hardcoded session secrets by @danoszz in #110
  • feat(repo): code-execution sinks in all server code, taint-lite by @danoszz in #111
  • feat(report): coverage ledger for repo scans by @danoszz in #96
  • fix(scan-repo): Express routes/ folders get route analysis by @danoszz in #104
  • feat(verify): check an AI audit's findings against Penthera's rules by @danoszz in #98
  • feat(report): --audit-seeds writes repo findings as seeds for an AI audit by @danoszz in #99
  • feat(ui): AI mode in the dashboard, with the consent sheet by @danoszz in #109
  • docs(research): GitLab CVE-2026-110264: why a passive version check isn't feasible, and what is by @danoszz in #92
  • feat(site): og:video link-preview reel for penthera.org by @danoszz in #94
  • E10: verify the pilot's misses; re-run after the recall fixes by @danoszz in #112
  • feat(site): benchmark section with the E10 pilot by @danoszz in #115
  • fix(ui): listen for stop signals before announcing readiness by @danoszz in #118
  • feat(ai): opt-in AI mode, a local model proposes and Penthera's rules check by @danoszz in #105
  • feat(advisories): MongoDB end-of-life lines (pack unsigned) by @danoszz in #113
  • feat(site): before and after, from a real scan by @danoszz in #117
  • feat(site): How Penthera compares by @danoszz in #119
  • ci: faster merges (slim PR checks, merge queue, changelog fragments) by @danoszz in #122
  • feat(mcp): penthera mcp, an MCP server on stdio with six read-only tools by @danoszz in #120
  • fix(cli): clear errors for an unknown word, a bare host and Ctrl-D by @danoszz in #123
  • fix(sarif): give every result a location, as GitHub code scanning requires by @danoszz in #125
  • fix(ui): the dashboard's check-then-fix flow, and finding rows with long paths by @danoszz in #126
  • fix(skill): the Claude Code plugin loads, and preflight works from an installed skill by @danoszz in #127
  • fix(site): the paste panels fit a 375px phone by @danoszz in #128
  • fix(scan): stop at a firewall bot challenge instead of reporting its page by @danoszz in #124
  • E10: Penthera on known-vulnerable apps (draft protocol, runner, pilot) by @danoszz in #100
  • fix(scan): the default scan sends no attack payloads to the login by @danoszz in #130
  • site(faq): how to scan your own site behind a CDN firewall by @danoszz in #131
  • fix(hook): fall back to the pinned version through npx when its copy is gone by @danoszz in #132
  • docs(research): end-to-end test of 1.8.1, the dashboard, the site and the agents by @danoszz in #129
  • bench(advisories): labelled set of 253 real-world runtime version strings by @danoszz in #97
  • docs(mcp): penthera mcp docs, client configs, listing text, site section, llms.txt by @danoszz in #121
  • docs: README, ROADMAP and research plan describe what is on main for 1.9 by @danoszz in #133
  • rules: sign the advisories and ioc-pypi-2026 packs by @danoszz in #134
  • release: 1.9.0-rc.1 by @danoszz in #135

Full Changelog: v1.8.1...v1.9.0-rc.1

Share this release

LinkedIn (596 characters)

Penthera v1.9.0-rc.1 is out: open-source security for the apps and AI systems you ship.

Release candidate for 1.9.0, on npm's next dist-tag (npm install penthera@next).

What's new:
• Coverage ledger: in every --repo report (terminal, Markdown, JSON coverage)
• AI mode, opt-in and experimental: penthera --repo . --ai: A model in your local Ollama reads your code part by part and proposes problems no rule describes
• AI mode in the dashboard: New scan has an AI mode switch, off

npm: https://www.npmjs.com/package/penthera
GitHub: https://github.com/danoszz/penthera/releases/tag/v1.9.0-rc.1

X / Bluesky (219/280 characters)

Penthera v1.9.0-rc.1 is out.
• Coverage ledger
• AI mode, opt-in and experimental: penthera…
• AI mode in the dashboard
https://www.npmjs.com/package/penthera
https://github.com/danoszz/penthera/releases/tag/v1.9.0-rc.1

Drafted from the CHANGELOG. Edit, then post by hand once the npm release is approved.