T09 · Insecure Skill Coding Practices
- Location
scripts/caldav.py:114- Finding
Apple credentials can be disclosed to untrusted server-provided hosts
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This iCloud Calendar skill is mostly purpose-aligned, but it handles Apple credentials and destructive calendar deletions with insufficient safeguards.
Review this skill before installing. Use a revocable Apple app-specific password, avoid delete operations unless you have verified the exact event target, and prefer a version that validates Apple CalDAV hostnames, restricts deletion filenames to safe .ics basenames, parses UID values exactly, and confirms destructive actions.
scripts/caldav.py:114Apple credentials can be disclosed to untrusted server-provided hosts
scripts/caldav.py:385Path traversal in filename-based event deletion can target unintended resources
scripts/caldav.py:397Substring-based UID matching can delete the wrong calendar event
The code aligns closely with the stated iCloud Calendar/CalDAV purpose and correctly uses direct CalDAV access with Apple credentials. It supports reading calendars/events, creating events, and deleting events. However, the description explicitly claims create, read, update, and delete functionality, while the code only implements create, read, and delete; there is no event update/edit operation. Additionally, the description mentions using it to 'find free time' or manage schedule, but the code only lists events within a date range and does not compute availability or free-time slots. Because a declared core capability (update) is missing, this is a description-behavior mismatch.
Referenced artifact was not completely inspected
./scripts/caldav.py list-calendars
Referenced artifact was not completely inspected
./scripts/caldav.py list-calendars
Referenced artifact was not completely inspected
./scripts/caldav.py list-calendars
Referenced artifact was not completely inspected
./scripts/caldav.py list-calendars
Referenced artifact was not completely inspected
./scripts/caldav.py list-calendars
Referenced artifact was not completely inspected
./scripts/caldav.py list-calendars
Referenced artifact was not completely inspected
./scripts/caldav.py list-calendars
Referenced artifact was not completely inspected
./scripts/caldav.py list-calendars
Referenced artifact was not completely inspected
./scripts/caldav.py list-calendars
Referenced artifact was not completely inspected
./scripts/caldav.py list-calendars
Referenced artifact was not completely inspected
./scripts/caldav.py list-calendars
Tool parameters are crafted to achieve unintended or unsafe behavior. Parameter abuse can bypass intended safety checks (e.g. shell=True, --force, dangerous glob patterns).
DELETE /12345678/calendars/CalendarName/event-uuid.ics
The skill requires access to environment variables for Apple credentials and network access to Apple's CalDAV endpoint, but it does not explicitly declare any tool scope or permissions. This creates an authorization ambiguity where a host agent may grant broader capabilities than intended, making credential access and outbound network use insufficiently constrained.
This markdown file includes concrete instructions for PUT and DELETE requests that create, overwrite, and remove calendar events. Under the markdown-specific warning criterion, the description omits any caution that these actions affect user data and may overwrite or permanently delete calendar entries.
The fallback ICS generator hard-codes DTSTART/DTEND with TZID=Asia/Shanghai, regardless of the user's actual timezone or input semantics. This can silently create events at the wrong time, causing missed meetings or unintended scheduling actions; in a calendar-management skill, that operational integrity issue is security-relevant because it can alter user data incorrectly.
The manifest describes an iCloud Calendar integration for managing events, but does not mention reading secrets from the runtime environment. Accessing environment variables is a separate sensitive capability that goes beyond direct calendar operations, even if used here for authentication.
No suspicious patterns detected.