Skip to content
KitploitKITPLOIT
FerramentasExploitsBlog
Log in
Enviar
FerramentasExploitsBlog
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.

FeedsContatoPrivacidade© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
opnsense-uidfield-system-uid0 — OPNsense 26.7.6 - Alta - Remota - Privilégio remanescente - UidField uid 0 | Kitploit
Ferramentas/GitHubGitHub/abraxas/opnsense-uidfield-system-uid0
Autenticação e AutorizaçãoEscalada de PrivilégiosAnálise de VulnerabilidadesExploraçãoVirtualização para SegurançaSegurança WebTestes de PenetraçãoLabs e Prática

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 →
Compartilhar
GitHubabraxas/opnsense-uidfield-system-uid0

opnsense-uidfield-system-uid0

OPNsense 26.7.6 - Alta - Remota - Privilégio remanescente - UidField uid 0

Ver Repositório
há 2 diasAinda não revisado

Abraxas Labs - opnsense-uidfield-system-uid0

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  opnsense-uidfield-system-uid0

opnsense-uidfield-system-uid0

Classe: Privilégio remanescente Alcance: Remoto

OPNsense core 26.7.6 (a842fe48) - opnsense.org

Delegado page-system-usermanager em duas etapas scope=system e depois uid=0. UidField::setValue atribui automaticamente 2000+ apenas enquanto o escopo não for system. setNodes aplica uid antes de scope, então uma adição não consegue marcar 0. O segundo POST consegue. auth sync user então pw useradd -o -u 0 com home /root e grupo wheel. As chaves autorizadas ficam em /root/.ssh/authorized_keys. O privilégio é System: Access: Management, não page-all.

IDsem CVE ainda
ClassePrivilégio remanescente
AlcanceRemoto (WebGUI autenticado / chave da API Local)
CWECWE-269 / CWE-284
CVSSAlto: 8.8 CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
ProdutoOPNsense core (Deciso B.V.)
AfetadoOPNsense core 26.7.6 (a842fe48c21288d11a422cb944678e8eb308becf) UidField / user-manager
AutenticaçãoSessão WebGUI ou chave da API Local com page-system-usermanager
LicençaGNU Affero GPL v3.0
Labapenas 127.0.0.1

Fixe a tag 26.7.6 "Xenial Xenops". O lab é um gadget PHP do UidField::setValue fixado mais local_user_set, identidade loopback 127.0.0.1:18810. stable/26.7 reverteu a escrita de UID-0 como ea4f01fe em 2026-10-09. Essa reversão não é este pin. Sem GHSA.

O que um atacante pode fazer

MétodoSinkPrivilégio
adição em duas etapas scope=system depois definir uid=0 depois auth sync userfixar UidField::setValue depois stub pw useradd -o -u 0 (auth.inc:345-397)Integridade (comprovado em lab): segundo UID Unix 0, home /root, grupo wheel. Lab: after-add=2000 after-set=0 pw-o-u0=yes.
mesmo set + authorizedkeysfile_put_contents /root/.ssh/authorized_keys (auth.inc:407-416)Integridade (comprovado em lab): testemunha em /root/.ssh/authorized_keys.
SSH com esse nome se o sshd estiver ativo (AllowGroups wheel; PermitRootLogin não se aplica a um nome de usuário não-root)sshdRecon + integridade (inferido): login com o novo nome wheel, ler /root. O gadget não iniciou o sshd.
mesmos POSTs com scope=user uid=0UidField atribui automaticamente 2000+Negativo (comprovado em lab): uid permanece 2000. scope-user-uid0-ignored=yes.
set uuid do root padrão uid=80pw usermod -u 80Integridade + disponibilidade (inferido): mover o root padrão para fora do UID 0. O gadget não fez usermod do root.
set uuid do root name=hax + scope=userverificação de renomeação ignorada; auth sync user no novo nomeIntegridade (inferido): renomeação de usuário de sistema que a verificação do 26.7.6 deveria impedir.

Comprovado em lab vs inferido: UID 0 em duas etapas, pw useradd -o -u 0, caminho das chaves e ignorar scope=user são SUCCESS no lab. Aceitação do sshd ao vivo e usermod/renomeação do root padrão são inferidos. Gadget, não uma VM OPNsense completa.

Requer: sessão WebGUI ou chave da API Local com page-system-usermanager. CSRF no caminho da sessão. Não page-all. O config.xml.sample padrão só concede page-all ao grupo admins.

Superfície adjacente que permanece fechada

SuperfícieLab
POST /api/auth/user/* sem page-system-usermanagerACL fechada
user-config-readonlysave() ainda throwReadOnly()
Upload de CSVremove uid/scope
CVE-2026-44194 email-as-shellmwexecf %s + regex de email
Página de senhavinculada à sessão
page-all fazendo o mesmo POSTrecurso do changelog neste pin
Não autenticadofechado
su do Unix com * em master.passwdhash da GUI permanece em config.xml a menos que o instalador force

Sem não autenticado. Sem necessidade de page-all. O 26.7.6 apresentava UID escolhido para usuários de escopo system como um recurso de admin. A caminhada sem correspondência é um user-manager delegado sem page-all.

Lab

cd lab
./run.sh

Loopback 127.0.0.1:18810. Projeto Compose opnsense-uidfield-system-uid0. Imagem do pin 26.7.6. Testemunha OPNSENSE-UIDFIELD-SYSTEM-UID0-WITNESS. Última linha:

SUCCESS opnsense-uidfield-system-uid0 two-step-uid=0 scope-user-uid0-ignored=yes pw-o-u0=yes keys=/root/.ssh/authorized_keys OPNSENSE-UIDFIELD-SYSTEM-UID0-WITNESS

A correção

Rejeitar UID 0 (e UIDs de serviço em conflito) a menos que o chamador seja um admin completo. Aplicar scope antes de uid em setNodes, ou recusar um POST que altere ambos. Manter a verificação de renomeação do 26.7.6 no escopo pré-setNodes, não no escopo enviado. ea4f01fe depois reverteu a escrita de UID-0 em stable/26.7; esse commit não é este pin.

Referências

  • github.com/opnsense/core a842fe48c21288d11a422cb944678e8eb308becf
  • UidField.php
  • auth.inc local_user_set
  • Página nomeada (não este remanescente): CVE-2026-44194 / GHSA-f59w email-as-shell
  • Reversão posterior (não este pin): ea4f01fe em stable/26.7
  • CWE-269 / CWE-284
Baixar ferramenta