Did you move off of Node.js v20.x yet? There are only a couple weeks util its EOL. Save yourself the headache of scrambling to upgrade next year and jump straight to v24.x LTS
v24.x has a host of improvements I contributed that are not present on v22.x:
- Post-Quantum Digital Signatures and Key Agreement/Encapsulation in node:crypto and Web Cryptography
- (backport ready and pending) raw private/public/seed key gen and import formats
⚠️ Update: The Node.js project's security bug bounty program is being paused.
Reporting remains unchanged, and so does our commitment to security.
More details here: nodejs.org/en/blog/announcem…
Introducing CWS, CSS Web Signatures. A security token scheme that runs entirely in the browser's style engine. No JavaScript. No WebAssembly. No server-side computation.
Spec interactive demo: panva.github.io/CS24
CS24 provides exactly 0 bits of security. The key is displayed on screen, believed to be the least secure key storage mechanism ever devised. The 24-bit key space is exhaustible in milliseconds, though "somewhat longer using CSS."
The payload supports 3 ASCII characters. Messages like "Hi!", "lol", and "why" are covered. Longer messages are left as future work that SHOULD NOT be undertaken.
panva.github.io/CS24/rfc-cs2…
When it comes to JWTs issued for "yourself" the JWE format is far superior to JWS. Just let go of the HMAC JWS algorithms and use JWE direct encryption instead.
You get confidentiality and it forces use of correct-length keys.
await new jose.EncryptJWT > await new jose.SignJWT
Let's get some ⭐⭐⭐ going 🙏
github.com/panva/hpke
Hybrid Public Key Encryption (HPKE) for Node.js, Browser, Cloudflare Workers, Deno, Bun, and other Web-interoperable runtimes.
Fully tree-shakeable. Fully typed. Extensible.
3 private vulnerability disclosures this week. All AI assisted slop that at first glance seems plausable but when challenged quotes non-existent language from RFCs. Time being wasted. Disclosures invalid.
Now i get private vulnerability disclosures about CVEs that should've never been assigned, that I rejected, and that are invalid for which i can provide proof.