<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Byte on Christoph Kemetmüller</title><link>https://xn--kemetmller-feb.com/categories/byte/</link><description>Recent content in Byte on Christoph Kemetmüller</description><generator>Hugo -- gohugo.io</generator><language>en</language><copyright>© 2026 Christoph Kemetmüller</copyright><lastBuildDate>Sat, 31 Oct 2026 00:45:37 +0100</lastBuildDate><atom:link href="https://xn--kemetmller-feb.com/categories/byte/index.xml" rel="self" type="application/rss+xml"/><item><title>Hacked Tor exits intercepted SSH logins and planted Ebury backdoors</title><link>https://xn--kemetmller-feb.com/blog/hacked-tor-exits-intercepted-ssh-logins/</link><pubDate>Sat, 31 Oct 2026 00:44:52 +0100</pubDate><guid>https://xn--kemetmller-feb.com/blog/hacked-tor-exits-intercepted-ssh-logins/</guid><description>&lt;p&gt;On 5 October &lt;a href="https://lists.torproject.org/mailman3/hyperkitty/list/tor-relays@lists.torproject.org/thread/WOHPLKCSHYXFTBRZXDENDKJZMBMPLMG5/" target="_blank" rel="noreferrer"&gt;the Tor Project warned relay operators&lt;/a&gt; that hacked Linux relays had been turned into exits to intercept SSH connections.&#10;&lt;a href="https://kaba.cx/posts/20261020_Tor/" target="_blank" rel="noreferrer"&gt;kaba.cx found them&lt;/a&gt; by pinning each of the roughly 3,000 exits with exitmap: 333 exits, a tenth of all exits, redirected port 22 to one of 12 interception servers.&#10;Click past the host-key warning and they steal your password, watch the session and install the Ebury OpenSSH backdoor over a second connection.&#10;&lt;a href="https://lists.torproject.org/mailman3/hyperkitty/list/tor-relays@lists.torproject.org/thread/QHRD6YOX6RZRDR7NCHNDO7GLCEA6VFM6/" target="_blank" rel="noreferrer"&gt;One affected operator&amp;rsquo;s timeline&lt;/a&gt; blames one password for SSH, sudo and the backup passphrase, in cleartext in a helper script.&#10;Their Ebury 1.8.3 is newer than ESET&amp;rsquo;s public IOCs and sails past &lt;code&gt;dpkg -V&lt;/code&gt;, because it drops its own setuid library and re-points a symlink.&#10;&lt;a href="https://lists.torproject.org/mailman3/hyperkitty/list/tor-relays@lists.torproject.org/thread/RXWGWYYYKBDEBNXC2C3NYIQ2HHHWXL7O/" target="_blank" rel="noreferrer"&gt;Marc-Etienne M. Léveillé replied&lt;/a&gt; that 1.8.3 has been around since at least June 2026 and, with some 400,000 servers backdoored between 2009 and 2023, more relays are most likely compromised.&#10;The new exit policies also closed IMAPS and POP3S, so mail only crossed those relays in cleartext, and it all started on a Friday morning, presumably betting on a quiet weekend.&lt;/p&gt;</description></item><item><title>Hackers took 300 GB from the AfD's provider in two visits</title><link>https://xn--kemetmller-feb.com/blog/afd-hack/</link><pubDate>Sat, 31 Oct 2026 00:44:52 +0100</pubDate><guid>https://xn--kemetmller-feb.com/blog/afd-hack/</guid><description>&lt;p&gt;&lt;a href="https://www.lilithwittmann.de/blog/afd-hack-2026/" target="_blank" rel="noreferrer"&gt;Lilith Wittmann reconstructs&lt;/a&gt; (in German) how about 300 GB left Alternita, the party-owned provider that runs more than 300 AfD domains.&#10;According to the hackers and the provider&amp;rsquo;s circle, the way in was a poorly protected WordPress at &lt;code&gt;wahlkampf.afd.de&lt;/code&gt;, where they installed a plugin (WP-Console) for a shell; they reset officials&amp;rsquo; mailbox passwords and pulled mail out via one-click hosters and IMAP batch requests.&#10;The intrusion was noticed on 9 September after about 180 GB, but by the hackers&amp;rsquo; account the code they left behind was not, and they came back on 14 September for another 120 GB.&#10;&lt;a href="https://www.afd.de/afd-zum-daten-hack-angriff-auf-parteiensystem-und-demokratie/" target="_blank" rel="noreferrer"&gt;The AfD&amp;rsquo;s own statement&lt;/a&gt; dates the attack to late September and blames the scandals on a crude AI keyword search.&#10;The dump includes member-database extracts and register-office data on first-time voters in Mecklenburg-Vorpommern, which registry offices had emailed unencrypted, and the party&amp;rsquo;s claim that it informed the data-protection authority immediately sits awkwardly with the Berlin authority logging the report at 18:59, two hours after the 16:51 press release.&lt;/p&gt;</description></item><item><title>Cursor's marketplace served a backdoored Claude Code extension</title><link>https://xn--kemetmller-feb.com/blog/claude-code-vscode-extension-backdoor/</link><pubDate>Fri, 30 Oct 2026 15:18:55 +0100</pubDate><guid>https://xn--kemetmller-feb.com/blog/claude-code-vscode-extension-backdoor/</guid><description>&lt;p&gt;&lt;a href="https://phorion.io/blog/offical-claude-code-vsx-compromise/" target="_blank" rel="noreferrer"&gt;Calum Hall at Phorion found&lt;/a&gt; an SSH backdoor in version 2.1.313 of the Claude Code extension and reported it as an Open VSX compromise.&#10;&lt;a href="https://cursor.com/blog/claude-code-extension-security-notice" target="_blank" rel="noreferrer"&gt;Cursor&amp;rsquo;s notice&lt;/a&gt;, dated 29 October, traces it to Cursor&amp;rsquo;s marketplace instead, says Anthropic did not build that version and counts at most 5,000 users.&#10;&lt;a href="https://opensourcemalware.com/blog/trojanized-claude-code-extension-plants-persistent-ssh-backdoor" target="_blank" rel="noreferrer"&gt;OpenSourceMalware&lt;/a&gt; shows a 66-line loader prepended to &lt;code&gt;extension.js&lt;/code&gt; that runs when the extension starts, no Claude prompt needed.&#10;It appends an Ed25519 key labelled &lt;code&gt;svc-telemetry&lt;/code&gt; to &lt;code&gt;~/.ssh/authorized_keys&lt;/code&gt;, tries to switch on SSH, opens a reverse tunnel to 134.209.82.225 and persists through a LaunchAgent, an &lt;code&gt;@reboot&lt;/code&gt; cron entry or a &lt;code&gt;SysMon&lt;/code&gt; scheduled task.&#10;It also beacons hostname, user, Git email and the names of environment variables that smell like secrets.&lt;/p&gt;&#10;&lt;p&gt;Uninstalling the extension won&amp;rsquo;t remove the backdoor.&#10;If 2.1.313 ever loaded, look for the &lt;code&gt;svc-telemetry&lt;/code&gt; key, isolate the host, run Cursor&amp;rsquo;s remediation scripts and rotate every credential the account could reach, from a clean machine.&#10;&lt;a href="https://x.com/cursor_ai/status/2116074289053175808" target="_blank" rel="noreferrer"&gt;Cursor asks&lt;/a&gt; all users to update to 2.1.314.&#10;OpenSourceMalware recommends rebuilding the host, sensible for a laptop that may have offered port 22 to a stranger.&lt;/p&gt;&#10;&lt;blockquote&gt;&lt;p&gt;Between about 2:27am PT and 1:35pm PT today, a maliciously modified version of Anthropic’s Claude Code extension was made available in the Cursor VS Code extension Marketplace.&lt;/p&gt;&#10;&lt;p&gt;— &lt;a href="https://cursor.com/blog/claude-code-extension-security-notice" target="_blank" rel="noreferrer"&gt;cursor.com&lt;/a&gt;&lt;/p&gt;&#10;&lt;/blockquote&gt;</description></item><item><title>eMudhra's CA keys fit in a byte, and curl and Node still trusted them</title><link>https://xn--kemetmller-feb.com/blog/emudhra-weak-ca-keys/</link><pubDate>Sun, 25 Oct 2026 11:00:00 +0100</pubDate><guid>https://xn--kemetmller-feb.com/blog/emudhra-weak-ca-keys/</guid><description>&lt;p&gt;eMudhra was supposed to protect eight intermediate CAs with random P-384 private keys.&#10;&lt;a href="https://lilting.ch/en/articles/emudhra-weak-intermediate-ca-keys" target="_blank" rel="noreferrer"&gt;Ikesan recovered all of them&lt;/a&gt; from the public certificates by trying every integer from 1 to 255, which took 29 ms (EM OV TLS CA - G3C uses the key 4).&#10;The reporter had &lt;a href="https://emudhra.we-have-a-problem.com/" target="_blank" rel="noreferrer"&gt;proved the compromise&lt;/a&gt; on 17 October by signing &amp;ldquo;We have a problem here&amp;rdquo; with all eight keys.&#10;In the &lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=2083449" target="_blank" rel="noreferrer"&gt;Bugzilla incident&lt;/a&gt;, eMudhra blames a code flaw in its April 2025 key ceremony that created a second, weaker key pair on the HSM, which ended up in the CSR because the key labels looked alike.&#10;It has since decided to exit the public TLS business, which seems fair.&lt;/p&gt;&#10;&lt;p&gt;Browsers were covered by CRLSet, OneCRL (&lt;a href="https://db.gcve.eu/vuln/CVE-2026-113470" target="_blank" rel="noreferrer"&gt;CVE-2026-113470&lt;/a&gt;, fixed in Firefox 158.0.1) and Certificate Transparency.&#10;Clients with their own trust store were not: Ikesan got HTTP 200 from macOS curl 8.7.1 and Node.js 25.3.0, and &lt;a href="https://scotthelme.co.uk/eight-bits-of-trust-emudhras-ca-keys-cracked-in-milliseconds/" target="_blank" rel="noreferrer"&gt;Scott Helme&amp;rsquo;s forged &lt;code&gt;api.stripe.com&lt;/code&gt; certificate&lt;/a&gt; passed in curl, Python and Node.&#10;Update Node (26.12.1, 24.22.1, 22.23.4), uv (0.13.5) and your CA bundles, because the intermediates are valid until 2039.&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;Update 2026-10-30:&lt;/strong&gt; In a &lt;a href="https://www.youtube.com/watch?v=NDgS__J1U-M" target="_blank" rel="noreferrer"&gt;25-minute Computerphile video&lt;/a&gt;, Dr Tim Muller walks through what goes wrong when a private key that should be a random 120-digit number is 4.&#10;As the description puts it, you actually have to work quite hard to get there.&lt;/p&gt;</description></item></channel></rss>