<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
	<title>Dynv blog</title>
	<link>https://dynv.dev/blog/</link>
	<description>Guides and incident playbooks on secrets, supply-chain attacks, CVEs and AI-agent security.</description>
	<language>en</language>
	<lastBuildDate>Sun, 01 Nov 2026 00:00:00 GMT</lastBuildDate>
	<atom:link href="https://dynv.dev/blog/rss.xml" rel="self" type="application/rss+xml" />
	<item>
		<title>AI agent secrets management: what it is and how to do it</title>
		<link>https://dynv.dev/blog/ai-agent-secrets-management/</link>
		<guid isPermaLink="true">https://dynv.dev/blog/ai-agent-secrets-management/</guid>
		<pubDate>Sun, 01 Nov 2026 00:00:00 GMT</pubDate>
		<description>How to give AI coding agents what they need without handing them your secrets: the threat model, a five-level maturity model, a checklist, and what Dynv does.</description>
	</item>
	<item>
		<title>Get alerted when a new CVE hits what you're running in production</title>
		<link>https://dynv.dev/blog/alert-when-a-new-cve-hits-what-you-run/</link>
		<guid isPermaLink="true">https://dynv.dev/blog/alert-when-a-new-cve-hits-what-you-run/</guid>
		<pubDate>Sun, 01 Nov 2026 00:00:00 GMT</pubDate>
		<description>How to be told when a vulnerability affects the packages your running services actually have installed: boot, change and six-hourly checks, count-only alerts, tested.</description>
	</item>
	<item>
		<title>Am I affected by the Next.js and React Server Components CVEs? How to check</title>
		<link>https://dynv.dev/blog/am-i-affected-by-the-nextjs-react-cve/</link>
		<guid isPermaLink="true">https://dynv.dev/blog/am-i-affected-by-the-nextjs-react-cve/</guid>
		<pubDate>Sun, 01 Nov 2026 00:00:00 GMT</pubDate>
		<description>How to tell if your Next.js app is vulnerable to React2Shell and the October 2026 Next.js RCEs: the version ranges, why npm ls react misleads, and what to do.</description>
	</item>
	<item>
		<title>Canary secrets: know the moment a leaked token is used</title>
		<link>https://dynv.dev/blog/canary-secrets-catch-a-leaked-token/</link>
		<guid isPermaLink="true">https://dynv.dev/blog/canary-secrets-catch-a-leaked-token/</guid>
		<pubDate>Sun, 01 Nov 2026 00:00:00 GMT</pubDate>
		<description>Plant a fake token beside your real secrets and get an alert with IP and user agent when anyone uses it. A tested walkthrough, the alert fields, and the limits.</description>
	</item>
	<item>
		<title>Canary URLs on your own domain, and a listener you host</title>
		<link>https://dynv.dev/blog/canary-urls-own-domain-and-listener/</link>
		<guid isPermaLink="true">https://dynv.dev/blog/canary-urls-own-domain-and-listener/</guid>
		<pubDate>Sun, 01 Nov 2026 00:00:00 GMT</pubDate>
		<description>URL canaries alert when anyone requests a fake webhook URL. How to point them at your own domain or a listener you run, what we tested, and what is not usable yet.</description>
	</item>
	<item>
		<title>Can Claude Code read your .env? What the 2026 incidents show</title>
		<link>https://dynv.dev/blog/claude-code-env-leak/</link>
		<guid isPermaLink="true">https://dynv.dev/blog/claude-code-env-leak/</guid>
		<pubDate>Sun, 01 Nov 2026 00:00:00 GMT</pubDate>
		<description>Yes, if the file is in your workspace. What Anthropic documents, a CVE, a leak into npm packages and a poisoned extension, with the checks and fixes that work.</description>
	</item>
	<item>
		<title>50,000 CVEs a year, and under 1% on the exploited list: the numbers</title>
		<link>https://dynv.dev/blog/cve-fatigue-the-numbers/</link>
		<guid isPermaLink="true">https://dynv.dev/blog/cve-fatigue-the-numbers/</guid>
		<pubDate>Sun, 01 Nov 2026 00:00:00 GMT</pubDate>
		<description>NVD published about 50,000 CVEs in 2025, up from 19,000 in 2020, while CISA's exploited list grows slowly. The counts, a script to reproduce them, and their limits.</description>
	</item>
	<item>
		<title>Doppler alternatives in 2026: what to compare, and when Dynv fits</title>
		<link>https://dynv.dev/blog/doppler-alternatives/</link>
		<guid isPermaLink="true">https://dynv.dev/blog/doppler-alternatives/</guid>
		<pubDate>Sun, 01 Nov 2026 00:00:00 GMT</pubDate>
		<description>Doppler alternatives compared on price, encryption model, live updates and agent safety, with prices read from vendor pages and what each does better than Dynv.</description>
	</item>
	<item>
		<title>Fail your CI build on known vulnerable dependencies (no account needed)</title>
		<link>https://dynv.dev/blog/fail-ci-on-vulnerable-dependencies/</link>
		<guid isPermaLink="true">https://dynv.dev/blog/fail-ci-on-vulnerable-dependencies/</guid>
		<pubDate>Sun, 01 Nov 2026 00:00:00 GMT</pubDate>
		<description>Add one step to GitHub Actions or GitLab CI that fails the build on known vulnerable dependencies, with thresholds, JSON gating and what leaves your runner. Tested.</description>
	</item>
	<item>
		<title>After tj-actions: keeping secrets safe in GitHub Actions</title>
		<link>https://dynv.dev/blog/github-actions-secrets-after-tj-actions/</link>
		<guid isPermaLink="true">https://dynv.dev/blog/github-actions-secrets-after-tj-actions/</guid>
		<pubDate>Sun, 01 Nov 2026 00:00:00 GMT</pubDate>
		<description>The tj-actions/changed-files compromise leaked CI secrets from logs. What happened, a tested check for unpinned actions, and layers that limit what a bad action can take.</description>
	</item>
	<item>
		<title>Give Claude Code or Cursor access to your env vars, safely (MCP setup)</title>
		<link>https://dynv.dev/blog/give-claude-code-and-cursor-env-access-safely/</link>
		<guid isPermaLink="true">https://dynv.dev/blog/give-claude-code-and-cursor-env-access-safely/</guid>
		<pubDate>Sun, 01 Nov 2026 00:00:00 GMT</pubDate>
		<description>Connect an AI agent to your environment variables over MCP with a read-only token, masked values and dry runs. Tested setup, then what the agent can and can't do.</description>
	</item>
	<item>
		<title>HCP Vault Secrets is retired: what to move to</title>
		<link>https://dynv.dev/blog/hcp-vault-secrets-alternatives/</link>
		<guid isPermaLink="true">https://dynv.dev/blog/hcp-vault-secrets-alternatives/</guid>
		<pubDate>Sun, 01 Nov 2026 00:00:00 GMT</pubDate>
		<description>HashiCorp sunset HCP Vault Secrets. What its own notice says, the options it names, other routes to consider, and how to migrate without losing values.</description>
	</item>
	<item>
		<title>How to respond to a critical CVE when you have no security team</title>
		<link>https://dynv.dev/blog/how-to-respond-to-a-critical-cve/</link>
		<guid isPermaLink="true">https://dynv.dev/blog/how-to-respond-to-a-critical-cve/</guid>
		<pubDate>Sun, 01 Nov 2026 00:00:00 GMT</pubDate>
		<description>A five-question decision tree and time boxes for a small team: is it exploited, do you run it, is it reachable, can you fix it, and how to prove the fix landed.</description>
	</item>
	<item>
		<title>I leaked an API key: the 15-minute response playbook</title>
		<link>https://dynv.dev/blog/i-leaked-an-api-key-what-now/</link>
		<guid isPermaLink="true">https://dynv.dev/blog/i-leaked-an-api-key-what-now/</guid>
		<pubDate>Sun, 01 Nov 2026 00:00:00 GMT</pubDate>
		<description>A leaked API key is usable within minutes. The order that works: replace the key, kill the old one, check for abuse, find every copy, then clean Git history.</description>
	</item>
	<item>
		<title>MCP security checklist: eight ways it goes wrong, and how to check yours</title>
		<link>https://dynv.dev/blog/mcp-security-checklist/</link>
		<guid isPermaLink="true">https://dynv.dev/blog/mcp-security-checklist/</guid>
		<pubDate>Sun, 01 Nov 2026 00:00:00 GMT</pubDate>
		<description>A practical MCP security checklist built on real incidents: secrets in configs, unpinned or malicious servers, CVEs and over-broad access, plus a browser config checker.</description>
	</item>
	<item>
		<title>An npm package you use was compromised: the first-hour playbook</title>
		<link>https://dynv.dev/blog/npm-supply-chain-attack-playbook/</link>
		<guid isPermaLink="true">https://dynv.dev/blog/npm-supply-chain-attack-playbook/</guid>
		<pubDate>Sun, 01 Nov 2026 00:00:00 GMT</pubDate>
		<description>What to do in the first hour after a malicious npm release like Shai-Hulud: check exposure, contain, rotate in the right order, and shrink the next blast radius.</description>
	</item>
	<item>
		<title>You pasted an API key into ChatGPT or Claude: what now?</title>
		<link>https://dynv.dev/blog/pasted-an-api-key-into-an-ai-chat/</link>
		<guid isPermaLink="true">https://dynv.dev/blog/pasted-an-api-key-into-an-ai-chat/</guid>
		<pubDate>Sun, 01 Nov 2026 00:00:00 GMT</pubDate>
		<description>If a key went into an AI chat, treat it as exposed. Replace it, check usage, then understand retention: what two providers document, what we could not verify.</description>
	</item>
	<item>
		<title>You committed .env to Git: remove it, then do the part everyone skips</title>
		<link>https://dynv.dev/blog/remove-env-file-from-git-history/</link>
		<guid isPermaLink="true">https://dynv.dev/blog/remove-env-file-from-git-history/</guid>
		<pubDate>Sun, 01 Nov 2026 00:00:00 GMT</pubDate>
		<description>Remove a committed .env from Git history with git filter-repo, then do what actually makes it safe: rotate the keys, clean the copies and stop it happening again. Tested.</description>
	</item>
	<item>
		<title>Rotate a database password with zero downtime in Node</title>
		<link>https://dynv.dev/blog/rotate-database-password-zero-downtime-node/</link>
		<guid isPermaLink="true">https://dynv.dev/blog/rotate-database-password-zero-downtime-node/</guid>
		<pubDate>Sun, 01 Nov 2026 00:00:00 GMT</pubDate>
		<description>Changing a database password first breaks new connections. A tested two-role pattern with a live pool swap shows 0 failed queries, against 46 for the naive order.</description>
	</item>
	<item>
		<title>Rotate a secret everywhere without downtime</title>
		<link>https://dynv.dev/blog/rotate-secrets-everywhere-without-downtime/</link>
		<guid isPermaLink="true">https://dynv.dev/blog/rotate-secrets-everywhere-without-downtime/</guid>
		<pubDate>Sun, 01 Nov 2026 00:00:00 GMT</pubDate>
		<description>Rotating a secret is easy; finding every copy and restarting in order is not. A tested walkthrough of previewed rotation, same-everywhere versus unique, and sessions.</description>
	</item>
	<item>
		<title>The .env file is over: what replaces it, and how to migrate in ten minutes</title>
		<link>https://dynv.dev/blog/the-env-file-is-over/</link>
		<guid isPermaLink="true">https://dynv.dev/blog/the-env-file-is-over/</guid>
		<pubDate>Sun, 01 Nov 2026 00:00:00 GMT</pubDate>
		<description>A .env file leaks through Git, AI agents, build logs and laptops. The options that replace it, a tested ten-minute migration, and what you give up.</description>
	</item>
	<item>
		<title>Too many Dependabot alerts? Triage by what actually runs</title>
		<link>https://dynv.dev/blog/too-many-dependabot-alerts/</link>
		<guid isPermaLink="true">https://dynv.dev/blog/too-many-dependabot-alerts/</guid>
		<pubDate>Sun, 01 Nov 2026 00:00:00 GMT</pubDate>
		<description>A triage method for Dependabot alert overload: use GitHub's free filters, group by package, then check what is exploited, reachable and actually deployed. Tested script.</description>
	</item>
	<item>
		<title>Update environment variables without restarting your Node app</title>
		<link>https://dynv.dev/blog/update-env-vars-without-restarting-node/</link>
		<guid isPermaLink="true">https://dynv.dev/blog/update-env-vars-without-restarting-node/</guid>
		<pubDate>Sun, 01 Nov 2026 00:00:00 GMT</pubDate>
		<description>You can't change process.env from outside a running process. Four ways to get new values in without a redeploy, and a tested demo that swaps a database pool live.</description>
	</item>
	<item>
		<title>Why can a postinstall script read your production secret?</title>
		<link>https://dynv.dev/blog/why-can-postinstall-read-your-production-secret/</link>
		<guid isPermaLink="true">https://dynv.dev/blog/why-can-postinstall-read-your-production-secret/</guid>
		<pubDate>Sun, 01 Nov 2026 00:00:00 GMT</pubDate>
		<description>Every npm worm steals the same thing: the credentials already in the install environment. A tested demo, the four layers that cut the loot, and what each one can't do.</description>
	</item>
</channel>
</rss>
