<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:webfeeds="http://webfeeds.org/rss/1.0"><channel><title>PhpMyFAQ (3.2.0 - 4.1.5) - CraftedSignal Threat Feed</title><link>https://feed.craftedsignal.io/products/phpmyfaq-3.2.0---4.1.5/</link><description>Trending threats, MITRE ATT&amp;CK coverage, and detection metadata. Fed continuously.</description><generator>Hugo</generator><language>en</language><managingEditor>hello@craftedsignal.io</managingEditor><webMaster>hello@craftedsignal.io</webMaster><lastBuildDate>Thu, 24 Sep 2026 20:05:37 +0000</lastBuildDate><atom:link href="https://feed.craftedsignal.io/products/phpmyfaq-3.2.0---4.1.5/feed.xml" rel="self" type="application/rss+xml"/><image><url>https://feed.craftedsignal.io/favicon-32x32.png</url><title>CraftedSignal Threat Feed</title><link>https://feed.craftedsignal.io/</link><width>32</width><height>32</height></image><webfeeds:icon>https://feed.craftedsignal.io/favicon.svg</webfeeds:icon><item><title>SQL Injection in phpMyFAQ StopWords::add()</title><link>https://feed.craftedsignal.io/briefs/2026-09-phpmyfaq-sqli/</link><pubDate>Thu, 24 Sep 2026 20:05:37 +0000</pubDate><author>hello@craftedsignal.io</author><guid isPermaLink="true">https://feed.craftedsignal.io/briefs/2026-09-phpmyfaq-sqli/</guid><description>An authenticated administrator can exploit an unescaped SQL insertion vulnerability in the phpMyFAQ StopWords::add() method (CVE-2026-56738) to execute arbitrary database commands.</description><content:encoded><![CDATA[<p>phpMyFAQ versions up to and including 4.1.5 contain a SQL injection vulnerability within the <code>StopWords::add()</code> method in <code>src/phpMyFAQ/StopWords.php</code>. The vulnerability occurs because the application uses <code>sprintf()</code> to construct SQL queries but fails to sanitize the user-supplied stop word input using the database driver's <code>escape()</code> method. While sibling methods like <code>StopWords::update()</code> correctly implement escaping, the <code>add()</code> method omits this security control, creating an inconsistency that allows authenticated administrative users to break out of the SQL string literal.</p>
<p>An attacker with administrative privileges can inject arbitrary SQL commands, such as <code>DROP TABLE</code>, <code>UNION</code>-based exfiltration, or unauthorized data modification. While the threat requires authenticated administrative access, it represents a significant risk for environments where administrative sessions may be hijacked or compromised, or where administrative credentials are shared.</p>
<h2 id="attack-chain">Attack Chain</h2>
<ol>
<li>Attacker gains access to a valid phpMyFAQ administrator session through credential theft or session hijacking.</li>
<li>Attacker logs into the phpMyFAQ administration panel.</li>
<li>Attacker navigates to the Stop Words management interface.</li>
<li>Attacker enters a malicious payload containing SQL metacharacters (e.g., <code>test', 'en'); DROP TABLE faqstopwords; --</code>) into the new stop word field.</li>
<li>The <code>StopWords::add()</code> method processes the unsanitized input via <code>sprintf()</code> and constructs a malformed SQL query.</li>
<li>The application executes the concatenated SQL statement against the backend database.</li>
<li>The database driver interprets the injected content as a legitimate second command, leading to unauthorized data exfiltration or table destruction.</li>
</ol>
<h2 id="impact">Impact</h2>
<p>Successful exploitation allows an authenticated administrator to bypass intended application logic to perform unauthorized database operations. This can lead to total loss of database integrity through table deletion, exfiltration of sensitive FAQ content or user credentials, and modification of internal application data. The vulnerability highlights a failure in input validation that persists until the application is patched to use consistent escaping or, preferably, prepared statements.</p>
<h2 id="recommendation">Recommendation</h2>
<ol>
<li>Upgrade phpMyFAQ to a version later than 4.1.5 immediately to resolve the inconsistency in the <code>StopWords::add()</code> method.</li>
<li>Audit database query patterns across the <code>StopWords</code> class to ensure consistent use of <code>escape()</code> for all input parameters concatenated into SQL strings.</li>
<li>Prioritize migrating <code>sprintf()</code>-based database interactions to parameterized or prepared statements (e.g., <code>PDO::prepare()</code>) to structurally eliminate this class of vulnerability.</li>
<li>Monitor web server logs for administrative accounts performing suspicious SQL syntax patterns (e.g., <code>UNION</code>, <code>DROP TABLE</code>) originating from the stop words management endpoints.</li>
</ol>
]]></content:encoded><category domain="severity">high</category><category domain="type">advisory</category><category>cve-2026-56737</category><category>authentication-bypass</category><category>web-security</category></item></channel></rss>