Преглед на приватноста

Оваа веб-страница користи колачиња за да ви обезбеди најдобро можно корисничко искуство. Информациите за колачињата се складираат во вашиот прелистувач и извршуваат функции како препознавање кога се враќате на нашата веб-страница и им помагаат на нашите програмери да разберат кои делови од веб-страницата ви се најинтересни и најкорисни.

Строго неопходни колачиња

Строго неопходните колачиња треба да бидат овозможени во секое време за да можеме да ги зачуваме вашите поставки за колачиња.

Критична ранливост во библиотеката Protobuf овозможува извршување на JavaScript код

Објавен е proof-of-concept (PoC) експлоит за критична ранливост за далечинско извршување на код (RCE) во protobuf.js, широко користена JavaScript имплементација на Google Protocol Buffers.

Алатката е многу популарна во Node Package Manager (npm), со просек од речиси 50 милиони преземања неделно. Се користи за комуникација меѓу сервиси, во real-time апликации и за ефикасно складирање на структурирани податоци во бази на податоци и cloud околини.

Во извештај објавен во петок, компанијата за безбедност на апликации Endor Labs наведува дека ранливоста за далечинско извршување на код во protobuf.js е предизвикана од небезбедно динамичко генерирање на код. Безбедносниот проблем сè уште нема официјален CVE број и моментално се следи како GHSA-xq3m-2v4x-88gg, идентификатор доделен од GitHub.

Endor Labs објаснува дека библиотеката гради JavaScript функции од protobuf шеми преку спојување на стрингови и нивно извршување преку Function() конструкторот, но не ги валидира идентификаторите добиени од шемата, како што се имињата на пораките.

Ова му овозможува на напаѓач да достави злонамерна шема која вметнува произволен код во генерираната функција, кој потоа се извршува кога апликацијата обработува порака користејќи ја таа шема.

Ова отвора можност за RCE на сервери или апликации што вчитуваат шеми под влијание на напаѓач, со што се овозможува пристап до environment променливи, креденцијали, бази на податоци и интерни системи, па дури и латерално движење низ инфраструктурата.

Нападот може да влијае и на машините на развивачите доколку тие локално вчитуваат и декодираат недоверливи шеми.

Ранливоста ги погодува верзиите 8.0.0/7.5.4 и постари. Endor Labs препорачува надградба на верзиите 8.0.1 и 7.5.5, кои го решаваат проблемот.

Патчот ги санира имињата на типовите со отстранување на неалфанумерички знаци, спречувајќи напаѓачот да ја „затвори“ синтетичката функција. Сепак, Endor нагласува дека долгорочно решение би било целосно да се избегне користење на Function() со идентификатори што може да бидат под влијание на напаѓач.

Endor Labs предупредува дека „експлоатацијата е едноставна“, а минималниот PoC во безбедносниот извештај го потврдува тоа. Сепак, засега нема забележано активна злоупотреба во реални услови.

Ранливоста е пријавена од истражувачот на Endor Labs и bug bounty ловец Кристијан Стаику на 2 март, а одржувачите на protobuf.js објавиле патч на GitHub на 11 март. Поправките за npm пакетите биле достапни на 4 април за 8.x гранката и на 15 април за 7.x гранката.

Покрај надградбата на поправените верзии, Endor Labs препорачува администраторите да ги ревидираат транзитивните зависности, да го третираат вчитувањето на шеми како недоверлив влез и да користат преткомпајлирани (static) шеми во продукција.

Извори:

  • Bleeping Computer – Critical flaw in Protobuf library enables JavaScript code execution Bleeping Computer