Labs
Short research notes on newly disclosed vulnerabilities: the problem, the payload, and the fix.
- highCVE-2026-78680
CVE-2026-78680: NLTK Uncontrolled Search Path via Graphviz dot Binary
NLTK's dependency graph renderer and translation SVG preview both invoke the Graphviz 'dot' program by bare name, letting an attacker substitute their own executable by planting a file called 'dot'…
- criticalCVE-2026-79675
CVE-2026-79675: NLTK JVM Argument Injection via Per-Call Options (Stanford Wrappers)
NLTK's Stanford NLP wrapper classes let attackers inject dangerous JVM flags directly into subprocess calls, bypassing the existing safety check and enabling arbitrary code execution on the host.
- high
league/commonmark AttributesExtension on* Filter Bypass via U+000C Form Feed (XSS)
A U+000C form-feed byte in an attribute name tricks league/commonmark's AttributesExtension into passing event-handler attributes like onclick and onerror through its security filter, letting…
- high
pnpm Environment Secret Exfiltration via Proxy Settings in pnpm-workspace.yaml
Cloning a malicious repository and running pnpm install can leak environment secrets like NPM_TOKEN or GITHUB_TOKEN to an attacker-controlled server, because pnpm expanded ${VAR} placeholders in…
- highCVE-2026-73086
CVE-2026-73086: nanoid Integer Overflow Corrupts CSPRNG Pool
Passing a size of 2147483648 or larger to nanoid() silently corrupts the shared random-number pool for the entire Node.js process, causing every ID generated afterward to be the predictable string…
- high
pnpm pacquet: Trust-Lockfile Dependency Alias Path Traversal
A crafted dependency alias in a pnpm lockfile can trick pacquet into creating symlinks outside the project boundary when running with --trust-lockfile or a frozen lockfile.
- high
mlflow statsmodels flavor MLFLOW_ALLOW_PICKLE_DESERIALIZATION bypass RCE
A crafted MLflow model artifact using the statsmodels flavor can trigger arbitrary code execution on load, even when the MLFLOW_ALLOW_PICKLE_DESERIALIZATION=False safety control is enabled, because…
- high
mysql2: Auth Plugin Downgrade Leaks Plaintext Credentials
A rogue MySQL server or network attacker can trick the mysql2 Node.js driver into sending your database password in plaintext by requesting a switch to the mysql_clear_password auth plugin, which the…
- highCVE-2026-73089
CVE-2026-73089: browserslist Unbounded Cache Memory Exhaustion (DoS)
Browserslist's result and parse caches grow forever with no size limit, so an attacker who can vary query strings across many requests can slowly exhaust a server's heap and crash it.
- highCVE-2026-71415
CVE-2026-71415: Kirby CMS Unauthenticated Chunked Upload Storage Exhaustion
A low-privilege Kirby CMS user with panel access but no file upload permissions could repeatedly send partial chunked upload requests to fill the server's temporary upload directory, potentially…
- highCVE-2026-59724
CVE-2026-59724: engine.io WebTransport Prototype Lookup DoS
Engine.IO servers with WebTransport enabled can be crashed by an unauthenticated attacker who sends a session ID of __proto__, tricking the server into reading a prototype property instead of a real…
- highCVE-2026-81889
CVE-2026-81889: elFinder SSRF Protection Bypass via DNS Rebinding
elFinder's URL upload feature can be tricked into fetching content from internal servers by exploiting a gap between DNS validation and the actual socket connection, letting attackers read private…