oq eu achei na porra do Salinha:
(ficou longo entao irei dividir em topicos pra quem quiser ler)
1 - como funciona a transmissao?
2 - como ele atualiza?
3 - incoerência: os dados que a politica diz que nao guarda
4 - incoerência: a foto do grupo que "não fica armazenada"
5 - incoerência: o TURN que a política não descreve
6 - incoerência menor -> a janela do Windows
7 - outros pontos que chamaram atençao
8 - a bridge do Electron
9 - Coturn 4.6.1 e perfis por ID
10 - o que eu achei bacanudo
11 - RESUMAO
1 - como funciona a transmissao?
==========================
o Salinha usa um virtual display driver
de forma mt grosseira é um "segundo monitor" no tamanho do celular
ate ai fodase, é um app de compartilhar tela né, duhhh
o problema é o que vem junto
2 - como ele atualiza?
==========================
o app e o update rodam como USER, mas o instalador do driver pede ADMIN (UAC) e roda um .ps1 nao assinado de uma pasta que o seu usuario escreve
os drivers em si sao assinados
o .ps1, o instalador e o update não
isso é EoP local:
precisa de algo rodando como voce pra trocar o script antes do UAC, nao é remoto
e ele liga um autostart sozinho no primeiro run (--ao-ligar), sem prompt
dai pra frente, quem controla o canal de update(ou o hacker q invadiu) controla o que roda no seu PC
e o update é silencioso (no .exe/AppImage; no .deb pede senha e na Store tem UI), sem verificação de assinatura (o hash vem do mesmo canal, ent protege contra corrupçao e não contra canal comprometido) e é aplicado no login antes de abrir a janela
e pelo amor de deus nao to falando que o dono vai te hackear
é que o modelo nao te uma forma boa de como verificar
se o site/CI/GitHub for comprometido, o proximo login pode ser o deploy
em resumo se você instalou o Salinha o canal de update da a permissão de trocar o executavel sozinho pra um possivel virus ou algo assim
quando um aplicativo pede ADMIN pra instalar driver, executa script elevado de uma pasta que teu usuário pode modificar e ainda atualiza o próprio binário silenciosamente o meu cuzin fica alerta
3 - incoerência: os dados que a política diz que não guarda
==========================
bom, eu tbm comparei as politicas que o dono coloca no site e ele basicamente se refuta sozinho(???)
ele(o dono) provavelmente nao leu as proprias politicas
na seção 1 da politica de privacidade, ele diz que so fica guardado aquilo que você envia numa denúncia
só que na seção 3 ele lista mais de 15 categorias de dados armazenados
"contas, convites, bloqueios, registros de acesso por 6 meses, buscas de GIF, fotos de perfil/capa, personalização de grupos, pagamentos..."
uai porra
4 - incoerência: a foto do grupo que "não fica armazenada"
==========================
outra coisa
a politica diz que as fotos dos grupos sao apenas retransmitidas entre os membros, sem ficarem armazenadas no servidor
mas o upload retorna uma URL propria, e o arquivo continua disponível enquanto o grupo existir
inclusive com cache de até 1 ano na resposta
isso NAO é retransmissão...... porra.
5 - incoerência: o TURN que a política não descreve
==========================
e tem mais
a politica diz que quando a conexão P2P falha, a midia passa por um TURN da Cloudflare
mas o aplicativo também recebe dois servidores TURN proprios, rodando Coturn
não estou dizendo que isso é necessariamente inseguro
estou dizendo que a documentação não descreve toda a infraestrutura que o aplicativo efetivamente utiliza e esconde d+ do usuario quando se diz transparente
6 - incoerência menor: a janela do Windows
==========================
outra inconsistencia:
a Central de Segurança fala que o consentimento para controle do PC acontece numa janela do próprio Windows.
mas a janela utilizada é uma BrowserWindow do Electron.
ou seja, é uma janela desenhada pelo próprio aplicativo, não um seletor nativo mediado pelo Windows mas isso aqui é meio fodase tbm
o Ctrl+Shift+F12 para interromper o controle existe e isso é bacana uau
mas são coisas diferentes
7 - outros pontos que chamaram atenção
==========================
ALIÁS, existem outros pontos que chamam atenção, tipo:
- login Google sem nonce no fluxo normal
- Chromium rodando com --no-sandbox no Linux
- uma bridge do Electron com acesso a clipboard, captura de tela e input
- sessão com validade de 60 dias, sem binding de IP/UA
- token de WebSocket enviado pela query string (?t=), TTL curto de uns ~60s, mas fica em log/proxy
8 - a bridge do Electron
==========================
mas essa bridge merece um pouco mais de atençao KKKKKKK
pq nao é só clipboard e captura de tela
ela também consegue consultar informações das telas conectadas, hostname, GPU, controlar o mute do PC, atalhos e ate um negócio chamado perfBoost (q eu n sabia o nome tecnico disso mas é o controld de desempenho da cpu)
no Windows ainda existe um input-win.js usando SendInput pra injetar teclado e mouse
basicamente, tem uma ponte entre o JavaScript da aplicação e um monte de funções locais da máquina
e não tem certificate pinning
se por algum acaso alguem conseguir executar js na origem do aplicativo, seja por XSS ou por um MITM com certificado confiável, essa bridge vira uma superfície beeeeem legal
e é ate engraçado pq raramente acha algum caso de um possivel XSS virar execução local no cliente, e bom, se achar XSS no Salinha você consegue comprometer a máquina de alguem com os poderes do usuário KKKKK
ah, alias, eu nao achei XSS, so to falando q se alguem achar é zika
9 - Coturn 4.6.1 e perfis por ID
==========================
e voltando ao TURN
os dois servidores próprios estão rodando Coturn 4.6.1
encontrei CVEs associadas a essa version, algumas com severidade alta, dependendo da configuração e dos recursos expostos
> NAO TESTEI EXPLOIT <
tipo, uma das vulnerabilidades no coturn é um bypass do bloqueio de loopback, SSRF/relay pra o loopback (CVE-2026-53450)
dai com esse CVE da pra achar metrica interna, webadmin e etc
os IPs desses servidores também deixam SSH aberto
uma conta autenticada consegue consultar informações de IDs sequenciais, incluindo avatar, chave pública e flair e essas paradas ai
testei os IDs 1 e 2
a chave pública é pública por design
o ponto é avatar/flair por ID, sem amizade
nao encontrei email ou telefone, entao nao é aquele papo de "MEUDEUS VAO VAZAR O BANCO DE DADOS"
10 - o que eu achei bacanudo
==========================
e antes q alguem nao entenda legal:
eu tbm encontrei controles funcionando corretamente
CSRF, CORS, validação de Origin, autorização de grupos no que testei, proteção de WebSocket, upload de imagens e bla bla bla essas coisas de nerd ai
11 - RESUMAO
==========================
o fluxo normal aceita um ID token sem nonce
o guard administrativo usa nonce, mas o login comum não
o token do WebSocket também é enviado pela query string (?t=) oq é estranho as fuck(pra caralho)
mas de resto o app é bom
eu uso? nao, mas é daora da pra usar de boa se ninguem hackear
enfim, enfim, efnim, enfim
gosto de ser sempre transparente com vocês meus amores, ent esse é o resumo de tudo
o resto era mt chato de falar e ia deixar maior ainda esse post
e eu duvido q 1% das pessoas leram ate o ultimo paragrafo, vocês odeiam ler meus posts
desgraçados!!!!!!!
comi quem leu
gente que fofura esse app salinha e a transmissão é boa!! a gente fica sentadinho na call que gracinha, fora que transmite 1440p de graça