CodeQL 2.27.2 шири анализу — 498 безбедносних упита остаје основа

|Аутор: Уредништво QUASA|5 мин читања
CodeQL 2.27.2 шири анализу — 498 безбедносних упита остаје основа

GitHub је 9. октобра 2026. објавио доступност CodeQL 2.27.2 са изменама анализе за C++, Go, Rust и JavaScript/TypeScript; подразевани скуп садржи 498 безбедносних упита за 170 CWE категорија, а проширени додаје 131 упит за још 32 категорије. Нова верзија боље разуме поједине библиотеке, конструкције језика и путеве којима подаци пролазе кроз програм. То може открити везу коју ранија анализа није видела, али само по себи не показује да је сваки нови налаз стварна рањивост.

Верзија је заведена и у октобарском регистру издања као доступно ажурирање. Најнепосредније последице могу да очекују репозиторијуми који користе обухваћене библиотеке и обрасце кода: ту нови модел може да промени пут приказан у упозорењу. Број упита описује скуп који се покреће, а не број рањивости које ће скенирање пронаћи у једном пројекту.

C++: обрасци и SQL одредишта

CodeQL 2.27.2 сада разлаже ECMAScript образац у C++ конструкцији std::regex ради подробније анализе.

За C++ пројекте који користе std::regex, CodeQL сада парсира регуларне изразе написане ECMAScript граматиком. Анализа тиме добија структуру обрасца који се користи, на пример, за обраду уноса или издвајање делова текста. То је промена у разумевању регуларног израза; исправност пословног правила које га користи и даље зависи од конкретне примене.

Друга измена је намењена репозиторијумима са одређеним зависностима. Функције Comdb2 C API-ја које извршавају SQL добиле су моделе осетљивих одредишта, док описи тока података покривају поједине Bloomberg BDE кодеке и десеријализаторе бајтова. Ако непоуздан унос пролази кроз такав код до извршавања SQL упита, анализатор сада има више података да повеже почетак и крај пута. Пројекат без тих компоненти нема разлог да баш због ове измене очекује нова упозорења.

Go и Rust: видљивији прелази података

CodeQL 2.27.2 боље прати податак кроз Rust асинхрони блок са await и подржану TLS библиотеку.

Go модел сада обухвата путању увоза github.com/coder/websocket, поред nhooyr.io/websocket. То је важно за сервис који је прешао на новију путању: библиотека преко које стижу WebSocket поруке поново је препознат део анализе. Ново упозорење ће се појавити само ако се тај улаз повеже са поступком који неки покренути упит сматра осетљивим.

Go граф тока управљања је такође преправљен. Сада обухвата више чворова за доделе, параметре, резултате функција, пролазе кроз опсег и одложене позиве, а изоставља код недостижан од улазне тачке. То може изменити резултате прилагођених CodeQL упита чак и када се изворни код репозиторијума није променио. Тим који одржава такве упите треба да провери да ли се и даље успешно извршавају и да ли њихови резултати задржавају очекивано значење.

У Rust пројектима побољшано је праћење података кроз асинхроне блокове са await, а додати су описи тока за native-tls, async-native-tls и tokio-native-tls. Условни сервис који вредност прослеђује кроз такав асинхрони корак може зато добити потпунији приказ њеног пута. Екстрактор препознаје и синтаксне класе AnyAttr и DocComment, што је посебно важно за упите који испитују тај део Rust кода.

JavaScript: посредна регистрација рута

Код JavaScript и TypeScript сервиса најважнија измена је боље праћење Hapi руковалаца рута и улаза из захтева када се руте региструју преко сопствених помоћних функција или функција вишег реда. Такав посредни слој може да раздвоји место на ком апликација прима податак од места на ком га обрађује. Ако ново скенирање прикаже пут кроз тај слој, пресудно је проверити који податак стварно улази у руту и шта се с њим дешава после позива помоћне функције.

Верзија препознаје и директиве „use workflow” и „use step” из Workflow SDK-а. Репозиторијум који их користи више не би требало да добија упозорење о непознатој директиви само због тих познатих облика. Зато се после надоградње број налаза може кретати у оба смера: праћење Hapi рута може открити нов пут, док препознавање директива може уклонити раније упозорење.

Шта 498 упита значи за поређење скенирања

Подразумевани скуп је полазна конфигурација, али његов укупан број упита није број правила покренутих над сваким језиком појединачно. Поређење резултата има смисла када су исти репозиторијум и комит анализирани уз исте изабране језике, скуп упита и начин изградње. Ако је уз надоградњу промењен и скуп са подразумеваног на проширени, раст броја упозорења не може се приписати само новом моделу тока података.

У CI току корисно је сачувати резултат претходног скенирања и забележити конфигурацију оба покретања. Пре прегледа појединачних упозорења треба утврдити да ли су оба посла успешно завршена, да ли су обухватила исте језике и да ли је грађење компајлираног кода дало упоредив обухват. Затим се нови налази могу груписати по упиту и проверити да ли приказани пут заиста води од непоузданог улаза до осетљиве операције, као и да ли анализа превиђа проверу податка која постоји у коду.

Посебна конфигурациона граница важи за компајлиране језике на Apple системима: режими autobuild и manual нису подржани на macOS 27 ни са једном верзијом Xcode-а, нити на macOS 26 уз Xcode 27. Зато празан или нагло краћи извештај после промене окружења најпре захтева проверу успешности анализе и обухваћених датотека. GitHub аутоматски уводи нове верзије корисницима code scanning услуге на github.com; за GitHub Enterprise Server функционалност је најављена за будуће издање.

Зашто нов налаз још није потврђена рањивост

Већа покривеност повећава прилику да анализатор уочи релевантан пут кроз програм, али употребљивост упозорења зависи од његове близине стварном проблему и од контекста кода. Лонгитудинално истраживање CodeQL-а испитало је 114 верзија на 3.993 CVE случаја из 1.622 репозиторијума, уз више од 20 милијарди анализираних линија кода укупно. Аутори су мерили и да ли се упозорења појављују близу места рањивости, а не само да ли се појављују.

У том истраживању CodeQL је идентификовао 171 CVE случај; налази нису остали стабилни кроз све испитане верзије. Последња верзија у испитиваном низу претходи овом издању, па ти резултати нису тест ефикасности садашње надоградње. За тим који добије ново упозорење користан исход је проверљив пут кроз сопствени код: одакле податак долази, које га провере мењају и која га операција на крају користи.

Прочитајте и:

Подели:

Претплатите се на наш билтен

Добијајте најновије вести о Web3, AI-у и криптовалутама директно у пријемно сандуче.

0