<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>万屋猫Labs</title><link>https://yn-labs.com/en/</link><description>Recent content on 万屋猫Labs</description><generator>Hugo</generator><language>en</language><lastBuildDate>Thu, 02 Apr 2026 00:00:00 +0900</lastBuildDate><atom:link href="https://yn-labs.com/en/index.xml" rel="self" type="application/rss+xml"/><item><title>Building a Bridge-Free ProtonMail MCP Server</title><link>https://yn-labs.com/en/posts/protonmail-mcp/</link><pubDate>Thu, 02 Apr 2026 00:00:00 +0900</pubDate><guid>https://yn-labs.com/en/posts/protonmail-mcp/</guid><description>&lt;h2 id="the-problem"&gt;The Problem&lt;/h2&gt;
&lt;p&gt;Every existing ProtonMail MCP server requires Proton Bridge — a paid desktop app. Free ProtonMail users have no way to integrate their email with AI assistants.&lt;/p&gt;
&lt;p&gt;I found 11 existing ProtonMail MCP projects on GitHub. All of them require Bridge.&lt;/p&gt;
&lt;h2 id="the-solution"&gt;The Solution&lt;/h2&gt;
&lt;p&gt;I built &lt;a href="https://github.com/ichiburn/protonmail-mcp"&gt;protonmail-mcp&lt;/a&gt; — a Go MCP server that talks directly to Proton&amp;rsquo;s API using only their official open-source libraries:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://github.com/ProtonMail/go-proton-api"&gt;go-proton-api&lt;/a&gt;&lt;/strong&gt; — The same library used by Proton Bridge itself&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://github.com/ProtonMail/go-srp"&gt;go-srp&lt;/a&gt;&lt;/strong&gt; — SRP authentication&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://github.com/ProtonMail/gopenpgp"&gt;gopenpgp&lt;/a&gt;&lt;/strong&gt; — PGP encryption/decryption&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;No third-party API wrappers. No supply chain risk from unknown packages handling your passwords and private keys.&lt;/p&gt;</description></item><item><title>Disclosure under the Specified Commercial Transactions Act</title><link>https://yn-labs.com/en/legal/tokushoho/</link><pubDate>Thu, 02 Apr 2026 00:00:00 +0900</pubDate><guid>https://yn-labs.com/en/legal/tokushoho/</guid><description>&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Item&lt;/th&gt;
 &lt;th&gt;Details&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;Business Name&lt;/td&gt;
 &lt;td&gt;Yorozuya Neko Labs (万屋猫Labs)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Contact&lt;/td&gt;
 &lt;td&gt;&lt;a href="mailto:contact@yn-labs.com"&gt;contact@yn-labs.com&lt;/a&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Pricing&lt;/td&gt;
 &lt;td&gt;See &lt;a href="https://yn-labs.com/en/services/"&gt;Services&lt;/a&gt; page&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Payment Method&lt;/td&gt;
 &lt;td&gt;Bank transfer&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Payment Terms&lt;/td&gt;
 &lt;td&gt;Invoiced after delivery, due within 30 days&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Service Delivery&lt;/td&gt;
 &lt;td&gt;Per agreed timeline after contract&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Cancellation Policy&lt;/td&gt;
 &lt;td&gt;No refund after work begins. Full refund if cancelled before work starts&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Representative&lt;/td&gt;
 &lt;td&gt;Ichiburn (Yorozuya Neko Labs)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Address / Phone&lt;/td&gt;
 &lt;td&gt;Disclosed upon request without delay&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;</description></item><item><title>KalmarCTF 2026 RootBabyKalmarCTF Writeup — Zip Slip (CVE-2026-30345) for CTFd Root</title><link>https://yn-labs.com/en/writeups/ctf/kalmarctf-2026-rootbabykalmarctf-zip-slip/</link><pubDate>Sun, 29 Mar 2026 00:00:00 +0900</pubDate><guid>https://yn-labs.com/en/writeups/ctf/kalmarctf-2026-rootbabykalmarctf-zip-slip/</guid><description>&lt;h2 id="overview"&gt;Overview&lt;/h2&gt;
&lt;p&gt;KalmarCTF 2026 Web challenge &amp;ldquo;RootBabyKalmarCTF&amp;rdquo; (170pts).&lt;br&gt;
A CTFd 3.8.1 instance is provided with admin credentials for the management panel.&lt;br&gt;
The goal is to read &lt;code&gt;/flag2-&amp;lt;random&amp;gt;.txt&lt;/code&gt; as &lt;strong&gt;root&lt;/strong&gt;, not admin.&lt;/p&gt;
&lt;h2 id="vulnerability"&gt;Vulnerability&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;CVE-2026-30345: CTFd 3.8.1 Zip Slip (Path Traversal)&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;/admin/import&lt;/code&gt; backup import function checks if ZIP file entry names contain &lt;code&gt;..&lt;/code&gt;.&lt;br&gt;
However, the check can be bypassed using the &lt;code&gt;uploads//absolute/path&lt;/code&gt; format (double slash).&lt;/p&gt;
&lt;h3 id="the-check"&gt;The Check&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;for&lt;/span&gt; f &lt;span style="color:#f92672"&gt;in&lt;/span&gt; members:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;if&lt;/span&gt; f&lt;span style="color:#f92672"&gt;.&lt;/span&gt;startswith(&lt;span style="color:#e6db74"&gt;&amp;#34;/&amp;#34;&lt;/span&gt;) &lt;span style="color:#f92672"&gt;or&lt;/span&gt; &lt;span style="color:#e6db74"&gt;&amp;#34;..&amp;#34;&lt;/span&gt; &lt;span style="color:#f92672"&gt;in&lt;/span&gt; f:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;raise&lt;/span&gt; zipfile&lt;span style="color:#f92672"&gt;.&lt;/span&gt;BadZipfile
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="the-bypass"&gt;The Bypass&lt;/h3&gt;
&lt;p&gt;Entry name: &lt;code&gt;uploads//opt/CTFd/manage.py&lt;/code&gt;&lt;/p&gt;</description></item><item><title>About</title><link>https://yn-labs.com/en/about/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://yn-labs.com/en/about/</guid><description>&lt;h1 id="about-yorozuya-neko-labs"&gt;About Yorozuya Neko Labs&lt;/h1&gt;
&lt;img src="https://yn-labs.com/images/ichiburn_icon.png" alt="Ichiburn" class="w-24 h-24 rounded-full border-2 border-chrome shadow-metal mb-6"&gt;
&lt;h2 id="who-is-ichiburn"&gt;Who is Ichiburn?&lt;/h2&gt;
&lt;p&gt;Sole proprietor specializing in AI automation and security.&lt;br&gt;
&amp;ldquo;Yorozuya&amp;rdquo; (万屋) means &amp;ldquo;general store&amp;rdquo; — we solve any technical challenge you throw at us.&lt;/p&gt;
&lt;h3 id="skills"&gt;Skills&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;AI Automation&lt;/strong&gt;: MCP Development, LLM Integration, AI Workflow Automation&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Security&lt;/strong&gt;: Bug Bounty, Web Pentesting, CTF (Pwn/Web), Security Review Automation&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Infrastructure&lt;/strong&gt;: Terraform, Cloudflare, AWS, OCI, Docker, GitHub Actions&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Development&lt;/strong&gt;: Go, Rust, Python, TypeScript, Next.js, .NET&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="oss"&gt;OSS&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/ichiburn/protonmail-mcp"&gt;protonmail-mcp&lt;/a&gt; — Bridge-free ProtonMail MCP server for AI assistants&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="contact"&gt;Contact&lt;/h3&gt;
&lt;p&gt;Reach out via &lt;a href="https://yn-labs.com/en/services/"&gt;the inquiry form&lt;/a&gt; or &lt;a href="mailto:contact@yn-labs.com"&gt;contact@yn-labs.com&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Services</title><link>https://yn-labs.com/en/services/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://yn-labs.com/en/services/</guid><description/></item></channel></rss>