Aktualność · Google · 2 min czytania
Data wydarzenia: · Opublikowano:
Google łączy Gemini 4 Argon z solverem Z3, by wykryć błędy w Go pomijane przez fuzzing
Google opisał technikę łączącą Gemini 4 Argon z solverem Z3, która wykryła błędy w Go pomijane przez fuzzing, w tym trzy nowe, utajone błędy w narzędziu skill-lint.
Google opisał technikę łączącą model Gemini 4 Argon z solverem ograniczeń Z3, która wykrywa błędy w kodzie Go pomijane przez fuzzing, w wpisie na Google Developers Blog opublikowanym 12 listopada 2026 roku.
Jak działa ta technika
- Gemini 4 Argon tłumaczy ścieżkę do każdej potencjalnej pułapki powodującej awarię na reguły dla solvera ograniczeń Z3.
- Metodę przetestowano na
skill-lint, samodzielnym CLI w Go sprawdzającym pliki SKILL.md, działającym na Go 1.27.3;skill-lintjest częścią biblioteki 175 umiejętności agentów, które uzupełniają zbiory społecznościowe takie jakgo-skills. - Metoda znalazła wszystkie trzy błędy celowo umieszczone w parserach testowych.
- Odkryła też trzy wcześniej nieznane, utajone błędy w samym
skill-lint. - Jeden z nowych błędów, w funkcji
ParseTwoChunkFrame, jest wywoływany przez 19,4% wszystkich możliwych par (hdrLen,bodyLen), a fuzzing go przegapił, bo 89% danych wejściowych fuzzera było widokami na współdzielony bufor o rozmiarze około 100 MB, a tylko 0,07% miałocaprównelen. - Przetłumaczenie jednej funkcji przez LLM zajmowało około minuty, a solver Z3 kończył sprawdzenie w milisekundach.
Co to znaczy dla osób budujących z AI
To konkretny, zmierzony przykład połączenia dużego modelu językowego z formalnym solverem, przydatny dla deweloperów budujących wspierane przez AI narzędzia do weryfikacji kodu i bezpieczeństwa. LLM wykonuje powolną, wzorcową pracę przekształcania ścieżki kodu w formalne ograniczenia, a solver następnie sprawdza te ograniczenia wyczerpująco, wychwytując dane wejściowe, które umykają fuzzingowi przez jego ograniczenia w pokryciu.
Zakres testu
Google przeanalizował łącznie pięć funkcji tą metodą; dwie okazały się bezpieczne w sposób dowodliwy, co oznacza, że solver nie znalazł żadnych danych wejściowych spełniających warunki awarii. Zbadany plik binarny skill-lint zawiera łącznie 32 321 symboli.
Źródła
- Catch Go bugs that fuzzing misses with Gemini and a constraint solver (Google, 12 listopada 2026, oficjalne)
Tekst przygotowany z pomocą AI wyłącznie na podstawie źródeł wymienionych powyżej. Zanim trafił na stronę, przeszedł automatyczną kontrolę dat, źródeł i wszystkich wersji językowych.