Web Application
CVE-2026-46366 high CVSS 7.5

Authorization Flaw in thorsten/phpmyfaq (CVE-2026-46366)

Summary

Vulnerability in thorsten/phpmyfaq (CVE-2026-46366). Confidential information can be exposed externally. Exploitable via faqdata. Mitigation: upgrade to 4.1.2 or later.

Original description

The description as published by the source.

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…

Source: NIST National Vulnerability Database NVD GitHub Advisory

AI summary

Written by an external AI model and may contain mistakes. Check the original description and references below before acting on it.

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

❓ What is the problem

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

📍 Affected scope

phpMyFAQ バージョン4.1.2未満

🔥 Severity

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

🔧 How to fix

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

🛡️ Workaround

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

🔍 Detection

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

Affected packages

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

References

We use cookies for analytics and ad measurement. This setting applies to all Game co., Ltd. sites. Details