Luka w systemach typu BSD

Maksymilian Arciemowicz odkrył błąd w funkcji strfmon() pochodzącej ze standardowej biblioteki języka C i odpowiedzialnej za konwersję wartości monetarnych do łańcuchów tekstowych. Narażeni na atak są użytkownicy systemów NetBSD i FreeBSD. Nie potwierdzono istnienia błędów w innych dystrybucjach typu BSD.

Błąd bazuje na nieprawidłowym przydzielaniu pamięci za pomocą funkcji memmove() w wyniku użycia odpowiednio spreparowanych ciągów formatujących. W efekcie dochodzi do przepełnienia bufora. Co więcej, błąd nie ogranicza się tylko i wyłącznie do funkcji strfmon(). Arciemowicz dowiódł, że zagrożenie obejmuje wszystkie funkcje operujące na ciągach formatujących, które błędnie rezerwują pamięć.

Przedstawiona podatność jest niewątpliwe bardzo niebezpieczna z uwagi na ilość programów, które wykorzystują wadliwe funkcje ze standardowej biblioteki C. Praktycznie każdy program, który daje nieautoryzowanemu użytkownikowi możliwość manipulacji ciągiem formatującym może zostać wykorzystany do przejęcia systemu.

Realizacja: SIPLEX Studio