Root Cause AnalysisNov 10, 202617 min read

CVE-2026-125330: Cross-Workspace Session Access with a HarnessRouter Workspace Key

Root-cause analysis of CVE-2026-125330: HarnessRouter narrowed the session list to an API key's workspace, but the routes that take a session or response id checked only the organization. A workspace key that knew another workspace's session id could read, overwrite, publish and delete that session. Fixed in 0.31.7.

#vulnerability-research#access-control#ai-security#web-security
Exploit DevelopmentNov 6, 20266 min read

Stack Buffer Overflow: From Segfault to RIP Control (Ret2win)

The non-AD half of the journey: a 64-byte stack buffer, an unbounded read, and the exact steps that turn a segfault into control of the instruction pointer. Compiled live in a Linux container, with the one gotcha — the return address is not where the naive math says it is.

#exploit-development#linux-security#pentest#vulnerability-research
Patch AnalysisOct 20, 202610 min read

CVE-2026-112950: Windows Backslash Traversal in @vitest/mocker

Root-cause analysis of CVE-2026-112950: on Windows, a redirect mock path containing a backslash passes the Vite allowlist check added by the first fix and then reads a file outside the project root.

#vulnerability-research#web-security#access-control#exploit-development
Patch AnalysisOct 8, 202610 min read

CVE-2026-107716: Symlink Traversal in banks Prompt Registry

Root-cause analysis of CVE-2026-107716: DirectoryPromptRegistry in banks followed symbolic links out of its prompt directory, so a link could make it read an arbitrary file through _scan() and get(), or overwrite one through set() and index.json.

#vulnerability-research#access-control#ai-security#exploit-development
Patch AnalysisSep 30, 202611 min read

CVE-2026-102994: Unbounded Token Scanning and CPU Exhaustion in pypdf

Root-cause analysis of CVE-2026-102994: before pypdf 6.18.0, a PDF with a very long object number and no whitespace made the parser read the token to its end with no limit, which can tie up a worker for a long time.

#vulnerability-research#supply-chain#exploit-development
Root Cause AnalysisSep 24, 20269 min read

CVE-2026-91117: Uncaught ValueError on a NUL Byte in ServeStatic

Why a NUL byte that survives ServeStatic's path normalization makes its containment check raise an uncaught ValueError, so the request returns a 500 and, with Django DEBUG enabled, the technical error page.

#web-security#vulnerability-research#exploit-development
Patch AnalysisSep 16, 202614 min read

CVE-2026-87772: Root Escalation Through the Pardus About Mount Helper

Root-cause analysis of CVE-2026-87772: Pardus About's passwordless Polkit action started a root helper that mounted attached disks with defaults,ro, so a setuid binary on a disk gave a local user root. Fixed in 1.2.5.

#linux-security#privilege-escalation#access-control#vulnerability-research#exploit-development