Four requests are stopped at the trust boundary. One passes through a gap in the check and reaches the system. That gap is CVE-2026-52021.
Kumar Mohit · also known as Mohit Narayan · India
Most of my work sits where untrusted code meets the system running it: secure code review, hardening containers that execute other people's code, and wiring scanners into CI so problems fail the build instead of reaching production.
Security Engineer at Appfend.
CWE-306, Missing Authentication for a Critical Function · code100x/cms · assigned by MITRE, published August 2026
The Next.js middleware guarding the mobile API tested only that an Auth-Key header was
present, never that it was correct:
if (req.headers.get('Auth-Key')) {
return NextResponse.next(); // presence is not validity
}Any arbitrary value passed the check. Handlers behind that guard then trusted a client-supplied header to decide who the caller was, so a fail-open gate plus downstream trust in client input chained into impersonation and unauthenticated reads of protected data.
flowchart LR
A["Attacker<br/>Auth-Key: anything"] --> B{"withMobileAuth<br/>middleware"}
B -->|"header is present<br/>so the check passes"| C["Route handler"]
B -.->|"value is never compared<br/>against a secret"| F["CWE-306<br/>fail-open"]
C -->|"trusts client-supplied<br/>identity header"| D[("Protected<br/>course data")]
C --> E["Impersonate<br/>any user"]
Read the full CVE-2026-52021 disclosure writeup
| Project | Contribution | Status |
|---|---|---|
| kata-containers 7.7k ★ · OpenInfra Foundation |
Firecracker VMM upgrade v1.8.0 to v1.12.1, validated end to end on a K3s cluster through the kata-fc RuntimeClass |
#11627 merged |
| kata-containers | Reported memory and CPU oversubscription failure on K3s v1.32.6 | #11617 filed |
| AutoMQ 9.6k ★ · Apache-licensed |
CWE-129 array bounds defect in ByteBufAlloc.java found via static analysis; fixed the off-by-one causing a runtime ArrayIndexOutOfBoundsException |
#3102 merged |
| AutoMQ | Replaced deprecated X509Certificate.getSubjectDN() and getIssuerDN() with X500Principal equivalents |
#3283 open |
| automq-labs | Reported duplicate credentials and inconsistent placeholders in an OpenShift Helm values example | #136 filed |
Built at Appfend, a multi-tenant platform that runs untrusted tenant code. Descriptions are capability-level; the code is the company's.
Behavioral vulnerability validator Go chromedp
A binary that proves a vulnerability is genuinely exploitable rather than merely present. It drives
real browser flows headlessly and runs differential analysis against vulnerable and patched builds
of the same target, so a finding only passes when the exploit works against one and fails against
the other.
Fail-closed LLM reverse proxy Go
A gateway in front of model backends that denies by default. Unknown routes and methods are
rejected rather than forwarded, and upstream failure surfaces as a clean error instead of leaking
the backend. The property worth having: a misconfiguration produces a closed door, not an open one.
Container hardening for untrusted workloads Docker ECR
Removed sudo, stripped SUID/SGID bits, restricted the validator binary to root-only, and moved
boot secrets behind encryption so they are not readable from a compromised tenant context.
Published the hardened base image to ECR.
LLM-as-judge code review grading Python Gitea
Automated grading of submitted pull requests against per-exercise rubrics, with a fail-safe default
so a misconfigured grader falls back to the restrictive path instead of passing everything.
DevSecOps detect-and-gate curriculum Hands-on material covering SAST, SCA, SBOM, IaC scanning, secrets detection, and artifact signing, with a four-tier verification methodology so every exercise is proven to work before it ships.
| Application security | secure code review, threat modeling, CWE/CVE mapping, exploit path development |
| Container security | hardened base images, privilege separation, Kata Containers and Firecracker microVMs, escape analysis |
| Supply chain | SBOM generation, artifact signing, dependency and IaC scanning gated in CI |
| AI/LLM security | sandboxing untrusted workloads next to models, prompt injection testing, secret isolation |
The security toolchain I actually reach for
| SAST / secrets | Semgrep, Bandit, git-secrets |
| SCA / SBOM | Trivy, Grype, Syft, pip-audit, OWASP Dependency-Check |
| IaC / images | Checkov, TFLint, Hadolint, Cosign |
| Testing | Burp Suite, Nmap, chromedp, Playwright, pytest, Hurl |
| Runtime | Kata Containers, Firecracker, runc, containerd, K3s, KVM/QEMU |
| Cloud | AWS: ECR, ECS, Lambda, DynamoDB, IAM cross-account AssumeRole |
| An Effective AI-based Model for Garbage Monitoring: An Application of Smart City | IEEE CALCON 2024, IEEE Xplore |
| CVE-2026-52021 authentication bypass disclosure | 2026 |
| Contributor: Kata Containers 4.0 | The Linux Foundation, 2026 |
| Web Application Pentesting | TryHackMe, 2024 |
| Ethical Hacking Essentials (EHE) | EC-Council, 2023 |
| Cybersecurity Analyst Professional Certificate | IBM, 2022 |
| B.Tech, Computer Science | DRIEMS University, 2025 |
Going deep on AWS security with hands-on Terraform rather than console clicking, and doing regular vulnerability research in container runtimes: runc, Kata Containers, containerd. Staying on one codebase long enough to understand it beats spraying reports across many. The CVE above came from that change of approach.
LinkedIn · TryHackMe · Credly · X · mohit724196@gmail.com





