Add Nextcloud extension#207
Conversation
Search files, contacts, calendar events, and mail in a Nextcloud instance. Details are lazy-loaded on selection (vCards for contacts, ICS for calendar events, full message body for mail). Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
Also security review from Claude (since code was generated with the same tool) Security Review —
|
| Severity | Issue |
|---|---|
| 🔴 HIGH | Credentials forwarded to server-controlled URLs (vCard, CalDAV, Mail API) |
| 🔴 HIGH | SSRF — no host/scheme restriction on lazy-fetch targets |
| 🟡 MEDIUM | Dead origin variable — origin check was coded but not wired up |
| 🟡 MEDIUM | Regex HTML stripping bypassable → markdown injection in mail body |
| 🟡 MEDIUM | Crash on malformed API response (data.ocs.data.entries) |
| 🟡 MEDIUM | No fetch timeout on any request |
| 🔵 LOW | Missing URL protocol normalization |
| 🔵 LOW | Redundant getPreferenceValues() calls |
The two HIGH issues share the same root fix: validate that all lazily-fetched URLs share the same origin as the user-configured url preference before sending the request.
|
I will have a look.
|
Nextcloud
Search files, contacts, calendar events, and mail in your Nextcloud instance directly from Vicinae.
Features
Setup
Requires a Nextcloud app token (Settings → Security → App passwords). Works with any Nextcloud instance that has the Contacts, Calendar, and/or Mail apps installed — results only appear for apps that are enabled.
Test plan
🤖 Generated with Claude Code