Уязвимост в DeepSeek Harness, инструмента с отворен код на DeepSeek за стартиране на AI агенти за програмиране на компютъра на разработчика, позволяваше на агент в изолирана среда (пясъчник) да изключи собствената си изолация с една-единствена команда.

Инструментът изпълнява командите на агента в изолирана среда на операционната система, така че агентът, работещ с ненадеждни файлове, да не може да записва извън работното си пространство. Агентът обаче можеше да премахне това ограничение, като извика уеб интерфейса на самия инструмент на същата машина, след което командите му се изпълняваха извън изолираната среда без подкана за одобрение.

Уязвимостта работеше при инсталация по подразбиране, докато DeepSeek не я отстрани на 27 август, като изискваше предоставен от атакуващ текст, който агентът прочита, за да го подтикне да направи извикването.

Уязвимостта се проследява като CVE-2026-82533. VulnCheck, компанията, която присвои идентификатора, публикува запис на 8 септември и оцени уязвимостта с 9.4 от 10.

От OX Research, фирмата за киберсигурност, съобщила за проблема, заявиха, че една шел команда е била достатъчна. Командата е извиквала локалния интерфейс на инструмента и е задавала режима на сесията на агента на danger-full-access, което изключва изолираната среда и спира подканите за одобрение.

Обикновените команди по начало не се нуждаеха от одобрение. Одобрение се изискваше само когато дадена команда поиска по-широк достъп от този, с който сесията вече разполага, а това извикване не е искало такъв. Вместо това то е променило настройката на сесията.

От OX съобщиха, че са потвърдили, че изолираната среда е работила преди пренасочването. Те са стартирали две сесии от едни и същи настройки по подразбиране и са дали на двете една и съща команда. Сесията, която е направила извикването, е записала данни в папка извън работното си пространство, докато другата е била блокирана.

Изолираната среда покрива само файлове. Справката за командния ред за засегнатата версия посочва, че при настройката по подразбиране записите остават в работното пространство и временните папки, докато „четенето и мрежовият достъп не са ограничени“.

Това е оставило интерфейса на самия инструмент достъпен от вътрешността на изолираната среда. Инструментът също така предоставя на командния ред на агента адреса на този интерфейс и идентификатора на текущата сесия, така че агентът не трябва да ги търси.

Интерфейсът е нямал автентификация. В засегнатата версия проверката, която определя дали дадена заявка може да го достигне, е чела Host заглавката на заявката и никога не е проверявала откъде произлиза връзката. Коментар в този файл гласи, че проверката „не е слой за автентификация“.

Тази проверка е това, което се описва в записа за CVE. Тъй като се е доверявала на заглавка, предоставена от клиента, външна машина е можела да заяви, че е локална, и да управлява агента. Командният ред на инструмента е отказвал да слуша на всички мрежови интерфейси, така че достигането му отвън е изисквало потребителят да е пренасочил или проксирал порта през тунел, SSH пренасочване или редактор.

Същият интерфейс е обслужвал и заявка за изтегляне на целия дневник на сесията. В предупреждението на VulnCheck се посочва, че субект, който достигне до интерфейса, може да извлече всички съхранени разговори без ключ.

Засегнати версии и какво да инсталирате

Версии 0.1.1-rc.2 и по-ранни са засегнати. Записът посочва 0.1.2-alpha.1 като коригираната версия, но тази версия никога не е била публикувана в npm регистъра, където инструкциите на самия проект препращат потребителите.

VersionStatusReleased
0.1.1-rc.2 and earlierAffected0.1.1-rc.2 published August 21
0.1.2-alpha.1Fixed, on GitHub onlyAugust 27, not on npm
0.1.2-alpha.2First fixed release on npmAugust 30
0.1.2-rc.1Current npm release, carries the fixSeptember 3

The Hacker News провери npm регистъра на 9 септември и установи, че първата публикувана версия с промяната в автентификацията е 0.1.2-alpha.2, три дни след като коригираният код е качен в GitHub.

  1. Инсталирайте 0.1.2-alpha.2 или по-нова версия. Текущата версия в регистъра е 0.1.2-rc.1.
  2. Ако сте инсталирали чрез десктоп приложение от трета страна, проверете коя версия на harness съдържа то.
  3. Ако не можете да актуализирате, спрете уеб интерфейса, когато не го използвате, и премахнете всички тунели, проксита или пренасочвания на портове, които го достигат.

Никой източник, прегледан за тази статия, не предлага начин да се спре излизането от изолираната среда отвътре при локална инсталация по подразбиране, докато инструментът работи. Докладът от 13 август посочва, че ограничаването на адреса, на който инструментът слуша, не помага, тъй като агентът вече се намира на същата машина.

Корекцията за сигурност добавя проверка на самоличността за интерфейса. Инструментът вече отпечатва еднократен токен при стартиране; браузърът заменя този токен за подписана бисквитка (cookie), а всяко извикване към интерфейса изисква бисквитката.

Това, което корекцията не променя, е изолираната среда. В 0.1.2-rc.1 същата документация все още гласи, че четенето и мрежовият достъп не са ограничени, а шелът на агента все още получава адреса на интерфейса. Никой източник не уточнява дали агент, работещ в работното си пространство, все още може да получи валидна сесия при новата схема.

Десктоп приложенията от трети страни доставят свое собствено копие на harness, а кое копие доставят е избор на поддържащия съответното приложение. Една версия за Windows беше фиксирала 0.1.1-rc.2 в края на август и се премести към 0.1.3-alpha.1, която съдържа корекцията, на 6 септември. Всеки, който е инсталирал инструмента чрез външно приложение, трябва да провери коя версия използва.

Инструмент за AI агенти за програмиране си струва да бъде атакуван, защото разполага с шел достъп. DeepSeek Harness изпълнява командите на агента с профила на потребителя, който го е стартирал.

Собственото известие за безопасност на проекта гласи, че софтуерът не е преминал през одит за сигурност и че изолираната среда и подканите за одобрение „не гарантират изолация и не предотвратяват щети“. То съветва потребителите да не разчитат на инструмента като на единствен контрол за сигурност при ненадеждна работа.

Репозиторият имаше повече от 216 000 звезди на 9 септември — брой профили, които са го запазили като отметка, а не брой инсталации.

Изследователите многократно откриват AI агенти за програмиране, излизащи от изолираните си среди тази година, включително набор от уязвимости, при които собствената конфигурация на даден репозиторий кара агентите да изпълняват код на атакуващ извън изолираната им среда.

Доклади на общността описват същото пренасочване през август

Двама разработчици описаха същото излизане от изолация в дискусионното табло на DeepSeek преди съществуването на CVE. На 13 август един публикува доклад, показващ как процес в изолирана среда достига до локалния интерфейс и превключва сесията към danger-full-access, заедно с тестови резултати.

На 14 август друг разработчик публикува доклад за същия интерфейс, изброявайки заявките, които той приема без никакви идентификационни данни.

Вторият доклад също така отбелязва, че проектът няма файл с политика за сигурност и поверителен начин за съобщаване за уязвимости. Проектът все още няма файл с политика за сигурност.

OX Research съобщиха за уязвимостта на VulnCheck на 24 август според собствения си график, а VulnCheck посочва Нир Задок и Моше Симан Тов Бустан. Публикацията на OX не споменава по-ранните доклади.

The Hacker News провери списъка с бюлетини на репозитория на 9 септември и не откри публикувано предупреждение за сигурност. Версията, която съдържа корекцията, я изброява сред рутинните промени като премахване на стар транспорт и изискване на „автентификация с еднократен токен за мрежов достъп“, без известие за сигурност и без споменаване на CVE.