Po vydání aktualizace utility pro synchronizaci souborů rsync 3.4.3, která opravila 6 zranitelností, byly zaznamenány regresní chyby, které narušily funkčnost dříve používaných konfigurací. Kromě toho vyvolalo nepochopení a nespokojenost přidání přibližně 50 změn do repozitáře rsync za poslední dva týdny, které byly připraveny pomocí AI modelu Claude. Někteří uživatelé spojili výskyt regresí s generováním nekvalitních oprav zranitelností pomocí AI.
Některé z regresí v rsync 3.4.3:
- Zahájily se s chybou příkazu pro inkrementální zálohování, ve kterém bylo uvedeno několik voleb „—compare-dest“;
- Stalo se
nemožné sestavit rsync na systémech s jádry Linux před verzí 5.6 kvůli využití systémového volání openat2 (commit 1, commit 2); - Přestal fungovat formát „host::modul/cesta“ (commit).
- Přestaly být přijímány příkazy používající volbu
„—delete-missing-args“ spolu s „—files-from“ (commit). - Při synchronizaci se začaly objevovat chyby ohledně umístění hodnoty modtime_nsec mimo přijatelný rozsah.
- Došlo k narušení sestavení na starých verzích macOS.
- Změnilo se chování volby „—link-dest“ (commit).
- Vznikly chyby při spuštění v multiplexoru terminálů tmux.
Andrew Tridgell, zakladatel projektů samba a rsync, který se před dvěma lety vrátil k údržbě rsync a přidal problematické commity, zveřejnil poznámku s vysvětlením vzniklé situace. Podle Andrewa se projekt rsync setkal s lavinou zpráv o zranitelnostech, z nichž mnohé byly generovány prostřednictvím AI. Vydání rsync 3.4.3 přineslo regresní chyby jako cenu za odstranění zranitelností. Andrew se vědomě rozhodl opravit zranitelnosti, i když opravy mohly narušit provoz některých vzácných, ale platných scénářů použití rsync. Tyto scénáře nebyly pokryty starou testovací sadou ani ručními kontrolami, a proto regresní chyby zůstaly nepozorovány a budou vyřešeny v dalším vydání 3.4.4.
Situace přiměla Andrewa modernizovat testovací sadu, zavést kontrolu pokrytí kódu a realizovat testování v systému kontinuální integrace na různých platformách, jakož i provést analýzu potenciálních zranitelností. Vzhledem k tomu, že Andrew má téměř 60 let a raději by cestoval na jachtě, než ztrácel čas řešením zranitelností v rsync, rozhodl se zapojit asistenty AI k provádění rutinních úkolů v podmínkách záplavy zpráv o zranitelnostech. Andrew navrhl architekturu, plán kontroly a strukturu nové testovací sady, poté pomocí AI vygeneroval její obsah v Pythonu a nahradil jím dříve používaný testovací shellový skript. Při vývoji byla použita model Claude s ruční kontrolou výsledku a křížovým ověřením v Codex a Gemini.
Zdroj: opennet.ru
