ASA-2018-00054 – Linux: Cleancache vazamento de arquivos deletados


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

Não somos responsáveis por qualquer perda de dados, corrupção de dispositivos ou qualquer outro tipo de problema devido ao uso de qualquer informação mencionada em nossos alertas de segurança.