Skip to content

Back to the catalog

Orca: CVE-2026-45034 PhpSpreadsheet RCE Patch Bypass
orca.securityadvisory

Orca: CVE-2026-45034 PhpSpreadsheet RCE Patch Bypass

Orca Security details CVE-2026-45034 (CVSS 9.8), a bypass of PhpSpreadsheet's File::prohibitWrappers() protection that was originally added to fix CVE-2026-34084. A crafted path with three or more slashes after the scheme (e.g. phar:///path/exploit.phar/dummy.csv) causes PHP's parse_url() to return false instead of a scheme string, skipping the is_string($scheme) check while PHP's stream layer still treats the path as a phar wrapper, enabling automatic phar deserialization via IOFactory::load() and full RCE on PHP 7.x (file-read primitive on PHP 8.x, with RCE restored if Phar::getMetadata() is later called). All 1.x versions through 1.30.4 are affected; PhpSpreadsheet 1.30.5 patches the issue, and the post recommends replacing parse_url()-based checks with str_contains($filename, '://') validation.

TL;DR PhpSpreadsheet's phar-wrapper protection (fix for CVE-2026-34084) is bypassed via a parse_url() triple-slash quirk, enabling unauthenticated RCE — patched in 1.30.5 (CVE-2026-45034).

Organisations named here

  • @everping
  • phar deserialization

CVEs named here

  • CVE-2026-45034
  • CVE-2026-34084

Technologies named here

  • Orca
  • phpoffice/phpspreadsheet
  • exploit.phar
  • PHP

Techniques named here

  • Stream wrapper detection bypass via parse_url quirk
  • Phar metadata deserialization
  • File read primitive via phar wrapper