Na terça-feira, 24 de março de 2026, o Linear implantou uma alteração de código que expôs dados de equipes privadas a outros membros do mesmo espaço de trabalho. Por cerca de uma hora, das 12h07 às 13h10 UTC, membros do espaço de trabalho, incluindo usuários convidados, puderam acessar dados fora de suas permissões normais de equipe.

A camada de autorização do Linear usa resolvedores de "sync group" para adicionar filtros de permissão por consulta. Uma otimização de desempenho foi projetada para ignorar resolvedores que nunca poderiam corresponder a um usuário, e foi configurada para ser executada apenas em um único espaço de trabalho interno. Mas o caminho de código que desativava a otimização em outros lugares tinha um bug de sombreamento de variável: em vez de recorrer aos filtros originais, ele descartava todos os resolvedores específicos do usuário, de modo que a verificação de permissão subsequente era totalmente ignorada e as consultas retornavam silenciosamente resultados sem filtro.

A alteração havia passado por revisão por pares e testes, mas apenas o caminho com a otimização ativa foi coberto; ninguém testou o caminho desativado para os demais espaços de trabalho. A equipe do Linear observou especificamente que o bug não foi escrito por IA — foi uma regressão humana de sombreamento de variável que revelou uma lacuna na cobertura de testes.

A exposição ocorreu por meio de resumos de notificações (um membro podia receber um resumo de todo o espaço de trabalho), inicializações de sincronização de clientes, sessões móveis e consultas amplas de OAuth/API. Nenhuma credencial ou chave de API vazou, e não houve evidência de uso malicioso. O Linear reverteu a alteração em menos de uma hora, forçou a recarga dos clientes web e desktop, encerrou sessões móveis ativas e notificou os contatos dos espaços de trabalho afetados em até 48 horas.

Por cerca de 1 hora em 24 de março de 2026, dados de equipes privadas ficaram acessíveis a outros membros e convidados do mesmo espaço de trabalho; cerca de 7.000 sincronizações e chamadas de API podem ter obtido esses dados.

O caminho desativado da otimização tinha um bug de sombreamento de variável que omitia todos os resolvedores específicos do usuário.

A cobertura de testes validava a otimização quando ativa, mas não o caminho em que ela estava desligada.

As verificações de permissão falharam de forma aberta: a consulta retornava resultados em vez de gerar um erro.

As camadas de notificação, sincronização, móvel e API confiaram todas na camada de permissões defeituosa.

Uma "otimização" de controle de acesso que ignora um filtro só é segura se seu caminho desativado for testado, ou uma revisão do caminho feliz aprova silenciosamente uma ampliação de permissões.

O Linear ampliou os testes de integração em ambientes de implantação, tipos de equipe, funções, acesso de convidados e métodos de autenticação, limitou o número de itens de notificação por resumo e se comprometeu a realizar revisões de segurança mais rigorosas antes da implantação e monitoramento de anomalias de autorização. Notificou os proprietários dos espaços de trabalho afetados e, para aqueles que solicitaram, forneceu resumos de exposição por espaço de trabalho. Os usuários descreveram o caso como um incidente de segurança raro, tratado com transparência por uma empresa que acabara de ultrapassar US$ 100 milhões em ARR.

CONFIRA AS EVIDÊNCIAS

As fontes

  1. Post mortem on Linear security incident on March 24th, 2026 Linear · linear.app ·
  2. User-specific data accessible to the wrong users within the same workspace Linear Status · linearstatus.com ·
  3. Linear discloses a data exposure incident Devbytes · devbytes.co.in ·