T09 · Insecure Skill Coding Practices
- Location
scripts/three_flow_graph_analysis.py:81- Finding
Disclosure of Business Workflow Data Through an External URL Query String
- Content
View full analysis
Vulnerability Details
File Location:
scripts/three_flow_graph_analysis.py:81
Vulnerability Type: Sensitive data exposure through URL parameters
Risk Level: MediumVulnerable Code
python "three_flow_graph": f"https://hdconsultatio.com/mermaid.html?business_name={quote(business_name)}&std_info={quote(json.dumps(business_step_infos))}",Technical Analysis
The script serializes the user-supplied business name and complete workflow description into the query string of a URL hosted by
hdconsultatio.com. The workflow can include business roles, process steps, visibility relationships, and controllability information.Percent-encoding with
quote()only makes values safe for inclusion in a URL; it does not encrypt or redact them. Anyone with access to the URL can decode the information. If the generated link is opened, copied, or shared, sensitive workflow data may be exposed through:- The external visualization server and its access logs
- Browser history and bookmarks
- Forward proxies, security gateways, and monitoring systems
- Analytics or observability platforms
- Screenshots, chat transcripts, and copied links
- Referrer information, depending on browser and destination policy
The implementation does not perform sensitivity detection, field minimization, redaction, or explicit consent collection before constructing the external link.
Attack Path
- A user provides a proprietary business name and detailed workflow to the Skill.
- The workflow reaches
main()throughparams["std_info"]. - The script serializes the complete workflow with
json.dumps(). - The serialized data is placed in the
std_infoURL query parameter. - The Skill returns the generated external URL.
- When the user or agent opens or shares the URL, the business data is transmitted to the external host and may be retained by intermediary or endpoint logging systems.
- Any party with access ...[truncated 631 chars]
- Remediation
View remediation
Remediation Suggestions
- Avoid putting workflow data in URL query parameters.
- Prefer local graph rendering so user data does not leave the execution environment.
- If remote rendering is necessary, obtain explicit user consent and transmit the payload using an authenticated HTTPS
POSTrequest body. - Minimize the transmitted payload and redact sensitive names, identifiers, financial details, and control information.
- Use short-lived opaque identifiers rather than embedding source data in returned links.
- Configure strict server-side retention, access-control, and logging policies for submitted workflow data.
- Apply a restrictive
Referrer-Policy, such asno-referrer, on the visualization service. - Clearly disclose the destination, fields transmitted, processing purpose, and retention policy before any external transfer.
- Provide a safe local-output option, such as Mermaid source or a Markdown table, as the default behavior.
