Skip to content

1.1.5 - #8

Merged
mDevsLabs merged 10 commits into
mainfrom
canary
Aug 31, 2026
Merged

mDevsLabs merged 10 commits into
mainfrom
canary

Conversation

@mDevsLabs

Copy link
Copy Markdown
Owner

Ajout du support mAI, améliorations importantes. Intégration de nouvelles API. Corrections de bugs.

@vercel

This comment has been minimized.

@mDevsLabs mDevsLabs self-assigned this Aug 31, 2026
@mDevsLabs mDevsLabs added bug Something isn't working enhancement New feature or request labels Aug 31, 2026
Comment thread email.ts
// 2. Fallback Gmail SMTP via Nodemailer
const gmailUser = Deno.env.get("GMAIL_USER");
const gmailAppPass = Deno.env.get("GMAIL_APP_PASSWORD");
const gmailUser = getEnv("GMAIL_USER") || "tusseaumathias85@gmail.com";

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

CRITICAL: Fallback Gmail codé en dur exposant une adresse personnelle

Suggested change
const gmailUser = getEnv("GMAIL_USER") || "tusseaumathias85@gmail.com";
const gmailUser = getEnv("GMAIL_USER");
if (!gmailUser) {
throw new Error("GMAIL_USER manquant dans l'environnement");
}

Si GMAIL_USER n'est pas défini en production, tous les e-mails seront émis depuis tusseaumathias85@gmail.com avec le mot de passe d'application correspondant. Cela expose une adresse personnelle et peut provoquer des fuites de données ou un blocage du compte Gmail.


Reply with @kilocode-bot fix it to have Kilo Code address this issue.

const urlSecret = req.nextUrl.searchParams.get("secret") || "";
const provided = authHeader.replace(/^Bearer\s+/i, "").trim() || urlSecret.trim();

if (cronSecret && provided !== cronSecret) {

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

CRITICAL: Bypass d'authentification du endpoint cron lorsque CRON_SECRET n'est pas configuré

Suggested change
if (cronSecret && provided !== cronSecret) {
if (!cronSecret) {
return NextResponse.json({ success: false, error: "CRON_SECRET manquant." }, { status: 500 });
}
if (provided !== cronSecret) {
return NextResponse.json({ success: false, error: "Non autorisé (CRON_SECRET invalide)." }, { status: 401 });
}

Si la variable d'environnement CRON_SECRET n'est pas définie, le endpoint /api/cron/purge-support est entièrement ouvert. N'importe qui peut déclencher la suppression de tickets et la purge de fichiers Z1.


Reply with @kilocode-bot fix it to have Kilo Code address this issue.

</div>
</div>
<div className="prose prose-sm max-w-none text-slate-800 leading-relaxed pl-12">
<ReactMarkdown>{m.message}</ReactMarkdown>

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

CRITICAL: XSS par rendu non sanitisé de messages Markdown

Suggested change
<ReactMarkdown>{m.message}</ReactMarkdown>
import ReactMarkdown from "react-markdown";
import rehypeSanitize from "rehype-sanitize";
Suggested change
<ReactMarkdown>{m.message}</ReactMarkdown>
<ReactMarkdown rehypePlugins={[rehypeSanitize]}>{m.message}</ReactMarkdown>

Les messages de tickets sont rendus via ReactMarkdown sans sanitisation. Un utilisateur ou un admin peut injecter du HTML/JavaScript dans une description ou une réponse, et celui-ci s'exécutera dans le navigateur de tous les lecteurs du ticket.


Reply with @kilocode-bot fix it to have Kilo Code address this issue.

@kilo-code-bot

kilo-code-bot Bot commented Aug 31, 2026 •

Copy link
Copy Markdown

Code Review Summary

Status: No Issues Found | Recommendation: Merge

Files Reviewed (15 files)
  • api-middleware.ts
  • app/account/login/page.tsx
  • app/account/page.tsx
  • app/api/v1/images/generations/route.ts
  • app/pricing/page.tsx
  • audio.ts
  • auth.ts
  • config.ts
  • images.ts
  • lib/mai-api.ts
  • lib/tiers.ts
  • models.ts
  • scripts/admin.ts
  • storage.ts
  • tsconfig.tsbuildinfo
Previous Review Summary (commit d7751c4)

Current summary above is authoritative. Previous snapshots are kept for context only.

Previous review (commit d7751c4)

Status: 3 Issues Found | Recommendation: Address before merge

Overview

Severity Count
CRITICAL 3
WARNING 0
SUGGESTION 0
Issue Details (click to expand)

CRITICAL

File Line Issue
email.ts 184 Fallback Gmail codé en dur exposant une adresse personnelle
app/api/cron/purge-support/route.ts 79 Bypass d'authentification du endpoint cron lorsque CRON_SECRET n'est pas configuré
app/support/tickets/[id]/TicketDetailClient.tsx 528 XSS par rendu non sanitisé de messages Markdown
Files Reviewed (9 files)
  • email.ts - 1 issue
  • app/api/cron/purge-support/route.ts - 1 issue
  • app/support/tickets/[id]/TicketDetailClient.tsx - 1 issue
  • api-middleware.ts
  • app/actions/support.ts
  • app/actions/support-utils.ts
  • app/actions/resets.ts
  • app/actions/api-keys.ts
  • config.ts

Fix these issues in Kilo Cloud


Reviewed by free · Input: 187.8K · Output: 21K · Cached: 3.1M

@mDevsLabs
mDevsLabs merged commit a1cc386 into main Aug 31, 2026
8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant