X Window System nie był zaprojektowany z myślą o bezpieczeństwie. Możliwe jest łatwe napisanie np. keyloggera, który przechwyci wszystkie wciśnięte przez użytkownika klawisze i zapisze je do pliku.
Na blogu emg-2.blogspot.com zamieściłem przykład takiego keyloggera. Bazuje on na rozszerzeniu Record Extension. Rozszerzenie to zostało stworzone, aby umożliwić precyzyjne nagrywanie akcji wykonywanych przez użytkownika w celu ich późniejszego odtworzenia. Można nagrywać wciśnięcia klawiszy, ruchy myszką, itp. Funkcjonalność taka potrzebna była min. w celu automatyzacji testów aplikacji opartych o graficzny interfejs użytkownika. Nie została jednak w żaden sposób ograniczona, przez co umożliwia łatwe napisanie aplikacji przechwytującej wszystkie wciśnięte przez użytkownika klawisze.
Keyloggera dla X.org można napisać jeszcze na wiele innych sposobów, np. używając rozszerzenia XEvIE, wykonując XSelectInput() na otwartych oknach, czy używając okien InputOnly.
Specyfikacja X12 prawdopodobnie poprawi w jakimś stopniu te uchybienia (tak wynika z luźnych dyskusji, które prowadziłem z deweloperami skupionymi wokół X.Org). Do tego czasu, aby zabezpieczyć się przed keyloggerem korzystającym z rozszerzenia Record, należy usunąć wczytywanie go z konfiguracji X.Org. Od niedawna (ok. 2 lat) twórcy większości dystrybucji dostarczają konfigurację, w której rozszerzenie to domyślnie nie jest wczytywane.