Authentik or Authelia: Which Identity Provider Offers Better Security?
As I delved into the world of identity providers (IdPs) for my homelab setup, I found myself torn between two popular open-source options: Authentik and Authelia. Both promise to secure my backend applications, but which one should I choose? In this article, I’ll explore the attack surface and disclosed vulnerabilities of both Authentik and Authelia, helping you make an informed decision for your own setup.
My Requirements
Before diving into the security aspects, let’s talk about my requirements. I needed an IdP that supports forward-auth, WebAuthn, and Role-Based Access Control (RBAC). Both Authentik and Authelia seemed to tick all the right boxes, but I wanted to dig deeper. I started by comparing the number of disclosed exploits between the two, and what I found was surprising.
Disclosed Vulnerabilities
Authentik has a total of 22 disclosed vulnerabilities, with 11 of them falling into the high-critical band. In contrast, Authelia has only 3 disclosed vulnerabilities, with just 1 being considered critical. This significant difference in numbers got me thinking – what do these vulnerabilities mean for my setup’s security?
Notable Authentik Vulnerabilities
Let’s take a look at some of the notable vulnerabilities found in Authentik’s codebase:
- CVE-2024-47070: This vulnerability allows an attacker to bypass password login by adding a malformed X-Forwarded-For header. However, this can be easily mitigated by sanitizing headers at the reverse proxy level.
- CVE-2024-37905: This vulnerability can be exploited to gain admin user privileges, but it can be mitigated by utilizing a Web Application Firewall (WAF) to block specific requests.
- CVE-2022-46145: This vulnerability allows unauthenticated users to create new accounts, potentially leading to account takeover. However, this can be mitigated by binding a policy to the default user settings flow.
Notable Authelia Vulnerabilities
Now, let’s look at some of the notable vulnerabilities found in Authelia’s codebase:
- CVE-2021-32637: This vulnerability affects users who are using the nginx ngx_http_auth_request_module with Authelia, allowing a malicious individual to bypass the authentication mechanism. However, this only affects nginx users with a specific module being used in conjunction with Authelia.
Closing Thoughts
While both Authentik and Authelia have their strengths and weaknesses, it’s essential to consider the attack surface and disclosed vulnerabilities when making a decision. Authentik has undergone two audits by notable companies, including Cure53 and Cobalt, which is a positive sign. However, the number of disclosed vulnerabilities is still a concern.
In conclusion, while both projects are amazing and offer a lot of value to the community, I would recommend Authelia for a hardened setup due to its lower number of disclosed vulnerabilities. However, it’s crucial to remember that no amount of mitigations can replace regular updating and patching. Both projects are open-source and rely on community support, so if you have the means, consider supporting them for their hard work.
You can find GitHub sponsor links for both Authentik and Authelia maintainers, as well as links to support both projects directly. Additionally, supporting contributors can be done through both GitHub project pages.
Polska wersja
Authentik czy Authelia: Który dostawca tożsamości oferuje lepszą ochronę?
Gdy zagłębiłem się w świat dostawców tożsamości (IdP) dla mojego laboratorium domowego, znalazłem się w rozterce pomiędzy dwiema popularnymi, open-source’owymi opcjami: Authentik i Authelia. Obie obiecują zabezpieczyć moje aplikacje backendowe, ale którą z nich powinienem wybrać? W tym artykule będę badał powierzchnię ataku i ujawnione słabości obu Authentik i Authelia, aby pomóc Ci w podjęciu świadomej decyzji dla swojego własnego laboratorium.
Moje wymagania
Przed zagłębieniem się w aspekty bezpieczeństwa, porozmawiajmy o moich wymaganiach. Potrzebowałem dostawcy tożsamości, który obsługuje forward-auth, WebAuthn i kontrolę dostępu opartą na rolach (RBAC). Zarówno Authentik, jak i Authelia zdawały się spełniać wszystkie wymagania, ale chciałem się zagłębić głębiej. Zacząłem od porównania liczby ujawnionych eksploatacji pomiędzy dwiema opcjami, a to, co znalazłem, było zaskakujące.
Ujawnione słabości
Authentik ma łącznie 22 ujawnione słabości, z czego 11 z nich znajduje się w paśmie wysokiej krytyczności. W przeciwieństwie do tego, Authelia ma tylko 3 ujawnione słabości, z których tylko 1 jest uważana za krytyczną. Ta znacząca różnica w liczbach sprawiła, że zacząłem myśleć – co te słabości oznaczają dla bezpieczeństwa mojego laboratorium?
Znaczące słabości Authentik
Spójrzmy na niektóre znaczące słabości znalezione w kodzie Authentik:
- CVE-2024-47070: Ta słabość pozwala na obejście logowania hasłem poprzez dodanie nieprawidłowego nagłówka X-Forwarded-For. Może to być jednak łatwo złagodzone poprzez oczyszczanie nagłówków na poziomie serwera proxy.
- CVE-2024-37905: Ta słabość może być wykorzystana do uzyskania uprawnień administratora, ale może to być złagodzone poprzez użycie zapory ogniowej (WAF) do blokowania określonych żądań.
- CVE-2022-46145: Ta słabość pozwala nieautoryzowanym użytkownikom tworzyć nowe konta, co może prowadzić do przejęcia konta. Może to jednak być złagodzone poprzez powiązanie polityki z domyślnym przepływem ustawień użytkownika.
Znaczące słabości Authelia
Teraz spójrzmy na niektóre znaczące słabości znalezione w kodzie Authelia:
- CVE-2021-32637: Ta słabość dotyczy użytkowników, którzy używają modułu nginx ngx_http_auth_request_module z Authelia, co pozwala na obejście mechanizmu uwierzytelniania. Dotyczy to jednak tylko użytkowników nginx z określonym modułem używanym w połączeniu z Authelia.
Podsumowanie
Pomimo że obie opcje mają swoje mocne i słabe strony, ważne jest, aby brać pod uwagę powierzchnię ataku i ujawnione słabości przy podejmowaniu decyzji. Authentik przeszedł dwie audytory, w tym jedną przeprowadzoną przez firmę Cure53 i Cobalt, co jest pozytywnym sygnałem. Niemniej jednak, liczba ujawnionych słabości wciąż jest powodem do niepokoju.
Podsumowując, chociaż obie opcje są niesamowite i oferują wiele wartości dla społeczności, zalecam Authelia dla zabezpieczonego laboratorium ze względu na mniejszą liczbę ujawnionych słabości. Ważne jest jednak, aby pamiętać, że żadne złagodzenie nie może zastąpić regularnych aktualizacji i łatania. Obie opcje są open-source’owe i zależą od wsparcia społeczności, więc jeśli masz możliwość, rozważ wsparcie ich za ich ciężką pracę.
Możesz znaleźć linki do sponsorowania na GitHub dla utrzymujących Authentik i Authelia, a także linki do wsparcia obu projektów bezpośrednio. Dodatkowo, wsparcie dla współtwórców może być udzielone za pośrednictwem obu stron projektów na GitHub.