Higgs-bugson w NFS z Kerberosem powodował sporadyczne błędy EACCES podczas kopiowania dużych plików.
Powodem błędu była niespójność numerów sekwencji GSS po ponownych transmisjach RPC z tym samym XID.
Kernel odrzucał odpowiedzi z poprawnym podpisem HMAC, bo sprawdzał tylko bieżący numer sekwencji, ignorując wcześniejsze.
Autor użył eBPF i bpftrace do wychwycenia zwracanego -EACCES i analizy stosu wywołań w jądrze.
Do reprodukcji problemu stworzył w pamięci FUSE’owy system plików i wykorzystał Wiresharka z własnym pluginem do weryfikacji HMAC.
Naprawa polegała na wdrożeniu cache numerów sekwencji zgodnie z RFC2203 i zmianie logiki retransmisji w jądrze.
Łatki zostały przyjęte i trafią do jądra Linux 6.16.
Get notified when new stories are published for "🇵🇱 Hacker News Polski"