<?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://vulnerability.circl.lu/rss/recent/all/10</id>
  <title>Most recent entries from all</title>
  <updated>2026-10-02T12:10:51.659846+00:00</updated>
  <author>
    <name>Vulnerability-Lookup</name>
    <email>info@circl.lu</email>
  </author>
  <link href="https://vulnerability.circl.lu" 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://vulnerability.circl.lu/vuln/fkie_cve-2026-55578</id>
    <title>fkie_cve-2026-55578</title>
    <updated>2026-10-02T12:10:51.872128+00:00</updated>
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>Pheditor is a single-file editor and file manager written in PHP. From version 2.0.1 to before version 2.0.6, the terminal feature in Pheditor uses an incomplete character blocklist to sanitize user-supplied commands before passing them to shell_exec(). After the fix for GHSA-9643-6xjp-vx57 (which added $ to the blocklist), the characters | (single pipe), ` (backtick), and the newline byte (0x0A) remain unblocked. An authenticated user with the terminal permission (enabled by default) can leverage any of these to bypass the TERMINAL_COMMANDS allowlist and execute arbitrary OS commands as the web server user. This issue has been patched in version 2.0.6.</p>
      </div>
    </content>
    <link href="https://vulnerability.circl.lu/vuln/fkie_cve-2026-55578"/>
  </entry>
  <entry>
    <id>https://vulnerability.circl.lu/vuln/ghsa-wg4w-wr5q-6vjc</id>
    <title>GHSA-wg4w-wr5q-6vjc — Pheditor: Incomplete command sanitization in terminal feature allows RCE via pipe operator, backtick substitution, and…</title>
    <updated>2026-10-02T12:10:51.872359+00:00</updated>
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml"><p><strong>Affected:</strong> Packagist: pheditor/pheditor</p>
<p>### Summary</p>
<p>The terminal feature in Pheditor uses an incomplete character blocklist to sanitize user-supplied commands before passing them to `shell_exec()`. After the fix for GHSA-9643-6xjp-vx57 (which added `$` to the blocklist), the characters `|` (single pipe), `` ` `` (backtick), and the newline byte (`0x0A`) remain unblocked. An authenticated user with the `terminal` permission (enabled by default) can leverage any of these to bypass the `TERMINAL_COMMANDS` allowlist and execute arbitrary OS commands as the web server user.</p>
<p>### Details</p>
<p>Tested repository: https://github.com/pheditor/pheditor</p>
<p>Tested commit: `e538f05b6faec99e5b23726bc9c17d6b57774297` (current HEAD on `main`)</p>
<p>Affected version: Pheditor 2.0.1+</p>
<p>The terminal handler receives `$_POST['command']` and passes it to `shell_exec()` at `pheditor.php:586`:</p>
<p>```php
$output = shell_exec((empty($dir) ? null : 'cd ' . escapeshellarg($dir) . ' &amp;&amp; ') . $command . ' &amp;&amp; echo \ ; pwd');
```</p>
<p>The blocklist at `pheditor.php:557` checks for `&amp;`, `;`, `||`, and `$`, but does not block `|`, `` ` ``, or newline (`0x0A`):</p>
<p>```php
if (strpos($command, '&amp;') !== false || strpos($command, ';') !== false || strpos($command, '||') !== false || strpos($command, '$') !== false) {
    echo json_error("Illegal character(s) in command (&amp; ; ||)\n");
    exit;
}
```</p>
<p>The `TERMINAL_COMMANDS` prefix check at `pheditor.php:566-573` only validates that the command starts with an allowed name. All three bypasses start with a whitelisted command…</p></div>
    </content>
    <link href="https://vulnerability.circl.lu/vuln/ghsa-wg4w-wr5q-6vjc"/>
  </entry>
</feed>
