Segurança de memória em Go: O perigo oculto da falta de segurança de threads

2025-07-25

Este artigo questiona a compreensão comum da segurança de memória em Go. O autor argumenta que a simples segurança de memória (por exemplo, evitar acesso fora dos limites) não é suficiente para programas robustos; a verdadeira segurança reside em evitar comportamento indefinido (UB). Um exemplo de programa Go demonstra como corridas de dados podem levar a UB e travamentos, mesmo sem usar operações `unsafe`. O autor argumenta que o tratamento de corridas de dados em Go não é estrito o suficiente, contradizendo suas afirmações de segurança de memória, tornando os programas Go mais vulneráveis a exploits de segurança. A conclusão enfatiza que a segurança da linguagem não é binária, mas entender as garantias de segurança de uma linguagem e as compensações é crucial.

Desenvolvimento Corrida de Dados