<?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>codeknife blog</title><link>https://codeknife.dev/en/blog/</link><description>Notes on the tools developers use every day, and the security and software news that touches them.</description><language>en</language><lastBuildDate>Mon, 02 Nov 2026 00:00:00 GMT</lastBuildDate><atom:link href="https://codeknife.dev/en/blog/rss.xml" rel="self" type="application/rss+xml"/><item><title>CVE-2026-98432: a Linux TCP use-after-free in IP options</title><link>https://codeknife.dev/en/blog/cve-2026-98432-linux-tcp-ip-options-uaf/</link><guid isPermaLink="true">https://codeknife.dev/en/blog/cve-2026-98432-linux-tcp-ip-options-uaf/</guid><pubDate>Mon, 02 Nov 2026 00:00:00 GMT</pubDate><dc:creator>Alex Knife</dc:creator><category>Security</category><category>News</category><category>Explainer</category><description>A critical Linux kernel race in the TCP handshake, fixed in stable kernels: what the bug is, why 'only MPTCP' misleads, how to patch and mitigate.</description></item><item><title>Least privilege for AI agents and MCP servers, in practice</title><link>https://codeknife.dev/en/blog/least-privilege-for-ai-agents-and-mcp-servers/</link><guid isPermaLink="true">https://codeknife.dev/en/blog/least-privilege-for-ai-agents-and-mcp-servers/</guid><pubDate>Mon, 02 Nov 2026 00:00:00 GMT</pubDate><dc:creator>Alex Knife</dc:creator><category>Security</category><category>How-to</category><category>Explainer</category><description>Give an AI agent wide room to work and narrow doors to the outside: scopes, sandboxes, MCP tokens and the audit trail a team gets in return.</description></item><item><title>PHP2Shell: when PHP's error exit leaves a mess behind</title><link>https://codeknife.dev/en/blog/php2shell-longjmp-stale-state-rce/</link><guid isPermaLink="true">https://codeknife.dev/en/blog/php2shell-longjmp-stale-state-rce/</guid><pubDate>Sun, 01 Nov 2026 00:00:00 GMT</pubDate><dc:creator>Alex Knife</dc:creator><category>Security</category><category>News</category><category>Explainer</category><description>Two critical PHP RCEs patched on 21 Oct 2026: how longjmp() bailouts leave stale memory behind, how to check your version, and what is unconfirmed.</description></item><item><title>Base64 is encoding, not encryption</title><link>https://codeknife.dev/en/blog/base64-is-encoding-not-encryption/</link><guid isPermaLink="true">https://codeknife.dev/en/blog/base64-is-encoding-not-encryption/</guid><pubDate>Wed, 28 Oct 2026 00:00:00 GMT</pubDate><dc:creator>Alex Knife</dc:creator><category>Security</category><category>Explainer</category><description>A Base64 value in your config is your password in another alphabet. What Base64 is for, where it gets mistaken for encryption, and how to spot it.</description></item><item><title>CIDR, the netmask and the router's longest match</title><link>https://codeknife.dev/en/blog/how-cidr-and-ip-subnets-really-work/</link><guid isPermaLink="true">https://codeknife.dev/en/blog/how-cidr-and-ip-subnets-really-work/</guid><pubDate>Wed, 28 Oct 2026 00:00:00 GMT</pubDate><dc:creator>Alex Knife</dc:creator><category>Explainer</category><category>How-to</category><description>Prefix lengths, longest-prefix match, subnet and broadcast arithmetic, why /31 and /32 are special, and the planning mistakes that bite later.</description></item><item><title>Why length beats composition rules in passwords</title><link>https://codeknife.dev/en/blog/password-entropy-length-beats-composition/</link><guid isPermaLink="true">https://codeknife.dev/en/blog/password-entropy-length-beats-composition/</guid><pubDate>Wed, 28 Oct 2026 00:00:00 GMT</pubDate><dc:creator>Alex Knife</dc:creator><category>Security</category><category>Explainer</category><description>Entropy, offline cracking speeds per hash, why passphrases work, what strength meters can't know, and what NIST SP 800-63B really says.</description></item><item><title>How regex engines backtrack, and what regex can't parse</title><link>https://codeknife.dev/en/blog/regex-backtracking-redos-and-the-limits-of-regex/</link><guid isPermaLink="true">https://codeknife.dev/en/blog/regex-backtracking-redos-and-the-limits-of-regex/</guid><pubDate>Wed, 28 Oct 2026 00:00:00 GMT</pubDate><dc:creator>Alex Knife</dc:creator><category>Security</category><category>Explainer</category><description>How backtracking regex engines work, why ReDoS happens (Symfony's Cache-Control bug as a case), what RE2 gives up, and why regex can't parse HTML.</description></item><item><title>UUID v1, v4 and v7: what leaks, what collides, what scales</title><link>https://codeknife.dev/en/blog/uuid-v1-v4-v7-leaks-collisions-index-locality/</link><guid isPermaLink="true">https://codeknife.dev/en/blog/uuid-v1-v4-v7-leaks-collisions-index-locality/</guid><pubDate>Wed, 28 Oct 2026 00:00:00 GMT</pubDate><dc:creator>Alex Knife</dc:creator><category>Explainer</category><category>Performance</category><category>Security</category><description>What UUID v1, v4 and v7 leak or guarantee, the birthday-bound maths for v4 collisions, and why time-ordered v7 keys keep database indexes fast.</description></item><item><title>What cron can and cannot do (and how to test it)</title><link>https://codeknife.dev/en/blog/what-cron-can-and-cannot-do/</link><guid isPermaLink="true">https://codeknife.dev/en/blog/what-cron-can-and-cannot-do/</guid><pubDate>Wed, 28 Oct 2026 00:00:00 GMT</pubDate><dc:creator>Alex Knife</dc:creator><category>Explainer</category><category>How-to</category><description>Cron's day-of-month OR day-of-week rule, missing seconds, DST gaps and repeats, missed runs, and how to test a schedule before it bites you.</description></item><item><title>A JWT is signed, not secret</title><link>https://codeknife.dev/en/blog/jwt-is-signed-not-secret/</link><guid isPermaLink="true">https://codeknife.dev/en/blog/jwt-is-signed-not-secret/</guid><pubDate>Tue, 27 Oct 2026 00:00:00 GMT</pubDate><dc:creator>Alex Knife</dc:creator><category>Security</category><category>Explainer</category><description>Anyone can read a JWT payload. What the signature does prove, what it doesn't, and the mistakes that turn a token into a vulnerability.</description></item><item><title>One email can freeze your Node.js parser for seconds</title><link>https://codeknife.dev/en/blog/rfc-2047-encoded-words-quadratic-regex-dos/</link><guid isPermaLink="true">https://codeknife.dev/en/blog/rfc-2047-encoded-words-quadratic-regex-dos/</guid><pubDate>Tue, 27 Oct 2026 00:00:00 GMT</pubDate><dc:creator>Alex Knife</dc:creator><category>Security</category><category>News</category><description>A valid email header full of RFC 2047 encoded words froze postal-mime for seconds. How a harmless-looking check turned quadratic, and how to defend against it.</description></item></channel></rss>
