<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Kirk Abbott: Writing</title>
    <link>https://kirkabbott.com</link>
    <description>Cloud, AI, and security: long-form articles.</description>
    <language>en-us</language>
    <atom:link href="https://kirkabbott.com/rss.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>NIST already publishes a CSF 2.0 map to the OWASP LLM Top 10. It is in a spreadsheet.</title>
      <link>https://kirkabbott.com/writing/2026-10-31-nist-already-publishes-a-csf-map-to-the-owasp-llm-top-10</link>
      <guid isPermaLink="true">https://kirkabbott.com/writing/2026-10-31-nist-already-publishes-a-csf-map-to-the-owasp-llm-top-10</guid>
      <pubDate>Sat, 31 Oct 2026 00:00:00 GMT</pubDate>
      <description>NIST publishes 169 mappings from the Cybersecurity Framework to the OWASP Top 10 for LLM Applications, then ships them inside an XLSX download whose URL says json and whose contents include 91 withdrawn elements from CSF 1.1. Here is what the data actually says once you get it out.</description>
      <category>nist-csf</category>
      <category>owasp-llm</category>
      <category>compliance</category>
    </item>
    <item>
      <title>A failed deploy, a critical CVE, and the upgrades I kept putting off</title>
      <link>https://kirkabbott.com/writing/2026-10-03-a-failed-deploy-a-critical-cve-and-the-upgrades-i-kept-putting-off</link>
      <guid isPermaLink="true">https://kirkabbott.com/writing/2026-10-03-a-failed-deploy-a-critical-cve-and-the-upgrades-i-kept-putting-off</guid>
      <pubDate>Sat, 03 Oct 2026 00:00:00 GMT</pubDate>
      <description>Vercel retired Node 20 and my deploys stopped. Fixing that surfaced a critical Next.js advisory, two pages shipping data no one ever saw, and, eventually, the move to Next 16, React 19 and Tailwind 4. The test suite stayed green throughout. A screenshot diff did not.</description>
      <category>next-js</category>
      <category>cves</category>
      <category>tailwind</category>
    </item>
    <item>
      <title>Prompt injection in a voice pipeline: the model scores, but it never decides</title>
      <link>https://kirkabbott.com/writing/2026-09-07-prompt-injection-in-a-voice-pipeline</link>
      <guid isPermaLink="true">https://kirkabbott.com/writing/2026-09-07-prompt-injection-in-a-voice-pipeline</guid>
      <pubDate>Mon, 07 Sep 2026 00:00:00 GMT</pubDate>
      <description>I built a scam-call detector on AWS where a caller&apos;s own words become input to an LLM. That makes the caller an untrusted author of model input, which is the part most write-ups skip. Here is where the injection surface actually sits, the four things I put in front of it, and why only the last one really matters.</description>
      <category>ai-security</category>
      <category>cloud-security</category>
      <category>threat-detection</category>
    </item>
    <item>
      <title>Per-user encryption keys: a length-extension trap and the HKDF fix</title>
      <link>https://kirkabbott.com/writing/2026-08-07-per-user-encryption-keys-length-extension-and-hkdf</link>
      <guid isPermaLink="true">https://kirkabbott.com/writing/2026-08-07-per-user-encryption-keys-length-extension-and-hkdf</guid>
      <pubDate>Fri, 07 Aug 2026 00:00:00 GMT</pubDate>
      <description>The &apos;obvious&apos; way to derive per-user encryption keys from a master secret is SHA256(master || user_id). It&apos;s wrong in a specific and exploitable way. Here&apos;s the attack, and how HKDF fixes it.</description>
      <category>cryptography</category>
      <category>kdf</category>
      <category>hkdf</category>
    </item>
    <item>
      <title>How 14 CVEs finally forced my Next.js upgrade (and what the migration actually looked like)</title>
      <link>https://kirkabbott.com/writing/2026-07-10-how-14-cves-finally-forced-our-nextjs-upgrade</link>
      <guid isPermaLink="true">https://kirkabbott.com/writing/2026-07-10-how-14-cves-finally-forced-our-nextjs-upgrade</guid>
      <pubDate>Fri, 10 Jul 2026 00:00:00 GMT</pubDate>
      <description>I deferred the Next.js 14 to 15 upgrade for over a year. Then a security audit counted 14 high-severity CVEs sitting in my production next package. Every code change, every build-pipeline gotcha, and the lessons that came out of it.</description>
      <category>next-js</category>
      <category>cves</category>
    </item>
    <item>
      <title>Betting on cloud + AI security</title>
      <link>https://kirkabbott.com/writing/2026-06-12-why-im-betting-on-cloud-ai-security</link>
      <guid isPermaLink="true">https://kirkabbott.com/writing/2026-06-12-why-im-betting-on-cloud-ai-security</guid>
      <pubDate>Fri, 12 Jun 2026 00:00:00 GMT</pubDate>
      <description>The strategic case for specializing in the cloud and AI security intersection. Three legs of the bet, what makes the seam between them actually new, and the under-served third piece nobody is building yet.</description>
      <category>cloud-security</category>
      <category>ai-security</category>
    </item>
    <item>
      <title>Trends in the Cybersecurity Industry</title>
      <link>https://kirkabbott.com/writing/2026-06-09-trends-in-the-cybersecurity-industry</link>
      <guid isPermaLink="true">https://kirkabbott.com/writing/2026-06-09-trends-in-the-cybersecurity-industry</guid>
      <pubDate>Tue, 09 Jun 2026 00:00:00 GMT</pubDate>
      <description>AI, zero trust architecture, and software supply chain attacks are reshaping modern cyber operations. This paper examines all three and argues that provenance-based build controls should replace the SBOM-centric compliance posture inherited from 2021.</description>
      <category>ai-security</category>
      <category>zero-trust</category>
      <category>supply-chain</category>
    </item>
    <item>
      <title>A bad week to ship &apos;next: latest&apos;</title>
      <link>https://kirkabbott.com/writing/2026-05-15-a-bad-week-to-ship-next-latest</link>
      <guid isPermaLink="true">https://kirkabbott.com/writing/2026-05-15-a-bad-week-to-ship-next-latest</guid>
      <pubDate>Fri, 15 May 2026 00:00:00 GMT</pubDate>
      <description>Three CVEs, one almost-mistaken major version jump, and a build cache that kept lying to me. Notes from patching dependency vulnerabilities on a brand-new Next.js site within hours of going live.</description>
      <category>cloud-security</category>
      <category>supply-chain</category>
      <category>next-js</category>
    </item>
  </channel>
</rss>