Web Application
CVE-2026-46359 high CVSS 7.5

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.

❓ Quel est le problème

phpMyFAQのCurrentUser::setTokenDataにおけるSQLインジェクション脆弱性です。

📍 Périmètre concerné

phpMyFAQのバージョン4.1.2未満。

🔥 Gravité

攻撃者が任意のSQLを実行可能になるため、システム全体が危険にさらされます。

🔧 Comment corriger

脆弱性はバージョン4.1.2で修正されているため、ソフトウェアをこのバージョンにアップデートします。

🛡️ Contournement

情報なし

🔍 Détection

Azure ADアカウントやJWTクレーム内にSQLメタ文字が含まれるアカウントを確認してください。

Paquets affectés

composer thorsten/phpmyfaq
[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"4.1.2"}]}]
composer phpmyfaq/phpmyfaq
[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"4.1.2"}]}]
Packagist thorsten/phpmyfaq
[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"4.1.2"}]}]
Packagist phpmyfaq/phpmyfaq
[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"4.1.2"}]}]

Références

Nous utilisons des cookies pour l'analyse d'audience et la mesure publicitaire. Ce réglage s'applique à tous les sites de Game co., Ltd. En savoir plus