T09 · Insecure Skill Coding Practices
- Location
openapi.json:91- Finding
Unrestricted Transmission of Potentially Sensitive Assessment Data Without Documented Security Controls
- Content
View full analysis
Vulnerability Details
File Location:
openapi.json:91-125; related external service references atSKILL.md:238-241and request example atSKILL.md:21-37
Vulnerability Type: Unrestricted sensitive-data input and missing API security configuration
Risk Level: MediumVulnerable Code
json "PlaybookRequest": { "properties": { "assessmentData": { "type": "object", "title": "Assessmentdata" }, "sessionId": { "type": "string", "title": "Sessionid" }, "userId": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Userid" }, "timestamp": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Timestamp" } }, "type": "object", "required": [ "assessmentData", "sessionId" ], "title": "PlaybookRequest" }The documented destination is an external service:
markdown - **Kong Route:** https://api.mkkpro.com/security/ir-playbook-generator - **API Docs:** https://api.mkkpro.com:8118/docsThe documented request demonstrates that the unrestricted object may contain sensitive organizational security information:
json { "assessmentData": { "organization_name": "TechCorp Inc.", "industry": "Financial Services", "employee_count": 2500, "critical_systems": ["Payment Processing", "Customer Database", "Internal Email"], "compliance_frameworks": ["PCI-DSS", "SOC 2", "GDPR"], "current_ir_maturity": "Intermediate", "primary_threats": ["Ransomware", "Data Exfiltration", "Insider Threats"] }, "sessionId": "sess_abc123def456", "userId": 42, "timestamp": "2024-01-15T10:30:00Z" }Technical Analysis
assessmentDatais defined only ...[truncated 2815 chars]- Remediation
View remediation
Remediation Suggestions
- Replace the generic
assessmentDataobject with an explicit schema listing every accepted field, type, length, and array limit. - Set
additionalProperties: falseon the request object and appropriate nested objects to reject undeclared content. - Explicitly prohibit credentials, access tokens, private keys, raw forensic evidence, unnecessary personal data, and other secrets.
- Add payload-size, nesting-depth, string-length, and array-length limits.
- Define an OpenAPI
securitySchemesentry for an appropriate authentication mechanism and apply asecurityrequirement to/api/ir/playbook. - Enforce server-side authorization, tenant isolation, rate limiting, and audit logging. Avoid placing sensitive request bodies in logs.
- Apply server-side validation and redaction rather than relying exclusively on client behavior.
- Clearly disclose the external processing destination, data usage, retention period, deletion procedure, subprocessors, and confidentiality guarantees before submission.
- Require affirmative user confirmation before transmitting organizational security information to the external service.
- Document and enforce TLS certificate validation and modern transport-security settings.
- Add automated contract tests verifying rejection of undeclared fields, oversized payloads, secrets, and unauthenticated requests.
- Replace the generic
