For the English version of this alert, click here.
Allele Security Alert
ASA-2018-00054
Identificador(es)
ASA-2018-00054, CVE-2018-16862
Título
Cleancache vazamento de arquivos deletados
Fabricante(s)
Linux foundation
Produto(s)
Linux
Versão(ões) afetada(s)
Linux desde v3.15-rc1
Versão(ões) corrigida(s)
Linux 4.20-rc5
Prova de conceito
Desconhecida
Descrição
Um usuário não privilegiado pode acessar o conteúdo de um arquivo deletado de qualquer usuário do sistema de arquivo com cleancache habilitado. Por enquanto, somente o driver tmem do Xen se registra como um backend para cleancache.
Detalhes técnicos
Sob certas condições, cleancache pode não descartar o conteúdo de um arquivo deletado na sua última chamada a iput(). Quando um arquivo recém criado obtém o número inode do arquivo deletado anteriormente, a sua leitura poderá obter o conteúdo do arquivo deletado salvo no cleancache.
Se todas as páginas forem excluídas do mapeamento por recuperação da memória e também movidas para o cleancache:
__delete_from_page_cache (no shadow case) unaccount_page_cache_page cleancache_put_page page_cache_delete mapping->nrpages -= nr (nrpages torna 0)
Nós não limpamos o cleancache de um inode depois do truncamento final do arquivo (remoção).
truncate_inode_pages_final check (nrpages || nrexceptional) is false no truncate_inode_pages no cleancache_invalidate_inode(mapping)
Desta maneira quando lendo de um novo arquivo criado com o mesmo inode nós podemos obter lixo de memória deixado nas páginas do cleancache e visualizar dados errados em vez do conteúdo do novo arquivo criado.
Créditos
Vasily Averin e Pavel Tikhomirov (Virtuozzo Kernel Team)
Referência(s)
CVE-2018-16862: Linux kernel: cleancache: deleted files infoleak
https://seclists.org/oss-sec/2018/q4/169
mm: cleancache: fix corruption on missed inode invalidation
https://lore.kernel.org/patchwork/patch/1011367/
Bug 1649017 – (CVE-2018-16862) CVE-2018-16862 kernel: cleancache: Infoleak of deleted files after reuse of old inodes
https://bugzilla.redhat.com/show_bug.cgi?id=1649017
mm: cleancache: fix corruption on missed inode invalidation
https://github.com/torvalds/linux/commit/6ff38bd40230af35e446239396e5fc8ebd6a5248#diff-a867b589a17d6d3ea5e9a787a775da7b
CVE-2018-16862
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-16862
CVE-2018-16862
https://nvd.nist.gov/vuln/detail/CVE-2018-16862
Se encontrou algum erro neste alerta ou deseja uma análise compreensiva, entre em contato.
Última modificação: 14 agosto 2019