{"id":3344,"date":"2026-10-02T17:58:54","date_gmt":"2026-10-02T17:58:54","guid":{"rendered":"https:\/\/thedigitalfortress.us\/?p=3344"},"modified":"2026-10-02T17:58:54","modified_gmt":"2026-10-02T17:58:54","slug":"gitlab-patches-critical-9-9-ai-gateway-flaw-allowing-command-execution-on-self-hosted-servers","status":"publish","type":"post","link":"https:\/\/thedigitalfortress.us\/?p=3344","title":{"rendered":"GitLab Patches Critical 9.9 AI Gateway Flaw Allowing Command Execution on Self-Hosted Servers"},"content":{"rendered":"<div>\n<p><span class=\"p-author\"><i class=\"icon-font icon-user\">\ue804<\/i><span class=\"author\">Swati Khandelwal<\/span><i class=\"icon-font icon-calendar\">\ue802<\/i><span class=\"author\">Oct 02, 2026<\/span><\/span><span class=\"p-tags\">Vulnerability \/ Application Security<\/span><\/p>\n<\/div>\n<div id=\"articlebody\">\n<div class=\"separator\" style=\"clear: both;\"><a href=\"https:\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEhXhnbLdlAtkMBrrXYLiOxfbEdXI4PrEIq6dy3SL8Xa5SzPF6if9sf8GGu4PtkUTI3EYQHqBde4cDp4Y60OjgQBmqtZHTlL_gvgvlxNSeZ6nrRnriOmH3m23vq7f2bpylilVl39c_X-RNpvYQlRrC91gU_oHbk6e_ZbZ-7_fglpsQCFoLFp3sHkcn44960\/s1700-nu-rw-lo-l85-e365\/gitlab-rce.jpg\" style=\"display: block;  text-align: center; clear: left; float: left;\"><\/a><\/div>\n<p>A critical flaw in GitLab&#8217;s AI Gateway could let a logged-in user with Duo Agent Platform access run commands on the gateway under certain conditions, GitLab <a href=\"https:\/\/docs.gitlab.com\/releases\/patches\/other-patches\/patch-release-gitlab-ai-gateway-19-4-1-released\/\" target=\"_blank\">said in an advisory<\/a>.<\/p>\n<p>The gateway is the service that connects a GitLab instance to AI models, and only organizations that host their own gateway need to act. The flaw is fixed in gateway versions 19.2.4, 19.3.2, and 19.4.1.<\/p>\n<p>The flaw is tracked as <a href=\"https:\/\/github.com\/CVEProject\/cvelistV5\/blob\/main\/cves\/2026\/90xxx\/CVE-2026-90970.json\" target=\"_blank\">CVE-2026-90970<\/a>. GitLab disclosed it on October 2 and rated it critical, with a CVSS score of 9.9 out of 10.<\/p>\n<p>GitLab runs AI Gateways for its customers and has already fixed them. Customers on GitLab.com, GitLab Dedicated, and self-managed instances that use a GitLab-hosted gateway do not need to act, the company said.<\/p>\n<p>Self-managed customers can instead <a href=\"https:\/\/docs.gitlab.com\/administration\/gitlab_duo_self_hosted\/\" target=\"_blank\">host their own gateway<\/a>, an option GitLab offers for keeping AI request and response data inside the customer&#8217;s own environment. GitLab strongly recommends that those customers update immediately. It sent that guidance to customers with self-hosted gateways before it published the advisory.<\/p>\n<div class=\"dog_two clear\">\n<div class=\"cf\"><a href=\"https:\/\/thehackernews.uk\/growth-ai-control-d\" rel=\"nofollow noopener sponsored\" target=\"_blank\"><img loading=\"lazy\" decoding=\"async\" class=\"lazyload\" alt=\"Cybersecurity\" src=\"https:\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEjVYuoalvwUlwvLZFDideJ8jW4rz-IodX0Lwi7uyP7Ab0wiDeu_BqVhPDdejQQ65MC3p9Xc4MApnHz56NJ5SDc1HMg0DvozkkGYv9TGtDLCh26v1yD5-GyzQxnA5-6A6B4beW96H_6FyrByq22cvU5JDF-i8e5GIfV4wg1SpCvjwAJt74FaqkAb2gzqE7ll\/s728-nu-rw-lo-l85-e365\/core-d.png\" width=\"729\" height=\"91\"\/><\/a><\/div>\n<\/div>\n<p>The advisory does not say whether the flaw has been used in attacks. The U.S. Cybersecurity and Infrastructure Security Agency (CISA) added an assessment to the CVE record on October 2 that lists exploitation as \u00abnone.\u00bb CISA&#8217;s other two values cover a public proof of concept and active exploitation.<\/p>\n<p><a name=\"more\"\/><\/p>\n<h3>Affected and Fixed Versions<\/h3>\n<p>The versions below are AI Gateway versions. The gateway is installed as its own Docker image or Helm chart and has its own update steps.<\/p>\n<table style=\"border-collapse: collapse; border: 1px solid #000;\">\n<tbody>\n<tr>\n<th scope=\"col\" style=\"border: 1px solid #000; padding: 8px;\">\n        Gateway version in use\n      <\/th>\n<th scope=\"col\" style=\"border: 1px solid #000; padding: 8px;\">\n        First fixed version\n      <\/th>\n<\/tr>\n<tr>\n<td style=\"border: 1px solid #000; padding: 8px;\">\n        18.1.6 or later, before 19.2.4\n      <\/td>\n<td style=\"border: 1px solid #000; padding: 8px;\">\n        19.2.4\n      <\/td>\n<\/tr>\n<tr>\n<td style=\"border: 1px solid #000; padding: 8px;\">\n        19.3, before 19.3.2\n      <\/td>\n<td style=\"border: 1px solid #000; padding: 8px;\">\n        19.3.2\n      <\/td>\n<\/tr>\n<tr>\n<td style=\"border: 1px solid #000; padding: 8px;\">\n        19.4, before 19.4.1\n      <\/td>\n<td style=\"border: 1px solid #000; padding: 8px;\">\n        19.4.1\n      <\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>To <a href=\"https:\/\/docs.gitlab.com\/install\/install_ai_gateway\/#upgrade-the-ai-gateway-docker-image\" target=\"_blank\">update a Docker deployment<\/a>, stop and remove the running container, then pull and run the new image tag, for example self-hosted-v19.4.1-ee. Helm deployments set the new tag in the chart&#8217;s image setting.<\/p>\n<p>No fixed version is listed below 19.2.4. That leaves every gateway release from 18.1.6 through the 19.1 line inside the affected range.<\/p>\n<p>GitLab&#8217;s install guide tells administrators to use the gateway image that matches their GitLab minor version. The advisory does not say whether a 19.2.4 gateway works with GitLab 19.1 or earlier, or whether fixes for the older lines are planned.<\/p>\n<p>As of October 2, GitLab&#8217;s <a href=\"https:\/\/docs.gitlab.com\/policy\/maintenance\/#maintained-versions\" target=\"_blank\">maintenance policy<\/a> listed 19.4, 19.3, and 19.2 as the GitLab releases that get security fixes. Those are the same three lines that got the gateway fix.<\/p>\n<p>No workaround is listed for gateways that cannot be updated yet. The advisory also gives no way to check whether a gateway was attacked before it was updated.<\/p>\n<h3>What Is Known About the Flaw<\/h3>\n<p>The flaw is in the prompt template of a custom flow, according to the advisory&#8217;s title. A custom flow is an AI-powered workflow that users create on the Duo Agent Platform to automate multi-step tasks.<\/p>\n<p>A logged-in user with Duo Agent Platform access could have used the flaw to \u00abescape the prompt template sandbox via a specially crafted flow configuration,\u00bb GitLab said. The escape could lead to arbitrary command execution on the gateway.<\/p>\n<div class=\"dog_two clear\">\n<div class=\"cf\"><a href=\"https:\/\/thehackernews.uk\/network-defense-d\" rel=\"nofollow noopener sponsored\" target=\"_blank\"><img loading=\"lazy\" decoding=\"async\" class=\"lazyload\" alt=\"Cybersecurity\" src=\"https:\/\/blogger.googleusercontent.com\/img\/b\/R29vZ2xl\/AVvXsEjVV2rRkX8tRMF6gCzemvQNpwFwGxRWxY1cJEYfoLLSj1EZYJOlj5WTR77t0i6kELXujYcaHTpRDqTjCbVHH5Pnh7wzxUiKP5j4dsDkWIMlp2bmpZsL0jeAsA_19pHH5UPtyBvNkZdyGEULOAsXPcraMP5CYjQRFefhXRSdEjYkrdcpUnc4ILcvcdEfAauE\/s728-nu-rw-lo-l85-e365\/tl-d.jpg\" width=\"729\" height=\"91\"\/><\/a><\/div>\n<\/div>\n<p>The conditions the attack needs are not described, and no user role is named beyond Duo Agent Platform access.<\/p>\n<p>A self-hosted gateway holds signing keys for JSON Web Tokens (JWT), which GitLab&#8217;s install guide says must be treated as sensitive credentials. It also connects to the GitLab instance and to the organization&#8217;s AI model providers.<\/p>\n<p>GitLab credited the HackerOne user invisiblemeerkat with reporting the flaw.<\/p>\n<p>In February, GitLab <a href=\"https:\/\/docs.gitlab.com\/releases\/patches\/other-patches\/patch-release-gitlab-ai-gateway-18-8-1-released\/\" target=\"_blank\">fixed another gateway flaw<\/a>, CVE-2026-1868, which it also rated 9.9. A logged-in user could reach that flaw through a crafted flow definition, and it could lead to denial of service or code execution on the gateway.<\/p>\n<p>Both flaws are template engine weaknesses of the same class, CWE-1336. The new advisory does not mention the February flaw.<\/p>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>\ue804Swati Khandelwal\ue802Oct 02, 2026Vulnerability \/ Application Security A critical flaw in GitLab&#8217;s AI Gateway could let a logged-in user with Duo Agent Platform access run commands on the gateway under&hellip;<\/p>\n","protected":false},"author":1,"featured_media":3345,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[60,1223,58,13,70,1722,2717,57,2021,777],"class_list":["post-3344","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-uncategorized","tag-allowing","tag-command","tag-critical","tag-execution","tag-flaw","tag-gateway","tag-gitlab","tag-patches","tag-selfhosted","tag-servers"],"_links":{"self":[{"href":"https:\/\/thedigitalfortress.us\/index.php?rest_route=\/wp\/v2\/posts\/3344","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/thedigitalfortress.us\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/thedigitalfortress.us\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/thedigitalfortress.us\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/thedigitalfortress.us\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=3344"}],"version-history":[{"count":0,"href":"https:\/\/thedigitalfortress.us\/index.php?rest_route=\/wp\/v2\/posts\/3344\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/thedigitalfortress.us\/index.php?rest_route=\/wp\/v2\/media\/3345"}],"wp:attachment":[{"href":"https:\/\/thedigitalfortress.us\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=3344"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/thedigitalfortress.us\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=3344"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/thedigitalfortress.us\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=3344"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}