T09 · Insecure Skill Coding Practices
Error
- Location
- SETUP.md:3
- Finding
- Instance-Specific Sharing Material Included in the Distributed Package<![CDATA[ ## Vulnerability Details **File Location**: `SETUP.md`, lines 3-10 **Vulnerability Type**: Exposure of instance-specific access and sharing configuration **Risk Level**: High ### Vulnerable Code ```markdown This file holds instance-specific config for the Anytype skill. Not for publishing. ## Space - **Primary space ID:** `bafyreial7tzkey5sntoizw7scv2lrywqdicd7m6ru2k6wae7w3z6igm5ke.1f4pitw5ca9gc` - **Invite ID:** `bafybeifel75s42deh74lbjx3socdyung4ojspjgbr64jxrduf3dghlx35i` - **Hash:** `CvFB12csDDVDpYxi5J1FewXmdsLmifnLx4p3fBCRG6Jt` - **Public link format:** `https://object.any.coop/{object_id}?spaceId={space_id}&inviteId={invite_id}#{hash}` ``` ### Technical Analysis The package contains a configuration file explicitly identified as “Not for publishing,” but the file was nevertheless included in the project. It exposes a concrete Anytype space identifier, invitation identifier, and sharing hash. These values are not required in a reusable Skill package and exceed the minimum information necessary to communicate with the local Anytype API. The documented public-link template shows how the exposed values are combined with an object identifier to construct externally accessible Anytype URLs. The API key itself is not present in this file. Nevertheless, invitation and sharing parameters may function as access material depending on the space’s current sharing configuration. The disclosure also exposes internal collection, property, and tag identifiers elsewhere in the same file. ### Attack Path 1. An attacker downloads or otherwise obtains the Skill package. 2. The attacker opens `SETUP.md` and extracts the space ID, invite ID, and sharing hash. 3. The attacker obtains an object ID from the same file, another disclosure, shared content, logs, or prior knowledge. 4. The attacker constructs a URL using the documented format: `https://object.any.coop/{object_id}?spaceId={space_id}&inviteId={invite_id}#{hash}` 5. The attacker attempts to access t ...[truncated 751 chars]
- Remediation
- <![CDATA[ ## Remediation Suggestions 1. Remove the instance-specific `SETUP.md` from the distributed package and version-control history. 2. Rotate or revoke the exposed invitation and sharing secret where supported. 3. Review the affected Anytype space’s public-sharing configuration and access logs. 4. Replace the file with a redacted `SETUP.example.md` containing placeholders only. 5. Load instance-specific identifiers from user-controlled configuration or environment variables. 6. Add the real setup file to `.gitignore` and package exclusion rules. 7. Add automated secret and sensitive-configuration scanning to the release process. 8. Avoid publishing object, collection, tag, and property identifiers unless they are intentionally public and operationally necessary. ]]>
