<?xml version='1.0' encoding='UTF-8'?>
<?xml-stylesheet href="/static/style.xsl" type="text/xsl"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" version="2.0">
  <channel>
    <title>Most recent entries from all</title>
    <link>https://cve.radiocsirt.org</link>
    <description>Contains only the most 10 recent entries.</description>
    <docs>http://www.rssboard.org/rss-specification</docs>
    <generator>python-feedgen</generator>
    <language>en</language>
    <lastBuildDate>Tue, 06 Oct 2026 11:36:34 +0000</lastBuildDate>
    <item>
      <title>EUVD-2026-341403</title>
      <link>https://cve.radiocsirt.org/vuln/euvd-2026-341403</link>
      <description>EUVD-2026-341403</description>
      <guid isPermaLink="false">https://cve.radiocsirt.org/vuln/euvd-2026-341403</guid>
    </item>
    <item>
      <title>fkie_cve-2026-54540</title>
      <link>https://cve.radiocsirt.org/vuln/fkie_cve-2026-54540</link>
      <description>&lt;p&gt;Pheditor is a single-file editor and file manager written in PHP. Prior to version 2.0.5, there is an authenticated terminal command whitelist bypass. The terminal feature checks whether the submitted command starts with one of the configured TERMINAL_COMMANDS values, then passes the full command string to shell_exec(). Shell command substitution such as $() is not blocked, so an authenticated user with the terminal permission can bypass a restricted command allowlist and execute arbitrary shell commands as the web server user. This issue has been patched in version 2.0.5.&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;Pheditor is a single-file editor and file manager written in PHP. Prior to version 2.0.5, there is an authenticated terminal command whitelist bypass. The terminal feature checks whether the submitted command starts with one of the configured TERMINAL_COMMANDS values, then passes the full command string to shell_exec(). Shell command substitution such as $() is not blocked, so an authenticated user with the terminal permission can bypass a restricted command allowlist and execute arbitrary shell commands as the web server user. This issue has been patched in version 2.0.5.&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://cve.radiocsirt.org/vuln/fkie_cve-2026-54540</guid>
    </item>
    <item>
      <title>GHSA-9643-6xjp-vx57 — Pheditor has an authenticated terminal command whitelist bypass</title>
      <link>https://cve.radiocsirt.org/vuln/ghsa-9643-6xjp-vx57</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; Packagist: pheditor/pheditor&lt;/p&gt;
&lt;p&gt;### Summary&lt;/p&gt;
&lt;p&gt;Pheditor 2.0.4 has an authenticated terminal command whitelist bypass.&lt;/p&gt;
&lt;p&gt;The terminal feature checks whether the submitted command starts with one of the configured `TERMINAL_COMMANDS` values, then passes the full command string to `shell_exec()`. Shell command substitution such as `$()` is not blocked, so an authenticated user with the `terminal` permission can bypass a restricted command allowlist and execute arbitrary shell commands as the web server user.&lt;/p&gt;
&lt;p&gt;### Details&lt;/p&gt;
&lt;p&gt;Tested repository:&lt;/p&gt;
&lt;p&gt;https://github.com/pheditor/pheditor&lt;/p&gt;
&lt;p&gt;Tested commit:&lt;/p&gt;
&lt;p&gt;`62b43df7cb8956a9b0deb9bec278ca8676c890c5`&lt;/p&gt;
&lt;p&gt;Affected version:&lt;/p&gt;
&lt;p&gt;Pheditor 2.0.4&lt;/p&gt;
&lt;p&gt;Relevant code in `pheditor.php`:&lt;/p&gt;
&lt;p&gt;- The terminal handler receives `$_POST[&amp;#39;command&amp;#39;]` and stores it in `$command`.
- It blocks only `&amp;amp;`, `;`, and `||`.
- It checks whether `$command` starts with one of the configured values in `TERMINAL_COMMANDS`.
- It then passes the full command string to `shell_exec()`.&lt;/p&gt;
&lt;p&gt;Relevant logic:&lt;/p&gt;
&lt;p&gt;```php
$command = $_POST[&amp;#39;command&amp;#39;];&lt;/p&gt;
&lt;p&gt;if (strpos($command, &amp;#39;&amp;amp;&amp;#39;) !== false || strpos($command, &amp;#39;;&amp;#39;) !== false || strpos($command, &amp;#39;||&amp;#39;) !== false) {
    echo json_error(&amp;#34;Illegal character(s) in command (&amp;amp; ; ||)\n&amp;#34;);
    exit;
}&lt;/p&gt;
&lt;p&gt;foreach ($terminal_commands as $value) {
    $value = trim($value);&lt;/p&gt;
&lt;p&gt;if (strlen($command) &amp;gt;= strlen($value) &amp;amp;&amp;amp; substr($command, 0, strlen($value)) == $value) {
        $command_found = true;
        break;
    }
}&lt;/p&gt;
&lt;p&gt;$output = shell_exec((empty($dir) ? null : &amp;#39;cd &amp;#39; . escapeshellarg($dir) . &amp;#39; &amp;amp;&amp;amp; &amp;#39;) .…&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; Packagist: pheditor/pheditor&lt;/p&gt;
&lt;p&gt;### Summary&lt;/p&gt;
&lt;p&gt;Pheditor 2.0.4 has an authenticated terminal command whitelist bypass.&lt;/p&gt;
&lt;p&gt;The terminal feature checks whether the submitted command starts with one of the configured `TERMINAL_COMMANDS` values, then passes the full command string to `shell_exec()`. Shell command substitution such as `$()` is not blocked, so an authenticated user with the `terminal` permission can bypass a restricted command allowlist and execute arbitrary shell commands as the web server user.&lt;/p&gt;
&lt;p&gt;### Details&lt;/p&gt;
&lt;p&gt;Tested repository:&lt;/p&gt;
&lt;p&gt;https://github.com/pheditor/pheditor&lt;/p&gt;
&lt;p&gt;Tested commit:&lt;/p&gt;
&lt;p&gt;`62b43df7cb8956a9b0deb9bec278ca8676c890c5`&lt;/p&gt;
&lt;p&gt;Affected version:&lt;/p&gt;
&lt;p&gt;Pheditor 2.0.4&lt;/p&gt;
&lt;p&gt;Relevant code in `pheditor.php`:&lt;/p&gt;
&lt;p&gt;- The terminal handler receives `$_POST[&amp;#39;command&amp;#39;]` and stores it in `$command`.
- It blocks only `&amp;amp;`, `;`, and `||`.
- It checks whether `$command` starts with one of the configured values in `TERMINAL_COMMANDS`.
- It then passes the full command string to `shell_exec()`.&lt;/p&gt;
&lt;p&gt;Relevant logic:&lt;/p&gt;
&lt;p&gt;```php
$command = $_POST[&amp;#39;command&amp;#39;];&lt;/p&gt;
&lt;p&gt;if (strpos($command, &amp;#39;&amp;amp;&amp;#39;) !== false || strpos($command, &amp;#39;;&amp;#39;) !== false || strpos($command, &amp;#39;||&amp;#39;) !== false) {
    echo json_error(&amp;#34;Illegal character(s) in command (&amp;amp; ; ||)\n&amp;#34;);
    exit;
}&lt;/p&gt;
&lt;p&gt;foreach ($terminal_commands as $value) {
    $value = trim($value);&lt;/p&gt;
&lt;p&gt;if (strlen($command) &amp;gt;= strlen($value) &amp;amp;&amp;amp; substr($command, 0, strlen($value)) == $value) {
        $command_found = true;
        break;
    }
}&lt;/p&gt;
&lt;p&gt;$output = shell_exec((empty($dir) ? null : &amp;#39;cd &amp;#39; . escapeshellarg($dir) . &amp;#39; &amp;amp;&amp;amp; &amp;#39;) .…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://cve.radiocsirt.org/vuln/ghsa-9643-6xjp-vx57</guid>
    </item>
  </channel>
</rss>
