Injection SQL dans thorsten/phpmyfaq (CVE-2026-46359)
Résumé
Injection SQL dans thorsten/phpmyfaq (CVE-2026-46359). L'exploitation peut entraîner la prise de contrôle totale du système. Exploitable via sprintf. Atténuation : mise à jour vers 4.1.2 ou plus.
Description d'origine
La description telle que publiée par la source (souvent en anglais).
Summary
CurrentUser::setTokenData() in phpmyfaq/src/phpMyFAQ/User/CurrentUser.php at lines 515-534 builds a SQL UPDATE statement with sprintf and interpolates OAuth token fields (refresh_token, access_token, code_verifier, and json_encode($token['jwt'])) without calling $db->escape(). Sibling methods setAuthSource() and setRememberMe() in the same file do call $db->escape() on user-controlled values, so the omission is local to this method. An attacker (Bob) whose Azure AD display name contains a single quote (for example O'Brien, or a deliberate SQL payload) breaks out of the string literal and injects arbitrary SQL against the phpMyFAQ database.
Details
Vulnerable code (phpmyfaq/src/phpMyFAQ/User/CurrentUser.php, lines 513-534):
public function setTokenData(#[\SensitiveParameter] array $token): bool
{
$update = sprintf(
"
UPDATE
%sfaquser
SET
refresh_token = '%s',
access_token = '%s',
code_verifier = '%s',
jwt = '%s'
WHERE
user_id = %d",
Database::getTablePrefix(),
$token['refresh_token'],
$token['access_token'],
$token['code_verifier'],
json_encode($token['jwt'], JSON_THROW_ON_ERROR),
$this->getUserId(),
);
return (bool) $this->configuration->getDb()->query($update);
}
json_encode() does NOT escape single quotes. A JWT claim such as `{"preferred_username": "…
Source: NIST National Vulnerability Database NVD GitHub Advisory
Résumé IA
Rédigé par une IA externe ; il peut contenir des erreurs. Vérifiez la description d'origine et les références ci-dessous avant d'agir.
Une vulnérabilité référencée CVE-2026-46359 a été découverte dans sqli.
Des attaquants peuvent cibler un point d'entrée spécifique comme sprintf à distance pour détourner le produit.
L'exploitation peut entraîner la prise de contrôle totale du système. Score CVSS : 7.5/10.
Action : appliquez le correctif officiel de l'éditeur.
En cas de doute, contactez votre service informatique ou cherchez « sqli CVE-2026-46359 » sur le site de l'éditeur.
CVE-2026-46359 (sqli) — CWE-89 / CVSS v3 7.5
Vecteur d'attaque : distant (réseau) / non authentifié
Surface d'attaque : sprintf / refresh_token / access_token / code_verifier
Versions affectées : <= 4.1.1
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.
phpMyFAQのCurrentUser::setTokenDataにおけるSQLインジェクション脆弱性です。
phpMyFAQのバージョン4.1.2未満。
攻撃者が任意のSQLを実行可能になるため、システム全体が危険にさらされます。
脆弱性はバージョン4.1.2で修正されているため、ソフトウェアをこのバージョンにアップデートします。
情報なし
Azure ADアカウントやJWTクレーム内にSQLメタ文字が含まれるアカウントを確認してください。
Paquets affectés
Références
- advisory nvd.nist.gov
- package github.com
- web github.com
- web vulncheck.com
- web github.com
- web github.com