<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Martin Kambla</title>
    <description>The latest articles on Forem by Martin Kambla (@xmkx).</description>
    <link>https://forem.com/xmkx</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3855918%2Fa334d629-dda6-444b-a4cc-87f6826ae68e.png</url>
      <title>Forem: Martin Kambla</title>
      <link>https://forem.com/xmkx</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/xmkx"/>
    <language>en</language>
    <item>
      <title>Project Glasswing: What Software Companies Should Actually Do in the Next 12 Months</title>
      <dc:creator>Martin Kambla</dc:creator>
      <pubDate>Tue, 14 Apr 2026 04:14:56 +0000</pubDate>
      <link>https://forem.com/xmkx/project-glasswing-what-software-companies-should-actually-do-in-the-next-12-months-1oe8</link>
      <guid>https://forem.com/xmkx/project-glasswing-what-software-companies-should-actually-do-in-the-next-12-months-1oe8</guid>
      <description>&lt;p&gt;Anthropic's Project Glasswing gave limited access to Claude Mythos Preview — a model reportedly able to identify and exploit zero-day vulnerabilities across major operating systems and browsers, including multi-stage exploit chains. Anthropic says more than 99% of the vulnerabilities it found remain unpatched.&lt;/p&gt;

&lt;p&gt;That is the data point that matters.&lt;/p&gt;

&lt;p&gt;The usual reaction to announcements like this is a philosophical debate about how many of those bugs were already known to someone and just unreported. That is a rabbit hole not worth digging. Assume the less flattering answer - act on that.&lt;/p&gt;

&lt;p&gt;Software will not suddenly stop working. Codebases are not worthless. Nobody has to rewrite everything next quarter.&lt;/p&gt;

&lt;p&gt;What changed is the &lt;strong&gt;economics of offense&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  What actually got cheaper
&lt;/h2&gt;

&lt;p&gt;A model like Mythos does not need to invent new classes of vulnerabilities to cause disruption. It only needs to reduce the skill, time, and cost required to find real bugs, weaponize them, and chain them together.&lt;/p&gt;

&lt;p&gt;Anthropic explicitly warns that defenses whose main value is friction rather than a hard barrier will erode against model-assisted attackers, because models can grind through tedious exploit-development work at scale.&lt;/p&gt;

&lt;p&gt;An example of what "friction" means in practice: a stripped closed-source binary that used to cost a specialist a weekend of reverse engineering to map. A heap-grooming sequence only one in ten offensive researchers could reliably land. A logic bug buried three layers deep in a state machine nobody wanted to audit by hand.&lt;/p&gt;

&lt;p&gt;That kind of work compresses.&lt;/p&gt;

&lt;p&gt;Mythos reportedly found memory-corruption bugs, logic bugs, cryptographic implementation weaknesses, browser exploit chains, and vulnerabilities inside closed-source binaries via reverse engineering. Five bug classes. One pipeline.&lt;/p&gt;

&lt;p&gt;The short version:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;exploit development gets faster&lt;/li&gt;
&lt;li&gt;exploit chaining gets easier&lt;/li&gt;
&lt;li&gt;reverse engineering gets cheaper&lt;/li&gt;
&lt;li&gt;patch windows get more dangerous&lt;/li&gt;
&lt;li&gt;"annoying but probably fine" exposures get less fine&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What software companies should actually do
&lt;/h2&gt;

&lt;p&gt;Most writing about AI risk becomes either philosophy or panic. Neither is operationally useful. Here is the triage.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Build an honest asset inventory
&lt;/h3&gt;

&lt;p&gt;Not a compliance spreadsheet. An actual map: what is internet-facing, what runs with elevated privilege, what is written in memory-unsafe languages, what parses untrusted input, what sits before authentication, what cannot be patched quickly, what third-party components quietly expand the attack surface.&lt;/p&gt;

&lt;p&gt;Without this, you are not doing prioritization. You are doing vibes.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Split the estate into rewrite, isolate, monitor
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Rewrite&lt;/strong&gt;: high-risk parsers, security-critical low-level services, old C/C++ components exposed to hostile input, brittle auth or crypto-adjacent implementations.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Isolate&lt;/strong&gt;: legacy services you cannot replace in 12 months, components with known rough edges and clear business dependency, anything that can be boxed into stricter privilege boundaries, seccomp profiles, sandboxes, or service segmentation.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Monitor&lt;/strong&gt;: lower-risk business logic, standard SaaS code in managed runtimes, internal tooling with constrained exposure.&lt;/p&gt;

&lt;p&gt;The point most teams miss: the right response to Mythos is not "rewrite everything." It is "be much more honest about what deserves rewriting first."&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Make patch latency an executive KPI
&lt;/h3&gt;

&lt;p&gt;If 99% of Mythos-found vulnerabilities remain unpatched, the bottleneck is not discovery. It is organizational response speed.&lt;/p&gt;

&lt;p&gt;The question is no longer &lt;em&gt;could someone find this bug?&lt;/em&gt; It is &lt;em&gt;could we fix, validate, and deploy the patch before someone industrializes it?&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Patch velocity is now a business capability. Not just a security metric.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Discount "attacker effort" in your severity model
&lt;/h3&gt;

&lt;p&gt;A vulnerability that used to be dismissed as "the exploit path is too tedious" is more dangerous than it looked six months ago. A chain that used to require an unusually strong offensive researcher may increasingly be available to a competent operator with a good model and enough compute.&lt;/p&gt;

&lt;p&gt;That does not mean every bug is suddenly critical. It does mean your severity rubric should stop leaning on attacker inconvenience as a mitigation.&lt;/p&gt;

&lt;h3&gt;
  
  
  5. Default new security-critical code to memory-safe stacks
&lt;/h3&gt;

&lt;p&gt;Not ideology. Risk concentration. You do not need to rewrite mature systems tomorrow. You should probably stop creating fresh long-term exposure in exactly the places where a language choice removes entire bug classes.&lt;/p&gt;

&lt;h3&gt;
  
  
  6. Add model-assisted workflows to defense now
&lt;/h3&gt;

&lt;p&gt;Anthropic's own framing is that the long-run equilibrium may still favor defenders — the way fuzzers eventually did — but the transitional period favors attackers if defenders are slower to adapt.&lt;/p&gt;

&lt;p&gt;That means AI-assisted code review, exploitability analysis, dependency triage, fuzzing and testcase generation, and regression verification after patches.&lt;/p&gt;

&lt;p&gt;If offense becomes automated while defense stays ticket-driven and manual, the gap widens fast.&lt;/p&gt;

&lt;h3&gt;
  
  
  7. Stop treating architecture as separate from security
&lt;/h3&gt;

&lt;p&gt;The companies that look smartest in 18 months will not be the ones that wrote the most urgent memos.&lt;/p&gt;

&lt;p&gt;They will be the ones that quietly reduced blast radius.&lt;/p&gt;

&lt;p&gt;Least privilege, segmentation, sandboxing, narrow interfaces, ephemeral credentials, isolated parsers, fast rollback paths. All of those become more valuable when exploit development gets cheaper.&lt;/p&gt;

&lt;h2&gt;
  
  
  The real question
&lt;/h2&gt;

&lt;p&gt;Mythos does not mean software companies need to rewrite everything.&lt;/p&gt;

&lt;p&gt;It means they have to stop pretending their backlog is neutral.&lt;/p&gt;

&lt;p&gt;A lot of organizations have accumulated technical debt under the quiet assumption that the exploit-development bottleneck was mostly on the attacker side. That assumption is weakening.&lt;/p&gt;

&lt;p&gt;What used to be &lt;em&gt;"we should clean this up eventually"&lt;/em&gt; is increasingly &lt;em&gt;"this is a compounding liability."&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The next 12 months are not about panic. They are about sorting your projects into three buckets:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;things you can still safely defer&lt;/li&gt;
&lt;li&gt;things you must isolate now&lt;/li&gt;
&lt;li&gt;things you should never have built that way again&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Not "do we rewrite everything?"&lt;/p&gt;

&lt;p&gt;But "which parts of our system can no longer rely on attacker friction to stay safe?"&lt;/p&gt;

&lt;p&gt;That is a much better executive question.&lt;/p&gt;

&lt;p&gt;And a much more expensive one to answer late.&lt;/p&gt;

</description>
      <category>security</category>
      <category>ai</category>
      <category>cybersecurity</category>
      <category>programming</category>
    </item>
    <item>
      <title>The Commoditization Thesis: What Actually Happens When Software Gets Easy</title>
      <dc:creator>Martin Kambla</dc:creator>
      <pubDate>Wed, 08 Apr 2026 01:03:48 +0000</pubDate>
      <link>https://forem.com/xmkx/the-commoditization-thesis-what-actually-happens-when-software-gets-easy-1lm7</link>
      <guid>https://forem.com/xmkx/the-commoditization-thesis-what-actually-happens-when-software-gets-easy-1lm7</guid>
      <description>&lt;p&gt;The data is clear on what’s already happening.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Labor’s share of GDP fell to &lt;strong&gt;53.8% in Q3 2025&lt;/strong&gt; — the lowest in the modern BLS series back to 1947. Capital is eating labor’s lunch, and AI is accelerating it.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Entry-level pressure is already visible: Stanford’s Digital Economy Lab found declines concentrated among &lt;strong&gt;22–25 year-old workers in AI-exposed jobs&lt;/strong&gt; such as software development, customer service, and clerical work.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The narrower BLS category of &lt;strong&gt;computer programmers&lt;/strong&gt; is projected to &lt;strong&gt;decline 6% through 2034&lt;/strong&gt;, even while broader software development roles still grow. That distinction matters: implementation-heavy work gets pressured first.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Meanwhile, workers with &lt;strong&gt;AI skills command meaningful wage premiums&lt;/strong&gt;. PwC found an average &lt;strong&gt;56% wage premium&lt;/strong&gt; for workers with AI skills in 2024, and other labor-market reporting showed premiums up to &lt;strong&gt;43%&lt;/strong&gt; for jobs listing multiple AI skills.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Tech salary growth slowed to &lt;strong&gt;1.6% in 2025&lt;/strong&gt;, down from &lt;strong&gt;3.5% in 2023&lt;/strong&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is not speculation. The compression is measurable.&lt;/p&gt;

&lt;h2&gt;
  
  
  Historical pattern — this has happened before, twice
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Web development (late 90s → 2008):&lt;/strong&gt; Developers charged premium rates to technically naive clients. WordPress, Squarespace, and frameworks killed the implementation premium. Value migrated to architecture, product strategy, integration.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Mobile apps (2008 → mid-2010s):&lt;/strong&gt; App Store gold rush → React Native / Flutter commoditized a large chunk of standalone app building. Same outcome: implementation became cheaper, judgment became more expensive.&lt;/p&gt;

&lt;p&gt;The arc is usually the same: scarcity premium → tool-driven commoditization → value migrates upward to domain expertise, architecture, integration, and judgment.&lt;/p&gt;

&lt;p&gt;Historically, that took &lt;strong&gt;5–8 years&lt;/strong&gt;. AI appears to be compressing the cycle closer to &lt;strong&gt;2–3 years&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  What the capital side of this looks like
&lt;/h2&gt;

&lt;p&gt;Piketty’s &lt;strong&gt;r &amp;gt; g&lt;/strong&gt; framework feels increasingly visible in current data.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The &lt;strong&gt;S&amp;amp;P 500&lt;/strong&gt; is dramatically above its January 2023 level.&lt;/li&gt;
&lt;li&gt;AI captured &lt;strong&gt;close to 50% of all global venture funding in 2025&lt;/strong&gt;, with roughly &lt;strong&gt;$202.3B&lt;/strong&gt; invested across infrastructure, foundation labs, and applications.&lt;/li&gt;
&lt;li&gt;McKinsey has explicitly warned that when &lt;strong&gt;real estate and equity values rise faster than GDP&lt;/strong&gt;, capital can get pulled toward asset inflation and repurchases rather than the kinds of investment that generate broad long-run growth.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Labor income alone is becoming a weaker wealth-building vehicle. The gap between returns on capital and returns on labor is widening, not narrowing. For someone starting from near-zero capital, that is the fundamental challenge.&lt;/p&gt;

&lt;h2&gt;
  
  
  The critical prediction for 2026–2030
&lt;/h2&gt;

&lt;p&gt;Middle-class software developer income will likely bifurcate.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Bottom 60% of current developers:&lt;/strong&gt; real income stagnation or decline. Implementation work commoditizes.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Top 20%:&lt;/strong&gt; premium widens. Architecture, security, compliance, domain-specific systems, AI integration, and judgment-heavy work become more valuable.&lt;/li&gt;
&lt;li&gt;The gap between these groups likely widens through at least &lt;strong&gt;2030&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Not because software disappears.&lt;/p&gt;

&lt;p&gt;Because &lt;strong&gt;undifferentiated software work gets repriced downward&lt;/strong&gt;, while the value of high-context, high-trust, high-complexity work rises by contrast.&lt;/p&gt;

&lt;h2&gt;
  
  
  The uncomfortable truth
&lt;/h2&gt;

&lt;p&gt;Software commoditization means the &lt;strong&gt;floor rises&lt;/strong&gt; — more people can build — but the &lt;strong&gt;ceiling also rises&lt;/strong&gt;. Complex integration, security, compliance, architecture, and domain-specific work become more valuable precisely because raw implementation gets cheaper.&lt;/p&gt;

&lt;p&gt;That usually hollows out the middle.&lt;/p&gt;

&lt;p&gt;The real risk is getting distracted by opportunities that look easier, when in practice they are just more crowded.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>softwaredevelopment</category>
      <category>career</category>
      <category>programming</category>
    </item>
    <item>
      <title>I scanned 8 popular npm projects for quantum-vulnerable cryptography. Here's what I found.</title>
      <dc:creator>Martin Kambla</dc:creator>
      <pubDate>Wed, 01 Apr 2026 15:25:03 +0000</pubDate>
      <link>https://forem.com/xmkx/i-scanned-8-popular-npm-projects-for-quantum-vulnerable-cryptography-heres-what-i-found-48</link>
      <guid>https://forem.com/xmkx/i-scanned-8-popular-npm-projects-for-quantum-vulnerable-cryptography-heres-what-i-found-48</guid>
      <description>&lt;p&gt;This week Google published a paper that changed the post-quantum timeline. Breaking ECDSA-256 — the signature scheme protecting Bitcoin, Ethereum, and most of the web — now requires &lt;a href="https://research.google/blog/safeguarding-cryptocurrency-by-disclosing-quantum-vulnerabilities-responsibly/" rel="noopener noreferrer"&gt;roughly 1,200 logical qubits and under 500,000 physical qubits&lt;/a&gt;. That's a 20x reduction from previous estimates.&lt;/p&gt;

&lt;p&gt;I wanted to answer a simple question: &lt;strong&gt;how exposed are the projects we all depend on?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;So I built &lt;a href="https://github.com/PQCWorld/pqaudit" rel="noopener noreferrer"&gt;pqaudit&lt;/a&gt;, an open-source CLI that scans source code and npm dependencies for quantum-vulnerable cryptography — algorithms broken by Shor's algorithm (RSA, ECDSA, Ed25519, ECDH, Diffie-Hellman) and weakened by Grover's algorithm (AES-128) — and flags the NIST-approved replacement for each one.&lt;/p&gt;

&lt;p&gt;Then I pointed it at 8 popular projects.&lt;/p&gt;

&lt;h2&gt;
  
  
  The results
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Project&lt;/th&gt;
&lt;th&gt;Files&lt;/th&gt;
&lt;th&gt;Critical&lt;/th&gt;
&lt;th&gt;High&lt;/th&gt;
&lt;th&gt;PQC Ready&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Express&lt;/td&gt;
&lt;td&gt;142&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Fastify&lt;/td&gt;
&lt;td&gt;295&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Next.js&lt;/td&gt;
&lt;td&gt;22,478&lt;/td&gt;
&lt;td&gt;17&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Prisma&lt;/td&gt;
&lt;td&gt;3,291&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;jsonwebtoken&lt;/td&gt;
&lt;td&gt;65&lt;/td&gt;
&lt;td&gt;21&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Solana web3.js&lt;/td&gt;
&lt;td&gt;104&lt;/td&gt;
&lt;td&gt;17&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Ethereum web3.js&lt;/td&gt;
&lt;td&gt;1,194&lt;/td&gt;
&lt;td&gt;12&lt;/td&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Signal Desktop&lt;/td&gt;
&lt;td&gt;2,854&lt;/td&gt;
&lt;td&gt;12&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;30,423 files scanned. 6 of 8 are not quantum-ready.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Let me walk through the interesting ones.&lt;/p&gt;

&lt;h2&gt;
  
  
  jsonwebtoken: 21 critical findings in 65 files
&lt;/h2&gt;

&lt;p&gt;This one hit hardest. &lt;a href="https://github.com/auth0/node-jsonwebtoken" rel="noopener noreferrer"&gt;node-jsonwebtoken&lt;/a&gt; is the most popular JWT library on npm — and it's fundamentally built on quantum-vulnerable algorithms.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;[!!] RSA — RS256, RS384, RS512, PS256, PS384, PS512
     sign.js, verify.js, lib/validateAsymmetricKey.js
     Fix: ML-DSA-65 (FIPS 204)

[!!] ECDSA — ES256, ES384, ES512
     lib/validateAsymmetricKey.js
     Fix: ML-DSA-65 (FIPS 204)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Every signing algorithm the library supports — RS256, ES256, and their variants — is broken by Shor's algorithm. If your app uses JWTs for authentication (and most Node.js apps do), your auth tokens are signed with quantum-vulnerable cryptography.&lt;/p&gt;

&lt;p&gt;There's no PQC JWT standard yet. The IETF is working on it, but it doesn't exist today. This is a systemic gap in the entire web ecosystem.&lt;/p&gt;

&lt;h2&gt;
  
  
  Solana web3.js: Ed25519 everywhere
&lt;/h2&gt;

&lt;p&gt;Solana's entire identity and transaction model is built on Ed25519:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;[!!] Ed25519 — src/account.ts, src/keypair.ts, src/transaction/legacy.ts
     Fix: ML-DSA-65 (FIPS 204) — blocked by Solana protocol
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;17 critical findings across 104 files. Every account, every keypair, every transaction signature depends on an algorithm that Shor's breaks. The secp256k1 program (for Ethereum compatibility) adds more.&lt;/p&gt;

&lt;p&gt;The migration path exists — ML-DSA-65 is the NIST replacement — but it requires a protocol-level upgrade across the entire Solana network. This isn't something you can fix in your app.&lt;/p&gt;

&lt;h2&gt;
  
  
  Next.js: 17 critical findings (but it's not what you think)
&lt;/h2&gt;

&lt;p&gt;Next.js has 17 critical findings across 22,478 files. Sounds bad, but the nuance matters — &lt;strong&gt;every single finding is in vendored bundles&lt;/strong&gt;, not in Next.js source code:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;crypto-browserify&lt;/code&gt; bundled in &lt;code&gt;packages/next/src/compiled/&lt;/code&gt; contains RSA, ECDSA, Ed25519, ECDH, and Diffie-Hellman polyfills&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;jsonwebtoken&lt;/code&gt; compiled into the same directory&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;constants-browserify&lt;/code&gt; exposes RSA padding and ECDSA engine constants&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Next.js doesn't use quantum-vulnerable crypto itself. But it ships it to every application that depends on it, through vendored dependencies. This is a supply-chain problem.&lt;/p&gt;

&lt;h2&gt;
  
  
  Signal Desktop: the only one migrating
&lt;/h2&gt;

&lt;p&gt;Signal Desktop had 12 critical findings (X25519 key exchange, ECDSA), but it's also &lt;strong&gt;the only project in this scan that has active PQC adoption&lt;/strong&gt;. pqaudit detected ML-KEM (Kyber) usage through &lt;code&gt;@signalapp/libsignal-client&lt;/code&gt; — Signal's implementation of the &lt;a href="https://signal.org/docs/specifications/pqxdh/" rel="noopener noreferrer"&gt;PQXDH protocol&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Signal is ahead. Everyone else is at zero.&lt;/p&gt;

&lt;h2&gt;
  
  
  Express and Prisma: PQC ready
&lt;/h2&gt;

&lt;p&gt;Express and Prisma both passed with zero critical findings. The pattern is clear — frameworks that delegate cryptography to the runtime or database layer don't have this problem. The vulnerability lives in libraries that implement or wrap cryptographic primitives directly.&lt;/p&gt;

&lt;h2&gt;
  
  
  What breaks and what doesn't
&lt;/h2&gt;

&lt;p&gt;Not all cryptography is quantum-vulnerable. Here's the split:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Broken by Shor's algorithm (must migrate):&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;RSA (any key size) — key exchange and signatures&lt;/li&gt;
&lt;li&gt;ECDSA, Ed25519, EdDSA — signatures&lt;/li&gt;
&lt;li&gt;ECDH, X25519, Diffie-Hellman — key exchange&lt;/li&gt;
&lt;li&gt;DSA — signatures&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Weakened by Grover's algorithm:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;AES-128 — reduced to 64-bit effective security. Fix: use AES-256.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Already quantum-safe (no action needed):&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;AES-256, ChaCha20-Poly1305 — symmetric encryption&lt;/li&gt;
&lt;li&gt;SHA-256, SHA-3 — hashing&lt;/li&gt;
&lt;li&gt;ML-KEM (Kyber), ML-DSA (Dilithium), SLH-DSA (SPHINCS+) — the NIST PQC standards&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Why this matters now
&lt;/h2&gt;

&lt;p&gt;You might think quantum computers are far away. Google's paper says otherwise. And even before a quantum computer exists, "harvest now, decrypt later" attacks mean adversaries are collecting your encrypted traffic today for future decryption.&lt;/p&gt;

&lt;p&gt;The NSA's &lt;a href="https://media.defense.gov/2022/Sep/07/2003071836/-1/-1/0/CSI_CNSA_2.0_FAQ_.PDF" rel="noopener noreferrer"&gt;CNSA 2.0&lt;/a&gt; mandates PQC for new national security systems by &lt;strong&gt;January 2027&lt;/strong&gt;. Google has set a &lt;a href="https://blog.google/innovation-and-ai/technology/safety-security/cryptography-migration-timeline/" rel="noopener noreferrer"&gt;2029 deadline&lt;/a&gt; for its own products. NIST finalized the standards (FIPS 203, 204, 205) in August 2024.&lt;/p&gt;

&lt;p&gt;The migration window is open. The first step is visibility — knowing where quantum-vulnerable cryptography lives in your stack.&lt;/p&gt;

&lt;h2&gt;
  
  
  Try it
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npx pqaudit &lt;span class="nb"&gt;.&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;One command, no signup, no config. It scans your source code and npm dependencies, classifies findings by severity, and tells you the NIST-approved replacement for each one.&lt;/p&gt;

&lt;p&gt;Outputs: human-readable text, JSON, &lt;a href="https://cyclonedx.org/capabilities/cbom/" rel="noopener noreferrer"&gt;CycloneDX CBOM&lt;/a&gt;, or &lt;a href="https://sarifweb.azurewebsites.net/" rel="noopener noreferrer"&gt;SARIF&lt;/a&gt; for GitHub Code Scanning.&lt;/p&gt;

&lt;p&gt;For CI/CD:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npx pqaudit &lt;span class="nb"&gt;.&lt;/span&gt; &lt;span class="nt"&gt;--ci&lt;/span&gt; &lt;span class="nt"&gt;--format&lt;/span&gt; sarif &lt;span class="nt"&gt;--output&lt;/span&gt; pqaudit.sarif
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;It's MIT licensed and on &lt;a href="https://github.com/PQCWorld/pqaudit" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;. Issues and contributions welcome — especially detection rules for languages beyond JavaScript/TypeScript.&lt;/p&gt;

&lt;h2&gt;
  
  
  Full results
&lt;/h2&gt;

&lt;p&gt;The detailed scan data for all 8 projects is published at &lt;a href="https://pqcworld.com/scan-results.html" rel="noopener noreferrer"&gt;pqcworld.com/scan-results.html&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>security</category>
      <category>javascript</category>
      <category>opensource</category>
      <category>node</category>
    </item>
  </channel>
</rss>
