SECURITY

Reporting Security Issues

If you found a security vulnerability, you deserve all the credit. Please feel free to have a good ROFLMAO over my broken design. I deserve all the blame and I have all the responsibility for fixing the problem.

I’d like to ask you to fully disclose the details of your valuable findings via GitHub Security Advisory Report a Vulnerability tab or report it privately via [security@bues.ch] to me.

If you found a severe security vulnerability, a private disclosue is preferred. This is to protect our users from 0-Day exploits. I will always publish vulnerabilities to the public after finding a proper fix.

Security hardening

The public network facing daemon letmeind, the firmware update daemon letmeinfwd and the client application letmein support the security hardening technique seccomp.

Seccomp basically disables all Operating System Calls (syscalls) that are not required by the application.

By default seccomp is disabled. To enabled it, edit /opt/letmein/etc/letmeind.conf and /opt/letmein/etc/letmein.conf and set the seccomp option:

[GENERAL]
seccomp = kill

Setting the seccomp option to kill will fully enable seccomp. If letmein executes a syscall that has not explicitly been allowed by the hard-coded allow-list, the Linux kernel will immediately kill the process. That way attacker injected code cannot execute arbitrary syscalls that are not on the allow-list.

Alternatively, you can configure the seccomp option to log. This will not give you any bug-exploit protection, but it will print a kernel log error message, if a syscall is called that is not on the letmein allow-list. This is useful for debugging.

Note that depending on your Linux Distribution you might be getting false seccomp kills, because the allow-list doesn’t include a required syscall. In this case, please open a Github Issue on letmein.

Seccomp is currently only supported on the x86_64 and aarch64 CPU architectures.

The seccomp feature of letmein has been tested with Debian Linux Stable and Unstable.

Security analysis

The program has carefully been designed to be secure, to the best of my knowledge.

However, nobody is infallible.

I am interested to hear your opinion.

If you found a security vulnerability, see the vulnerability reporting process for how to proceed.

Known weaknesses

There are a couple of known weaknesses that exist in letmein. In this paragraph we discuss why these weaknesses exist.

These weaknesses are not addressed by the design of letmein to make the design simpler. It is a tradeoff between a simple design and a weakness that doesn’t practically impact security.

It is believed that these weaknesses do not make letmein insecure in practical use. The simple design is supposed to reduce the attack surface and as such improve security.