cunicu / go-rosenpass

A port of Rosenpass post-quantum key-exchange protocol to Go.
Apache License 2.0
19 stars 1 forks source link

Evaluate possibility of buffer overflows / use-after-free in Go #49

Closed stv0g closed 1 year ago

stv0g commented 1 year ago

By @koraa in https://github.com/stv0g/go-rosenpass/issues/27#issuecomment-1604366038

Severerity: N/A – What is the situation with regards to buffer overflows, use-after-free errors in go?

stv0g commented 1 year ago

Go is designed to be a memory-safe programming language. Memory safety refers to a language's ability to prevent certain classes of memory-related errors, such as buffer overflows, null pointer dereferences, and memory leaks. Go achieves memory safety through several language features and design choices:

However, it's important to note that no programming language can guarantee absolute memory safety. Developers must still be mindful of their code, write safe and secure practices, and follow best practices to minimize potential memory-related issues.

In Go-code, the memory safety guarantees can be circumvented by the use of the unsafe package which permits arbitrary memory access and can loose type safety.

As a security critical software component, go-rosenpass does not make use of the unsafe package.

See also

Future improvements