English version →
Webアプリケーション
CVE-2026-46366 high CVSS 7.5

phpMyFAQ has unauthenticated FAQ permission bypass via getFaqBySolutionId fallback query

概要

phpMyFAQ has unauthenticated FAQ permission bypass via getFaqBySolutionId fallback query

原文の説明

取得元が公開している説明をそのまま載せています (多くは英語)。

Summary

The public /solution_id_{id}.html route calls Faq::getIdFromSolutionId() in phpmyfaq/src/phpMyFAQ/Faq.php:1312. That query joins faqdata with faqcategoryrelations solely by solution_id and returns the matching FAQ's id, lang, thema (title), and category_id with no permission filter. An unauthenticated visitor hits the route with a sequential integer and the server 301-redirects to /content////.html, leaking the FAQ's existence, internal id, language, category binding, and title via the redirect's Location header and the redirected page's canonical link, share-to-social URLs, and hidden form fields. The related getFaqBySolutionId() at line 1221 contains an explicit fallback query (added "for tests") that also bypasses the permission filter, widening the blast radius to any callsite that trusts its result.

Details

The sink: getIdFromSolutionId() has no permission filter

phpmyfaq/src/phpMyFAQ/Faq.php:1312:

public function getIdFromSolutionId(int $solutionId): array
{
    $query = sprintf(
        'SELECT fd.id, fd.lang, fd.thema AS question, fd.content, fcr.category_id
         FROM %sfaqdata fd
         LEFT JOIN %sfaqcategoryrelations fcr
           ON fd.id = fcr.record_id AND fd.lang = fcr.record_lang
         WHERE fd.solution_id = %d',
        Database::getTablePrefix(),
        Database::getTablePrefix(),
        $solutionId,
    );
    // ...
}

No WHERE-clause permission filter, no group/user filter. Ever…

出典: NIST National Vulnerability Database NVD GitHub Advisory

AI要約

外部の AI が作成した要約です。誤りを含むことがあります。重要な判断の前に、下の原文と参照URLを確認してください。

phpMyFAQのバージョン4.1.2未満には情報漏洩の脆弱性が存在します。getIdFromSolutionId()メソッド内で認証不足による権限フィルタリングが欠如しており、攻撃者が制限されたFAQ項目のタイトルを列挙可能です。この脆弱性により、認証されていない攻撃者が特定したIDを用いて制限されたFAQ情報を漏洩する可能性があります。

❓ 何が問題か

phpMyFAQのgetIdFromSolutionId()メソッドにおける情報漏洩の脆弱性です。

📍 影響範囲

phpMyFAQ バージョン4.1.2未満

🔥 重要度

認証されていない攻撃者が制限されたFAQ項目を列挙し、機密情報を漏洩する可能性があります。

🔧 修正方法

バージョンを4.1.2以上にアップデートしてください。

🛡️ 暫定回避

パッチが提供されるまで、FAQシステムへのアクセス制限を強化することが推奨されます。

🔍 検知方法

ログを確認し、予期しない/solution_id_{id}.htmlエンドポイントへのアクセスを検出します。

影響パッケージ

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"}]}]

参照URL

当サイトでは、アクセス解析と広告の効果測定のために Cookie を使います。株式会社Game のサイト共通の設定です。 詳しく