Labs
Short research notes on newly disclosed vulnerabilities: the problem, the payload, and the fix.
- highCVE-2026-49286
CVE-2026-49286: pontedilana/php-weasyprint PHAR Deserialization via Case-Insensitive Stream Wrapper Bypass
A case-sensitive blocklist in php-weasyprint lets attackers pass a PHAR archive path using mixed-case like PHAR:// to bypass the output filename guard and trigger PHP object deserialization, leading…
- high
SolidInvoice: IDOR in Symfony LiveComponents Allows Cross-User API Token and Notification Settings Access
Any authenticated user inside a SolidInvoice company can read, revoke, or hijack another user's API tokens and notification credentials by supplying a victim's entity ID to unprotected Symfony…
- highCVE-2026-49293
CVE-2026-49293: js-toml CPU Exhaustion via Quadratic BigInt Parsing
Feeding js-toml a TOML file containing a very long hex, octal, or binary integer literal causes the parser to burn CPU quadratically, letting one HTTP request block a Node.js server for tens of…
- highCVE-2026-47066
CVE-2026-47066: hackney Alt-Svc Parser Infinite Loop (DoS)
A single-byte malformed Alt-Svc response header causes hackney's parser to spin in an infinite loop, pinning an Erlang scheduler at 100% CPU and permanently hanging the connection process.
- highCVE-2026-47071
CVE-2026-47071: hackney SOCKS5 TLS Upgrade Infinite Timeout
When hackney routes an HTTPS request through a SOCKS5 proxy, the TLS handshake after the tunnel is established has no timeout, so a malicious or compromised proxy can stall the handshake forever and…
- highCVE-2026-47073
CVE-2026-47073: erlang/hackney WebSocket Unbounded Memory Consumption
A malicious WebSocket server can drain all memory from any Erlang/Elixir process using hackney's WebSocket client, crashing the BEAM node with no authentication required.
- highCVE-2026-47067
CVE-2026-47067: hackney Atom-Table Exhaustion via URL Scheme Parsing
hackney's URL parser converts every URL scheme it sees into a permanent BEAM atom, so an attacker who can supply URLs with unique scheme prefixes can exhaust the VM's 1,048,576-atom limit and crash…
- highCVE-2026-48801
CVE-2026-48801: linkify-it O(N²) DoS in match() scan loop
Sending a large block of repeated email-like text to any app that uses linkify-it (including markdown-it with linkify enabled) causes the server to burn CPU for seconds per request, making…
- highCVE-2026-48809
CVE-2026-48809: python-engineio Unauthenticated Memory Exhaustion (DoS)
An unauthenticated attacker can crash or slow down a python-engineio server by sending oversized messages that bypass the configured payload size limit, causing unbounded memory allocation.
- highCVE-2026-49260
CVE-2026-49260: php-weasyprint OS Command Injection via Binary Path
A logic error in php-weasyprint's command builder means the safety check that should quote and validate the WeasyPrint binary path is permanently bypassed, letting any shell metacharacters in that…
- critical
CVE-2026-42208: semantic-router Unbounded litellm Pin Pulls Credential-Stealing Wheel
Installing semantic-router 0.1.8 through 0.1.14 could silently pull in a backdoored version of litellm that steals every credential on the machine the moment Python starts, with no import required.
- high
muhammara NULL Pointer Dereference in LZWDecode DecodeParms Handling
Sending a crafted PDF with an LZWDecode filter and an empty DecodeParms dictionary to any app using muhammara crashes the Node.js process instantly, enabling denial of service by anyone who can…