Pipes can be arranged like this, so that's fine. We also apply a strict
SDDL that can't be inherited and only gives access to local system.
Developed-with: Odd Stranne <odd@mullvad.net>
func UAPIListen(name string) (net.Listener, error) {
config := winio.PipeConfig{
- SecurityDescriptor: "", //TODO: we want this to be a very locked down pipe.
+ SecurityDescriptor: "O:SYD:P(A;;GA;;;SY)", /* Local System only, not inheritable */
}
- listener, err := winio.ListenPipe("\\\\.\\pipe\\wireguard\\"+name, &config) //TODO: choose sane name.
+ listener, err := winio.ListenPipe("\\\\.\\pipe\\WireGuard\\"+name, &config)
if err != nil {
return nil, err
}