<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:base="https://rosecurify.com/" xml:lang="en">
	<title>Rosecurify - Blog</title>
	<subtitle>Security research, vulnerability disclosures, and application security insights.</subtitle>
	<link href="https://rosecurify.com/feed/blog.xml" rel="self"/>
	<link href="https://rosecurify.com/"/>
	<updated>2026-01-10T00:00:00Z</updated>
	<id>https://rosecurify.com</id>
	<author>
		<name>Omar Kurt</name>
		<email>securify@rosecurify.com</email>
	</author>
	
	<entry>
		<title>Two CVEs, Zero Ego: A Mailpit Story</title>
		<link href="https://rosecurify.com/two-cves-zero-ego-a-mailpit-story/"/>
		<updated>2026-01-10T00:00:00Z</updated>
		<id>https://rosecurify.com/two-cves-zero-ego-a-mailpit-story/</id>
		<content type="html">&lt;p&gt;Today I want to share a positive experience from security research, not the &amp;quot;dark side&amp;quot; but the collaboration and mutual respect side. I found two vulnerabilities in &lt;strong&gt;Mailpit&lt;/strong&gt; and how the maintainer and I worked together to fix them.&lt;/p&gt;
&lt;p&gt;As security researchers, we sometimes get perceived as the &amp;quot;bad guys.&amp;quot; But our job is actually making software more secure and helping developers. And you know what the most critical part is? &lt;strong&gt;Communication.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;My experience with &lt;a href=&quot;https://github.com/axllent&quot;&gt;Ralph Slooten&lt;/a&gt;, the Mailpit maintainer, was a textbook example of how responsible disclosure should work.&lt;/p&gt;
&lt;h2 id=&quot;what-is-mailpit&quot; tabindex=&quot;-1&quot;&gt;What is Mailpit? &lt;a class=&quot;header-anchor&quot; href=&quot;https://rosecurify.com/two-cves-zero-ego-a-mailpit-story/&quot;&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://github.com/axllent/mailpit&quot;&gt;Mailpit&lt;/a&gt; is a lightweight email testing tool designed for development environments. It works as an SMTP server, catches incoming emails, and lets you view them through a web interface. Written in Go, single binary, fast and handy. You can easily run it with Docker too. In short: an awesome tool that lets you test email flows without actually sending real emails in development.&lt;/p&gt;
&lt;h2 id=&quot;technical-details-what-did-we-find&quot; tabindex=&quot;-1&quot;&gt;Technical Details: What Did We Find? &lt;a class=&quot;header-anchor&quot; href=&quot;https://rosecurify.com/two-cves-zero-ego-a-mailpit-story/&quot;&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id=&quot;1-server-side-request-forgery-ssrf-cve-2026-21859&quot; tabindex=&quot;-1&quot;&gt;1. Server-Side Request Forgery (SSRF) - &lt;a href=&quot;https://rosecurify.com/advisories/RO-26-001-mailpit-server-side-request-forgery-ssrf/&quot;&gt;CVE-2026-21859&lt;/a&gt; &lt;a class=&quot;header-anchor&quot; href=&quot;https://rosecurify.com/two-cves-zero-ego-a-mailpit-story/&quot;&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;The first vulnerability was a classic SSRF case. Mailpit&#39;s &lt;code&gt;/api/v1/proxy&lt;/code&gt; endpoint wasn&#39;t validating user-supplied URLs properly. What does that mean?&lt;/p&gt;
&lt;pre class=&quot;language-http&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-http&quot;&gt;&lt;span class=&quot;token request-line&quot;&gt;&lt;span class=&quot;token method property&quot;&gt;GET&lt;/span&gt; &lt;span class=&quot;token request-target url&quot;&gt;/api/v1/proxy?url=http://169.254.169.254/latest/meta-data/&lt;/span&gt; &lt;span class=&quot;token http-version property&quot;&gt;HTTP/1.1&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;token header&quot;&gt;&lt;span class=&quot;token header-name keyword&quot;&gt;Host&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token header-value&quot;&gt;mailpit.target.com&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;With this simple request, you could access AWS metadata endpoints. Meaning you could reach internal network resources, databases, and APIs through a Mailpit instance running in the cloud.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Fix:&lt;/strong&gt; &lt;a href=&quot;https://github.com/axllent/mailpit/releases/tag/v1.28.1&quot;&gt;v1.28.1&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&quot;2-cross-site-websocket-hijacking-cswsh-cve-2026-22689&quot; tabindex=&quot;-1&quot;&gt;2. Cross-Site WebSocket Hijacking (CSWSH) - &lt;a href=&quot;https://rosecurify.com/advisories/RO-26-002-mailpit-cross-site-websocket-hijacking-cswsh/&quot;&gt;CVE-2026-22689&lt;/a&gt; &lt;a class=&quot;header-anchor&quot; href=&quot;https://rosecurify.com/two-cves-zero-ego-a-mailpit-story/&quot;&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;The second vulnerability was more interesting. Mailpit&#39;s WebSocket server was accepting connections from &lt;strong&gt;any origin&lt;/strong&gt;. The code looked like this:&lt;/p&gt;
&lt;pre class=&quot;language-go&quot; tabindex=&quot;0&quot;&gt;&lt;code class=&quot;language-go&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;var&lt;/span&gt; upgrader &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; websocket&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;Upgrader&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
    CheckOrigin&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;func&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;r &lt;span class=&quot;token operator&quot;&gt;*&lt;/span&gt;http&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;Request&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token builtin&quot;&gt;bool&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
        &lt;span class=&quot;token keyword&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;token boolean&quot;&gt;true&lt;/span&gt;  &lt;span class=&quot;token comment&quot;&gt;// Everyone&#39;s welcome! &lt;/span&gt;
    &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;What does this mean? An attacker could run malicious JavaScript on their own site, establish a WebSocket connection to the victim&#39;s Mailpit instance, and &lt;strong&gt;steal all email contents in real-time&lt;/strong&gt;. No authentication required.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Fix:&lt;/strong&gt; &lt;a href=&quot;https://github.com/axllent/mailpit/releases/tag/v1.28.2&quot;&gt;v1.28.2&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&quot;communication-with-the-maintainer-this-is-where-it-matters&quot; tabindex=&quot;-1&quot;&gt;Communication with the Maintainer: This is Where it Matters &lt;a class=&quot;header-anchor&quot; href=&quot;https://rosecurify.com/two-cves-zero-ego-a-mailpit-story/&quot;&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;First, I emailed Ralph and suggested he enable &lt;strong&gt;GitHub Security Advisories&lt;/strong&gt;. He enabled it right away! Then I reported the vulnerabilities through there and the process moved incredibly fast. The nice thing about this approach:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;We could communicate securely through a private channel&lt;/li&gt;
&lt;li&gt;Vulnerabilities were quickly validated and acted upon&lt;/li&gt;
&lt;li&gt;CVE processes went smoothly&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Note to developers:&lt;/strong&gt; Keep GitHub Security Advisories enabled! It&#39;s the safest and most professional way for security researchers to reach you.&lt;/p&gt;
&lt;p&gt;What impressed me most while working with Ralph: zero ego. I reported the vulnerability, he accepted it straight away, no &amp;quot;is this really a vulnerability?&amp;quot; type questions. We discussed together, he asked questions, took my input. Everything was fixed in 2-3 days. That&#39;s how simple it should be, really.&lt;/p&gt;
&lt;h2 id=&quot;takeaways&quot; tabindex=&quot;-1&quot;&gt;Takeaways &lt;a class=&quot;header-anchor&quot; href=&quot;https://rosecurify.com/two-cves-zero-ego-a-mailpit-story/&quot;&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Keep GitHub Security enabled&lt;/strong&gt;, developers need a secure communication channel&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Leave ego at the door&lt;/strong&gt;, vulnerability reports from whitehat hackers aren&#39;t personal attacks, they&#39;re contributions&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Work together&lt;/strong&gt;, researcher and developer are on the same team&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Act fast&lt;/strong&gt;, protecting your users is your responsibility&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;As security researchers, our goal isn&#39;t to break software, it&#39;s to &lt;strong&gt;make it more secure&lt;/strong&gt;. Developers like Ralph make this process enjoyable.&lt;/p&gt;
&lt;p&gt;By the way, special thanks to Ralph for being a sponsor on GitHub.&lt;/p&gt;
&lt;p&gt;See you in the next post! : &amp;gt;&lt;/p&gt;
</content>
	</entry>
	
	<entry>
		<title>What includes in this blog</title>
		<link href="https://rosecurify.com/whats-include-in-this-blog/"/>
		<updated>2026-01-01T00:00:00Z</updated>
		<id>https://rosecurify.com/whats-include-in-this-blog/</id>
		<content type="html">&lt;p&gt;Hey everyone! Welcome to &lt;strong&gt;ROsecurify&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Just wanted to give you a quick tour of what this place is all about. Basically, it&#39;s my personal corner on the internet for all things security research. so here&#39;s what you can expect to find:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Security Advisories&lt;/strong&gt;: The serious stuff. Vulnerability disclosures, CVEs, and proof-of-concept details.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Seclog&lt;/strong&gt;: My security log. Think of it as a collection of short notes, interesting links I&#39;ve found, and daily findings.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Blog Posts&lt;/strong&gt;: Longer form content where I dive into research, write tutorials, or share some insights.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Projects&lt;/strong&gt;: A showcase of the security tools and projects I&#39;m working on.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;So yeah, take a look around—hope you find something useful!&lt;/p&gt;
</content>
	</entry>
	
	<entry>
		<title>Hello 1337</title>
		<link href="https://rosecurify.com/hello-1337/"/>
		<updated>2026-01-01T00:00:00Z</updated>
		<id>https://rosecurify.com/hello-1337/</id>
		<content type="html">&lt;p&gt;Welcome to ROsecurify! This is my first post.&lt;/p&gt;
&lt;p&gt;Stay tuned for security research, vulnerability disclosures, and more.&lt;/p&gt;
</content>
	</entry>
</feed>
