T09 · Insecure Skill Coding Practices
- Location
src/node/postiz-upload.mjs:57- Finding
Unvalidated Custom API Endpoint Can Expose Postiz Credentials and Publication Content
- Content
View full analysis
controller.abort(), effectiveTimeout); try { const response = await fetch(`${baseUrl}/upload`, { method: "POST", headers: { Authorization: apiKey, }, body: form, signal: controller.signal, }); ``` From `src/node/postiz-create-draft.mjs:21-53`: ```js const baseUrl = normalizeBaseUrl( process.env.POSTIZ_BASE_URL || "https://api.postiz.com/public/v1" ); const apiKey = requireEnv("POSTIZ_API_KEY"); const integrationId = requireEnv("POSTIZ_TIKTOK_INTEGRATION_ID"); if (!Array.isArray(mediaRefs) || mediaRefs.length === 0) { throw new PostizDraftError("postizCreateDraft requires at least one uploaded media reference."); } const payload = { integrationId, caption, media: mediaRefs, privacy_level: "SELF_ONLY", content_posting_method: "UPLOAD", }; const controller = new AbortController(); const timer = setTimeout(() => controller.abort(), timeoutMs); const response = await fetch(`${baseUrl}/posts`, { method: "POST ...[truncated 3161 chars]- Remediation
View remediation
