<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Blog on Raúl Pastor</title><link>https://pixelotes.com/blog/</link><description>Recent content in Blog on Raúl Pastor</description><generator>Hugo</generator><language>en</language><lastBuildDate>Fri, 30 Oct 2026 21:10:00 +0100</lastBuildDate><atom:link href="https://pixelotes.com/blog/index.xml" rel="self" type="application/rss+xml"/><item><title>Hardening a personal domain in an afternoon, for free</title><link>https://pixelotes.com/blog/hardening-a-personal-domain/</link><pubDate>Thu, 29 Oct 2026 20:05:00 +0100</pubDate><guid>https://pixelotes.com/blog/hardening-a-personal-domain/</guid><description>&lt;p&gt;Your personal domain is part of your professional identity. If someone can send mail as you, get a certificate for it or take over a forgotten subdomain, that&amp;rsquo;s your name on it. I recently cleaned up mine with a free Cloudflare plan and a free mail plan. Here is what each piece does and how to check it. The examples use &lt;code&gt;example.com&lt;/code&gt;.&lt;/p&gt;&#10;&lt;h2 id="1-remove-what-you-dont-use"&gt;1. Remove what you don&amp;rsquo;t use&lt;/h2&gt;&#10;&lt;p&gt;Old subdomains pointing at services you have deleted are the easiest way in. If &lt;code&gt;blog.example.com&lt;/code&gt; still has a CNAME to a hosting platform where you closed the account, someone else can claim it and serve content on your domain. This is called &lt;strong&gt;subdomain takeover&lt;/strong&gt;.&lt;/p&gt;</description></item><item><title>Node.js October 2026 security release: Brotli RCE and certificate checks fooled by odd IPs</title><link>https://pixelotes.com/blog/nodejs-october-2026/</link><pubDate>Mon, 26 Oct 2026 18:20:00 +0100</pubDate><guid>https://pixelotes.com/blog/nodejs-october-2026/</guid><description>&lt;h2 id="in-one-paragraph"&gt;In one paragraph&lt;/h2&gt;&#10;&lt;p&gt;On 21 October 2026 Node.js shipped &lt;strong&gt;22.23.4, 24.22.1 and 26.12.1&lt;/strong&gt;, fixing ten vulnerabilities. The headline is &lt;strong&gt;CVE-2026-111497&lt;/strong&gt;, a memory corruption bug in the bundled Brotli decompressor that researchers nicknamed &lt;strong&gt;Node2Shell&lt;/strong&gt;. Any app that decompresses Brotli data from someone it doesn&amp;rsquo;t trust is exposed, and two very common paths do it by default. CISA added it to the KEV catalog on 27 October. Node.js 20 and every other end-of-life line get no fix.&lt;/p&gt;</description></item><item><title>PHP2Shell: two pre-auth RCEs in PHP itself, explained</title><link>https://pixelotes.com/blog/php2shell/</link><pubDate>Sat, 24 Oct 2026 11:15:00 +0200</pubDate><guid>https://pixelotes.com/blog/php2shell/</guid><description>&lt;h2 id="in-one-paragraph"&gt;In one paragraph&lt;/h2&gt;&#10;&lt;p&gt;Two flaws in the PHP engine, nicknamed &lt;strong&gt;PHP2Shell&lt;/strong&gt;, let an unauthenticated attacker run commands on a server just by sending a crafted HTTP request. They trigger while PHP parses the request, &lt;strong&gt;before your application code runs&lt;/strong&gt;, so it does not matter which framework or CMS you use or how well it is written. Exploitation attempts were seen four days before disclosure. Both CVEs are rated 9.2 (CVSS v4.0) and are in CISA&amp;rsquo;s Known Exploited Vulnerabilities catalog.&lt;/p&gt;</description></item><item><title>eMudhra's guessable CA keys: what happened and how to check your estate</title><link>https://pixelotes.com/blog/emudhra-weak-ca-keys/</link><pubDate>Thu, 22 Oct 2026 19:40:00 +0200</pubDate><guid>https://pixelotes.com/blog/emudhra-weak-ca-keys/</guid><description>&lt;h2 id="what-happened"&gt;What happened&lt;/h2&gt;&#10;&lt;p&gt;A certificate authority (CA) is trusted to vouch for websites and software publishers. That trust rests on one thing: nobody else can use the CA&amp;rsquo;s private key.&lt;/p&gt;&#10;&lt;p&gt;On 17 October 2026 an independent researcher reported that eight &lt;strong&gt;intermediate CA certificates&lt;/strong&gt; from eMudhra, an Indian CA, had private keys with values &lt;strong&gt;below 256&lt;/strong&gt;. A healthy P-384 key is a random number around 115 digits long. These could be found by trying at most 256 values, and one of them was literally the number 4.&lt;/p&gt;</description></item></channel></rss>