9001 / 9001/copyparty

Reusing filenames can cause files to become unintentionally shared

Aberta
#960 1 comentário 0 reações 1 responsável Reivindicada por @9001 Ver no GitHub
bug
Linguagem predominante
Python
Estrelas
46.7k
Forks
1.9k
Merge médio
9d 2h
PRs com merge (30d)
4

Descrição

### Describe the bug
If you share a file, that share key can be used to access to any future file with the same filename.

### To Reproduce
1. Upload a file with a particular filename
2. Create a share for the file
3. Delete the file
4. Upload a different file (i.e. different contents) with the same filename
5. Dereference the share link

### Expected behavior
The share link 404s, and listing the share key results in 0 files.

### Server details (if you're NOT using docker/podman)
* **server OS / version:** Debian bookworm
* **what copyparty did you grab:** sfx
* **how you're running it:** init
* run copyparty with `--version` and grab the last 3 lines (they start with `copyparty`, `CPython`, `sqlite`) and paste them below this line:
copyparty v1.19.15 "usernames" (2025-09-29)
CPython v3.11.2 on Linux64 6.1.140 [GCC 12.2.0]
sqlite 3.40.1*1 | jinja 2.11.3 | pyftpd 1.5.10 | tftp 0.4.0
* **copyparty arguments and/or config-file:** `-e2ds -e2ts --shr /shared` (not complete)

Guia de contribuição

Abrir o guia de contribuição

Direção de pesquisa

A issue envolve a reutilização de share keys quando os nomes de arquivo são reutilizados. Examine a lógica de compartilhamento de arquivos, provavelmente no código que trata de uploads, exclusões e criação de shares. Comece encontrando onde as share keys são geradas e associadas aos arquivos. Verifique se a associação é baseada apenas no nome do arquivo. As etapas de teste fornecem um caminho claro para reproduzir o problema; implemente uma correção para invalidar as share keys ou impedir que sejam reutilizadas após a exclusão de um arquivo. Verifique executando as etapas de reprodução.

Escrita pelo modelo de indexação a partir do texto da issue.

Avaliação

Stack de tecnologia
python
Domínio
security
Tipo de issue
Bug
Dificuldade
3/5
Tempo estimado
1-2 dias
Status de atividade
Estagnada
Clareza
Claramente especificada
Facilidade para iniciantes
45/100

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.