Argo CD, широко използван инструмент за внедряване на софтуер в Kubernetes, има неотстранена уязвимост в своя компонент repo-server, която позволява на неудостоверен атакуващ да изпълнява код, стига да има достъп до вътрешния мрежов порт на компонента.

Synacktiv, фирмата открила проблема, твърди, че той може да доведе до пълно превземане на клъстера. Към момента няма корекция (пач) и не е назначен CVE идентификатор. Компанията съобщава, че е докладвала за уязвимостта на разработчиците на Argo CD през януари 2025 г. Приблизително осемнадесет месеца по-късно тя остава непатчната, поради което те публикуват подробностите, за да предупредят потребителите.

Проблемът се намира в repo-server – компонентът на Argo CD, който чете Git хранилищата и изгражда Kubernetes манифестите (файловете, дефиниращи какво се внедрява в клъстера).

Неговата вътрешна gRPC услуга няма удостоверяване на автентичността. Всеки, който има достъп до нея, може да изпрати специално изготвена заявка за изпълнение на команда. Synacktiv демонстрира атаката срещу Argo CD v2.13.3 и съобщава, че няма пачната версия, като не публикува пълен списък на засегнатите версии.

Техниката злоупотребява с kustomize – стандартен инструмент, който Argo CD стартира, за да превърне файловете от хранилището в манифести. Kustomize има опция --helm-command, която сочи към двоичния файл на helm, който трябва да бъде извикан.

Synacktiv установява, че неудостоверена заявка към услугата GenerateManifest на repo-server може да насочи тази опция към скрипт, изтеглен от контролирано от атакуващия Git хранилище. Когато kustomize се стартира, той изпълнява въпросния скрипт вместо helm.

Но думата "вътрешен" не означава изолиран по подразбиране. Argo CD се доставя с мрежови политики за Kubernetes (network policies), които изолират repo-server от всичко освен от неговите собствени компоненти.

Synacktiv обаче открива, че Helm chart-ът (често срещан начин за инсталиране на Argo CD) оставя тези политики изключени по подразбиране, като параметърът networkPolicy.create е настроен на false. При тази конфигурация атакуващ, който компрометира дори само един под (pod) в клъстера, може да достигне до repo-server и да експлоатира уязвимостта.

Изпълнението на код върху repo-server не е краят на атаката. Synacktiv използва този достъп, за да прочете паролата за Redis на клъстера от променлива на средата, да се свърже с Redis кеша на Argo CD и да отрови съхранените данни за внедряване. При следващата автоматична синхронизация Argo CD внедрява злонамерен софтуер, предоставен от атакуващия.

Тази стъпка съживява CVE-2024-31989 – уязвимост от 2024 г., открита от Cycode, при която Redis на Argo CD нямаше парола, позволявайки на всеки под в клъстера да отрови кеша за внедряване. Argo CD коригира това чрез добавяне на Redis парола, но самият кеш все още не е подписан, така че кражбата на паролата отваря отново същата възможност за атака.

Тъй като няма коригирана версия, единствената защита е мрежовата изолация. Включете мрежовите политики на Kubernetes, така че само собствените компоненти на Argo CD да имат достъп до портовете на repo-server и Redis. Argo CD предоставя файловете с политиките, но потребителите на Helm трябва да ги активират ръчно.

Проверете какво е активно с командата: kubectl get networkpolicy -A. Една правилна инсталация показва по една мрежова политика за всеки компонент, включително repo-server и Redis. Ако тези политики липсват, портовете са достъпни от останалата част на клъстера.

Synacktiv изгради инструмент, наречен argo-cdown, който автоматизира цялата атака. Те отлагат пускането му, за да дадат време на администраторите да защитят мрежовите си политики, но планират да го публикуват в GitHub по-късно, за да могат администраторите да тестват собствените си внедрявания.

Това не е първият случай, в който Argo CD излага своите вътрешни механизми. През септември 2025 г. беше пачната уязвимостта CVE-2025-55190, при която API токен с права само за четене можеше да извлече идентификационните данни за Git хранилището на даден проект.

През май 2026 г. друг бъг, CVE-2026-42880, позволи на потребители с права само за четене да четат пароли и тайни в Kubernetes в чист текст. Моделът е ясен: Argo CD концентрира достъпа до клъстера и тайните на хранилищата, а неговите вътрешни интерфейси продължават да ги разкриват – при едната уязвимост на неудостоверена заявка, а при следващата на токен с ниски привилегии.

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