Home doruk.ch
Blog

Building, Breaking & Learning

Security research, side projects, homelab adventures, and lessons from the journey.

How I Found That Uptime Kuma's SSTI Fix Wasn't Actually Fixed
Featured · · 12 min read

How I Found That Uptime Kuma's SSTI Fix Wasn't Actually Fixed

I use Uptime Kuma every day to monitor my homelab. While auditing the codebase as a contributor, I discovered that a previously patched SSTI vulnerability was still exploitable — leading me upstream to LiquidJS, a coordinated fix across both projects, and two published security advisories.

security cve disclosure nodejs
reviewing and hardening jsPDF fixes for PDF injection and XSS
4 min read

reviewing and hardening jsPDF fixes for PDF injection and XSS

Two CVEs in jsPDF — PDF Object Injection (CVE-2026-31898) and HTML Injection/XSS (CVE-2026-31938). I independently discovered the same vulnerabilities and helped review and harden the fixes as remediation reviewer.

security cve disclosure
i built a CLI because infomaniak didn't have one
5 min read

i built a CLI because infomaniak didn't have one

I wanted to manage my domains from the terminal. Infomaniak didn't have a CLI. So I built one — DNS management, terraform-style sync, security audits, propagation checking, and more. Open source on PyPI.

opensource cli python
4 vulnerabilities in node-mysql2 — from config injection to prototype pollution
5 min read

4 vulnerabilities in node-mysql2 — from config injection to prototype pollution

I found four related vulnerabilities in mysql2, the most popular MySQL client for Node.js. Connection option override, prototype pollution, geometry DoS, and an out-of-bounds read — all fixed within 24 hours.

security nodejs disclosure
i built a swiss departure board for our apartment's tablet
5 min read

i built a swiss departure board for our apartment's tablet

real-time SBB departures styled like the classic Swiss LED boards. live weather, news, crypto ticker, and birthday celebrations. runs on a tablet in our WG hallway.

webapp javascript opensource
i built a swiss culture quiz. it ended up on national radio.
5 min read

i built a swiss culture quiz. it ended up on national radio.

i built a quiz about how Swiss you are. it got featured on national radio, hit 10,000 quiz takers, and taught me more about product design than any course.

nextjs ai viral
i run more self-hosted services than some Swiss startups
4 min read

i run more self-hosted services than some Swiss startups

Some people collect sneakers. I collect uptime percentages. 99.9% availability on services nobody asked for.

homelab selfhosted devops
my student dorm ran on post-its and a WhatsApp chat. so i built an app.
4 min read

my student dorm ran on post-its and a WhatsApp chat. so i built an app.

Hundreds of students, one WhatsApp group, and post-it notes everywhere. I spent 7 months building witelli20 — a dorm management app with room reservations, live transport, and an anonymous confession board.

nextjs firebase opensource
why i left ETH Zurich (and why it was the best decision i've made)
6 min read

why i left ETH Zurich (and why it was the best decision i've made)

I left one of the world's best CS programs for a university nobody outside Switzerland has heard of. Everyone thought I was crazy.

education career buildinpublic
i make music and write code. so i built my own audio plugins in C++.
4 min read

i make music and write code. so i built my own audio plugins in C++.

i make music and i write code. so naturally i started building my own audio plugins in C++. 6 plugins later, here's what i learned about DSP, JUCE, and shipping creative tools.

cpp audio music
i was spending too much on protein. so i built a tracker.
5 min read

i was spending too much on protein. so i built a tracker.

i'm a student trying to hit 140g protein daily without protein powder and on a budget. i got tired of checking every product at the store, so i built a free protein tracker for Swiss stores.

webapp opensource react
i built a calculator for my linear algebra class. then my classmates started using it.
5 min read

i built a calculator for my linear algebra class. then my classmates started using it.

i was taking linear algebra at FHNW. so i built a calculator that does everything the textbook does — with step-by-step explanations. then my classmates started using it.

python education opensource
how a side project about table tennis won a startup award
5 min read

how a side project about table tennis won a startup award

I wanted better stats for Swiss table tennis. So I built TTStats — tracking 5,500+ players and 69,000+ matches. Then it won 2nd place at a startup award.

startup kotlin nextjs
from bedroom beats to 100 million streams
6 min read

from bedroom beats to 100 million streams

i started making beats in my bedroom at 17. now i have 100 million streams on Spotify, co-founded a record label, built a mastering studio, and shipped 6 audio plugins.

music spotify entrepreneurship