Foi encontrada uma vulnerabilidade no systemd que já está descrita em (CVE-2019-6454), do que permite fazer com que o processo de inicialização do controle (PID1) bloqueie ao enviar uma mensagem especialmente criada para um usuário sem privilégios através do D-Bus.
Os Os desenvolvedores da Red Hat também não excluem a possibilidade de usar a vulnerabilidade para organizar a execução do código com privilégios de root., mas a possibilidade final de tal ataque ainda não foi determinada.
Sobre o systemd
Para quem não conhece o Systemd Posso dizer-lhe isso este é um sistema de inicialização do Linux e gerenciador de serviços que inclui recursos como inicialização de daemon sob demanda, montagem automática e manutenção de ponto de montagem, suporte de instantâneo e rastreamento de processo usando grupos de controle do Linux.
Systemd fornece um daemon de registro e outras ferramentas e utilitários para ajudar nas tarefas comuns de administração do sistema. Lennart Poettering e Kay Sievers escreveram o SystemD, inspirado no macOS launchd e Upstart, com o objetivo de criar um sistema moderno e dinâmico.
Em particular, o systemd fornece recursos de paralelização agressivos e lógica de controle de serviço baseada em dependência, permitindo que os serviços sejam iniciados em paralelo e levando a tempos de inicialização mais rápidos. Esses dois aspectos estavam presentes no Upstart, mas aprimorados pelo systemd.
Systemd é o sistema de inicialização padrão para as principais distribuições Linux, mas é compatível com os scripts de inicialização SysV.
SysVinit é um sistema de inicialização que precede o systemd e usa uma abordagem simplificada para iniciar o serviço. O Systemd não apenas gerencia a inicialização do sistema, mas também fornece alternativas para outros utilitários conhecidos, como cron e syslog.
Sobre a nova vulnerabilidade do systemd
Ao manipular o tamanho da mensagem enviada pelo D-Bus, um invasor pode mover o ponteiro além dos limites de memória alocada para a pilha, contornando a proteção da "página de guarda da pilha", que se baseia na substituição de uma página de memória na borda que chama uma exceção (falha de página).
O ataque bem-sucedido é demonstrado no Ubuntu 18.10 com systemd 239 e no CentOS 7.6 com systemd 219.
Como solução alternativa, a compilação pode ser usada no GCC com a opção "-fstack-clash-protection", que é usada por padrão no Fedora 28 e 29.
Ressalta-se que em 2014 o autor da biblioteca do sistema MUSL apontou entre os principais problemas arquitetônicos do manipulador PID1 de inflação excessiva do sistema e questionou a viabilidade de implementação de um controlador de nível PID1 API para Link com o Barramento, por ser um vetor sério ataques e podem afetar adversamente a confiabilidade de todo o sistema
De acordo com um pesquisador de segurança que revelou uma vulnerabilidade, uma mudança de ponteiro de pilha só é possível para páginas de memória não utilizadas (não atribuído), que não permite organizar a execução do código no contexto do processo PID1, mas permite que um invasor inicie o bloqueio PID1 com uma subsequente transição do kernel Linux para o estado de "pânico" (no caso do controlador PID 1 falha, todo o sistema trava).
No systemd, um manipulador de sinal é instalado que tenta capturar as falhas do processo PID1 (falha de segmentação) e inicia o shell para recuperação.
Mas, uma vez que, durante o ataque, uma chamada é feita para páginas de memória não duplicadas (não alocadas), o kernel não pode chamar este manipulador de sinal e apenas termina o processo com PID 1, que por sua vez o faz. É impossível continuar trabalhando e ir para o estado de "pânico", portanto, é necessário reiniciar o sistema.
Já existe uma solução para o problema
Como todo problema de segurança já descrito e relatado, sua publicação não pode ser feita até que o problema seja resolvido e atualizações de patch de vulnerabilidade para SUSE / openSUSE, Fedora já foram lançadas, também para Ubuntu e parcialmente para Debian (Somente Debian Stretch).
Embora o problema permaneça sem correção no RHEL.
É que o systemd tem todas as características para se tornar um enorme cavalo de Tróia. Isso rompe com a filosofia UNIX de "Faça uma coisa e faça bem" e vamos acabar pagando por isso.
Acho que o mesmo…
Eu pessoalmente sou bastante conservador com o sistema de inicialização, acho que como os usuários mais antigos e tradicionais do UNIX tradicional e primitivo: PREFERO O SISTEMA V INIT OU SEJA O SYSVINIT TRADICIONAL PARA SEMPRE. SISTEMA (TINHA INSTALADO NO LIMUX DEBIAN 8.3 QUE PERMANECEU NO THINKPAD T450 QUE EU ROUBEI EM MARÇO DE 2017) SISTEMA NUNCA ME CONVENCIO
systemd SUCKS !!