AI-generated analysisPublished automatically and not human-verified. Validated context appears in community notes below.
← Watch feed
Low 28 Bitcoin

Add Server Email Rules

Public commit record

What the developer wrote

Authored by Nicolas Dorier

28/100 · Opaque
Add Server Email Rules
✓ Subject identifies a change! No meaningful explanatory body
The short version

What changed, and why it matters

This commit refactors BTCPay Server's email handling into a new 'Server Email Rules' plugin. It moves server and store email settings into shared base controllers, adds server-wide email rules (for example password-reset emails), and changes how password-reset emails are generated. The changes are mostly architectural and feature-adding; there is no clear evidence in the diff of a security vulnerability being fixed or introduced. However, the new code does involve email templating, SQL queries, and authorization boundaries, so it warrants normal review rather than being dismissed as purely cosmetic.

Recommended action

Treat as a normal feature/refactor commit. Reviewers should verify that server email rules cannot be accessed or modified by non-server admins, that store rules remain scoped to their store, that the password-reset template cannot be abused to leak or redirect reset links, and that the jsonb_path_exists condition validation prevents SQL/JSONPath injection. No immediate security patch action is indicated by the diff alone.

Security signals we found

01

Refactor of email settings controllers changes authorization scope (server vs store) and permission checks

02

Password reset email generation moved from hard-coded helper to configurable template with placeholders including {ResetLink}

03

New server-level email rules can target server-wide events and are stored with StoreId == null

04

SQL query in GetMatches uses FromSqlInterpolated and jsonb_path_exists with user-provided condition string

05

Email body/subject are rendered through TextTemplate against a JObject model that includes user and branding data

06

New package reference JetBrains.Annotations.Sources added

07

Tests added for password-reset email rule using HTML body with anchor link placeholder

Risk score

Why this scored 28/100

Our methodology →
Potential impact 5/30
Exploitability 5/25
Stealth signal 5/15
Affected reach 5/15
Confidence 5/10
Evidence quality 3/5
Human-validated context

Community notes

Notes can correct, qualify, or add evidence to the AI analysis. Every note shown here has been validated by a human moderator.

No validated notes yet.

The AI analysis stands alone for now. Submit a note if you can add evidence or important context.