Injection SQL dans phpmyfaq/phpmyfaq (CVE-2026-56738)
Résumé
Injection SQL dans phpmyfaq/phpmyfaq (CVE-2026-56738). Risque d'opérations non autorisées ou de divulgation. Exploitable via INSERT. Atténuation : mise à jour vers 4.1.6 ou plus.
Description d'origine
La description telle que publiée par la source (souvent en anglais).
Summary
The StopWords::add() method in phpMyFAQ builds a SQL INSERT statement using sprintf() and inserts the user-supplied stop word value directly into the query string without calling the application's database escaping function on it. A sibling method, StopWords::update(), which modifies an existing stop word, correctly escapes the same kind of input. The omission is isolated to the add() (insert) code path.
An authenticated administrator who can reach the stop-word management feature can submit a crafted value as the "word" parameter that breaks out of the SQL string literal and injects arbitrary SQL, including statements to drop tables, exfiltrate data, or modify other rows in the database.
Affected Code
File: phpmyfaq/src/phpMyFAQ/StopWords.php
Method: add() (approx. lines 60–75 in the audited revision)
$sql = sprintf(
"INSERT INTO %s VALUES(%d, '%s', '%s')",
$this->getTableName(),
$id,
$this->configuration->getDb()->escape($this->language), // language IS escaped
$word // <-- $word is NOT escaped
);
$word is taken directly from the administrative form input (the new stop word to add) and concatenated into the SQL string via sprintf("'%s'", ...) with no call to the database driver's escape() method.
Contrast with the safe sibling method
Method: update() (line 82 in the audited revision)
$this->configuration->getDb()->…
Source: NIST National Vulnerability Database NVD GitHub Advisory
Résumé généré automatiquement
Assemblé par SecPulse à partir des données sources (CVSS, CWE, versions affectées) à l'aide de modèles, sans IA. Vérifiez la description d'origine et les références ci-dessous.
Une vulnérabilité référencée CVE-2026-56738 a été découverte dans phpmyfaq/phpmyfaq.
Des attaquants peuvent cibler un point d'entrée spécifique comme INSERT à distance pour détourner le produit.
Risque d'opérations non autorisées ou de divulgation.
Action : mettez à jour phpmyfaq/phpmyfaq vers 4.1.6 ou supérieur.
En cas de doute, contactez votre service informatique ou cherchez « phpmyfaq/phpmyfaq CVE-2026-56738 » sur le site de l'éditeur.
CVE-2026-56738 (phpmyfaq/phpmyfaq) — CWE-89
Surface d'attaque : INSERT / sprintf / UNION / UPDATE
Correctif : 4.1.6 — appliquer immédiatement
Plan : 1) Audit SBOM, 2) Mise à jour staging→prod, 3) Surveillance WAF/proxy sur les endpoints affectés, 4) Recherche d'IOC dans les logs.
Réfs : voir GHSA / avis éditeur / version corrigée liés sur cette page.
Une injection SQL (CWE-89) affecte phpmyfaq/phpmyfaq. Les attaquants atteignent le code vulnérable via INSERT.
Consultez l'avis de l'éditeur pour les versions affectées de phpmyfaq/phpmyfaq. Surface d'attaque : INSERT / sprintf / UNION / UPDATE.
Gravité : ?. Risque d'opérations non autorisées ou de divulgation.
Mettre à jour vers 4.1.6.
En attendant le correctif : désactivez la fonctionnalité concernée, appliquez des règles WAF, ou restreignez l'accès par ACL réseau.
Recherchez dans les logs des requêtes correspondant aux IOC connus de cette CVE. Auditez les SBOM/dépendances.
Actions de réponse
Étapes concrètes et exemples de commandes que les équipes SOC/SRE doivent exécuter dans l'ordre
-
1Identify exposure identify
grep -r 'phpmyfaq/phpmyfaq' . | grep -v node_modulesリポジトリと本番環境の依存ファイル (package-lock.json / requirements.txt / go.sum / Gemfile.lock 等) で
phpmyfaq/phpmyfaqを grep し、稼働しているサービス・バージョンを把握する。 -
2Apply patch patch
Upgrade phpmyfaq/phpmyfaq to 4.1.6ステージング環境で 4.1.6 に上げて回帰テスト → 本番反映。回帰テストはアプリの主要ハッピーパスを含めること。
-
3Post-deployment verification verify
Confirm patched version is live in productionパッチ適用後、ステージングで PoC または同等の悪用パターンを再現して脆弱性が閉じたことを確認。本番ではアクセスログ・WAF でアラート再発が無いか継続監視。
Paquets affectés
Références
- web security-advisories@github.com
- web security-advisories@github.com
- web nvd.nist.gov
- web github.com
- web github.com